##はじめに
個人でABAPを書いたりCDSビューを作ったりする環境、みなさんはどうしていますか?私は現在、とあるABAP環境をサブスクしています。当然ながら毎月料金がかかるので、自分だけの環境があればいいなと思っていました。
そんなとき、こんな動画に出会いました。
SAP ABAP Trial in Docker | Windows Setup Guide [Tutorial]
Docker環境があったのでやってみることにしました。動画も10分弱と短く、手軽に始められそうです。
###NW AS ABAP Developer Editionとは?
ASEというデータベース(HANAではない!)で稼働するABAPアプリケーションサーバで、ABAP開発ツール、Fiori Launchpad、Cloud Connector、ロール、サンプルアプリケーションなどが使用できるということです。
参考:AS ABAP 752 SP04, developer edition: NOW AVAILABLE
##やったこと
せっかくなので、トライアル環境でどこまでできるか色々と試してみました。
- NW AS ABAP Developer Editionをインストール(今回の記事)
- Cloud Connectorの設定、Cloud PlatformのDestinationに登録
- Cloud Platformで開発したアプリをデプロイ
- Fiori Launchpadでアプリを開く
- abapGitをインストール
##NW AS ABAP Developer Editionをインストール
###環境
動画では、DockerがインストールされたWindows端末を使って説明していました。
私が使用した環境はAWSのEC2上のUbuntu(18.04)です。WindowsでもLinuxでも手順に変わりはありません。
###ハードウェア要件
こちらのブログにハードウェア要件が記載されています。100 GB free disk spaceというのが鬼門で、EC2のインスタンスにボリュームを追加せざるを得ませんでした。
- x86_64 processor based hardware
- at least 4 GB RAM and about 8 GB swap space
- about 100 GB free disk space for the server installation
- about 2 GB free disk space for the client installation
###インストールの流れ
手順については動画とGitHubを見れば大体わかります。ただ、動画になかった超ベーシックなところで迷ったので、そこを中心に記載します(ステップ1~2)。あとは動画を見ながら手を動かせばスムーズにいくと思います。(繰り返しですがディスク容量には余裕をもって!)
####1. Gitリポジトリをクローン
任意のフォルダを作成し、Gitリポジトリをクローンします。リポジトリにはNW AS ABAPをインストールするためのDockerfileなどが入っています。
####2. SAP NetWeaver AS ABAP Developer Editionのインストーラをダウンロード
こちらからSAP NetWeaver AS ABAP Developer Edition 7.52 SP04のrarファイルをダウンロードします。SAP ABAP AS Part1~Part11まで、全てです。結構時間がかかりますので、気長に待ちます。
ダウンロードしたら、7-zipなどを使ってPart1のファイルを解凍します。すると、すべてのファイルが格納され以下のような状態になります。
1.でクローンしたフォルダの中にsapdownloadsというフォルダを新たに作成し、解凍されたものを格納します。
####3. Dockerイメージを作成する
カレントディレクトリを1. でクローンしたフォルダに移動し、以下のコマンドを入力します。
docker build -t nwabap:7.52 .
※ディスクの容量が足りないとイメージを作成しているときにエラーが出ます。
####4. vm.max_map_countの値を増やす
このパラメータは大きなデータベースを扱うためのパラメータだそうです。
sysctl -w vm.max_map_count=1000000
以下のコマンドでvm.max_map_countが増えたことを確認します。
sysctl vm.max_map_count
####4. Dockerコンテナを起動する
docker run -p 8000:8000 -p 44300:44300 -p 3300:3300 -p 3200:3200 -h vhcalnplci --name nwabap752 -it nwabap:7.52 /bin/bash
上記のコマンドを実行すると、コンテナの中に入った状態になります。
ポートについて
NW AS ABAPは4つのポートを公開します。Dockerfileを見たところCloud Connector用のポート8443というのもあるらしく、もし公開していればCloud Connectorをそのまま使えたのかもしれません。(別の記事で書きますが、今回Cloud Connectorは別コンテナにインストールしました)
ポート | 用途 |
---|---|
8000 | HTTP |
44300 | HTTPS |
3300 | ABAP in Eclipse |
3200 | SAP GUI |
####5. NetWeaver AS ABAPをインストール
以下のコマンドでインストールを開始します。
/usr/sbin/uuidd
./install.sh
ライセンス契約に同意するか聞かれるので、"yes"と入力します。
途中でパスワードを設定するよう求められるので、8桁以上のパスワードを入力します。ただ実際にログインに使うのはDown1oadというパスワードなので、ここで設定したパスワードが何に使われるのかは不明です。
インストールは結構時間がかかりますので、気長に待ちます。
インストールが完了すると以下のメッセージが出ます。
####6. サーバを起動
以下のコマンドでサーバを起動します。
su npladm
startsap ALL
Instance on host vhcalnplci started
というメッセージが出ればOKです。
##GUI、ADTと接続
###GUIと接続
インストールが完了したら、GUIとつなぎます。GUIのインストーラはsapdownloads/client/SAPGUI4Windowsに入っています(Windowsの場合)。私はNetWeaverはUbuntuにインストールしましたが、WindowsPCのGUIから接続して使っています。
ログオンパッドの設定は以下のようになります。
###ADTと接続
ADTの設定方法については、以下のブログに記載しています。
【ABAP】ABAP Development Tools (ADT) をインストールする方法
##インストール後の作業
SAP NetWeaverのライセンスキーを取得してインポートする必要があります。この作業はGUIにログインして行います。手順については、GitHubのImportant Post Installation Stepsをご参照ください。
##サーバの停止と再起動
###停止
stopsap ALL --サーバを停止
exit --npladmを抜ける
exit --Dockerコンテナを停止
###再起動
docker container start nwabap752 --Dockerコンテナを起動
docker container attach nwabap752 --コンテナの中に入る
/usr/sbin/uuidd --何らかのシェル
su npladm --npladmにユーザを変更
startsap ALL --サーバを起動
###起動・停止用のシェル
毎回上記のコマンドを打つのは大変なので、シェルを作りました。(エラーハンドリング等は考慮していません。あしからず)
#!/bin/bash
start_sap(){
#start container
sudo docker container start nwabap752
#start sap
sudo docker exec -it nwabap752 /usr/sbin/uuidd
sudo docker exec -it nwabap752 su - npladm -c "startsap ALL"
}
stop_sap(){
#stop sap
sudo docker exec -it nwabap752 su - npladm -c "stopsap ALL"
#stop container
sudo docker container stop nwabap752
}
動かすときはシェルを置いたディレクトリに移動して、以下のコマンドを実行します。
. managesap
start_sap --sapを起動
stop_sap --sapを停止
##ここまででできたこと
- 自分専用のNW AS ABAPサーバが手に入りました。
- GUI、ADTからアクセスしてABAP開発などを行うことができます。
##参考