SAP ABAP Platform 1909, Developer Edition(dockerhub)をopenSUSE Leap 15.3(EC2)で起動してみる
上記の記事でSAP ABAP Platform 1909, Developer Editionを構築してみましたが。
最初からコンテナに含まれているライセンスキー 及び Trials and Downloads - SAP Developer CenterからダウンロードできるライセンスのハードウェアキーとAWS上に構築したハードウェアキーが食い違っており。
ライセンスキーをminisapから取得してインストールしないとならない事態となりました。
ここらへんSAP側が対応してくれてうまいことなるかはわかりませんが、Developer Editionは有効期限があり定期的にライセンス更新が必要となり、Trials and Downloads - SAP Developer Center で配布されているライセンスキーも使えない。
といった事を想定して、minisapからDeveloper Editionのライセンスを取得してインストールする方法を本記事では試しています。
SAP ABAP Platform 1909, Developer Edition(docker)のライセンス更新について
ABAP Platform, Developer Edition SETUP INSTRUCTIONS
上記のLicensesに記載がありますが、Developer Editionのコンテナには格納されているライセンスファイルを読み取り更新するスクリプトが仕込まれており、このスクリプトはコンテナ起動時に実行されます。
| システム | スクリプト | ライセンスファイル配置場所 |
|---|---|---|
| ASABAP | /usr/local/bin/asabap_license_update | /opt/sap/ASABAP_license |
| HDB | /usr/local/bin/hdb_license_update | /opt/sap/HDB_license |
ライセンスファイルを配置して起動すると毎回、コンテナ起動時にライセンス更新処理が走るため、これを止めたい場合は、ドキュメント上には下記の記載があります。(未検証)
ASABAPでは -no-asabap-license-updateオプションを追加(docker runに?) もしくは /opt/sap/.no_ASABAP_license_update を作成する
HDBでは -no-asabap-license-updateオプションを追加(docker runに?) もしくは /opt/sap/.no_HDB_license_updateを作成する
ASABAP(A4H)のライセンスキー更新
minisapでハードウェアキーを発行するにあたって、必要なハードウェアキーをまずは確認してみます。
# a4hadmでsaplicenseを実行
docker exec -it a4h su - a4hadm -c "/usr/sap/A4H/SYS/exe/run/saplicense -get"
本資料で構築している環境はハードウェアキーがK0132868343である事がわかりました。
minisapにアクセスし
-
Available SAP Systems for Windows & LinuxはA4H - SAP NetWeaver AS ABAP 7.4 and above (Linux / SAP HANA)を選択 -
Personal Data & System Infoに必要事項と先程取得したハードウェアキーを入力。 -
License Agreementにチェック
上記入力を確認して、Generateを選択
Generateを選択すると、A4H_Multiple.txtファイルがダウンロードできます。
ダウンロードしたファイルをopenSUSEを構築したEC2インスタンスに配置してください。(scp等々で)
本資料ではec2-userのホームディレクトリに配置しました。
# ホームディレクトリのA4H_Multiple.txtをコンテナの/opt/sap/ASABAP_licenseにコピー
docker cp ~/A4H_Multiple.txt a4h:/opt/sap/ASABAP_license
# asabap_license_updateを実行してライセンスを更新
docker exec -it a4h /usr/local/bin/asabap_license_update
2 SAP license key(s) successfully installed.と表示されライセンス更新されている事を確認します。
HANADB(HDB)のライセンスキー更新
ASABAPと同様にハードウェアキーの確認をします。
# hdbadmでhdbsqlを実行
# hdbadmとSAPA4Hの情報についてはDocker hubのSETUP INSTRUCTIONSより
docker exec -it a4h su - hdbadm -c "hdbsql -n localhost -i 02 -u SAPA4H -p Ldtf5432 -x 'SELECT * FROM M_license'"
少し見づらいですがハードウェアキーがB1002322283である事がわかりました。
minisapからハードウェアキーを取得します。
minisapにアクセスし
-
Available SAP Systems for Windows & LinuxはHDB - SAP HANA Platform Editionを選択 -
Personal Data & System Infoに必要事項と先程取得したハードウェアキーを入力。 -
License Agreementにチェック
上記入力を確認して、Generateを選択
Generateを選択すると、HDB.txtファイルがダウンロードできます。
ダウンロードしたファイルをopenSUSEを構築したEC2インスタンスに配置してください。(scp等々で)
本資料ではec2-userのホームディレクトリに配置しました。
# ホームディレクトリのHDB.txtをコンテナの/opt/sap/HDB_licenseにコピー
docker cp ~/HDB.txt a4h:/opt/sap/HDB_license
# hdb_license_updateを実行してライセンスを更新
docker exec -it a4h /usr/local/bin/hdb_license_update
docker exec -it a4h su - hdbadm -c "hdbsql -n localhost -i 02 -u SAPA4H -p Ldtf5432 -x 'SELECT * FROM M_license'" を実行してライセンスを確認してみます。
minisapで生成したライセンスに切り替わっている事が確認できます。
余談
HANADB(HDB)のライセンス更新時にminisap上でHDB - SAP HANA Platform Edition (64GB)を選択してライセンスキーを生成しました。
この選択については、Developer Editionはdocker以外にもSAP CALで提供されており、 SAP CALの資料(Getting Started Guide)では上記選択になっていたので参考にしました。
docker版のDeveloper Editionと SAP CAL版のDeveloper Edition がどこまで同一といったところですが……
総評
AWS上にopenSUSEのインスタンス用意して、dockerでDeveloper Editionを構築した際にハマったポイントとしてはライセンス部分くらいでした。
ここらへんSAP側が対応してくれて、Trials and Downloads - SAP Developer Centerから取得できるライセンスキーで問題なければ、わざわざminisapから取得しなくてもといった所ですが。
コミュニティブログの投稿やコメントをみる限り、ライセンス部分がうまく言ってないケースは結構多そう?








