Azure Center for SAP solutionsでS/4 HANAを自動デプロイ

# はじめに
Azure上でVM作成からSAPソフトウェアインストールまで実行可能な`Azure Center for SAP solutions`を使ってみました。
まだプレビューです（2022/12/1時点）

https://learn.microsoft.com/ja-jp/azure/center-sap-solutions/overview

手順はMicrosoftのドキュメントを参考にしています。

# 準備
Azureの操作が出来ることはもちろんなのですがSAPのメディアダウンロードする際にSAPのS-Userが必要となります。
あらかじめS-Userの取得とS-UserにSAPサポートポータルでのソフトウェアダウンロード権限を付与してください。

# ネットワーク構築
https://learn.microsoft.com/ja-jp/azure/center-sap-solutions/prepare-network

2022/12/1時点では使えるリージョンが限られているので対応しているリージョンで仮想ネットワークとサブネット作ります。
今回は東南アジアリージョンを使用しました。

# インフラ構築
https://learn.microsoft.com/ja-jp/azure/center-sap-solutions/deploy-s4hana

Azure Portalで`Virtual Instance for SAP solutions`を選択して新しいSAPシステムの作成。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/ba41551a-1b16-e881-358e-e3d24c2e52e9.png)

情報を入力していきます。
非運用で単一サーバの構成にしました。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/e3032f04-7d45-565b-6419-05c7b349ea2b.png)

OSはRHEL。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/b9c7c0e6-97d0-5f02-fb8e-d40d6d44160e.png)

今回はマネージドIDを新規作成。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/afaf9f96-4462-b5c9-c8b8-3ce503eb86c7.png)

:::note warn
既存のマネージドIDを使用した場合、デプロイ中に新規作成されるリソースグループにロールが自動で付与されないため、
ロールの割り当ての状態によってはデプロイに失敗します。
例えばサブスクリプションのように上位レベルにロール付与すれば大丈夫だと思います。
:::

SAPS値とDBのメモリサイズを入力後に`レコメンデーションの生成`を選択すると自動でVMサイズが選択されます。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/af5be9da-c6f0-5f05-2db8-ba9c3e40c149.png)

結果`Standard_E32ds_v4`が選択されました。
一番小さいサイズです。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/7a6685d5-0a38-f26c-84b7-61b7ecef62a5.png)


ディスクも自動で作成されます。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/1e3192f5-dd91-7996-0c65-139f25bcbe32.png)

サマリ画面で`作成`を選択。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/f2af2d22-8fe1-be53-d0ae-06a0e8024c74.png)

作成されました。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/f020680e-ef5f-21fa-c21c-dd55dad5f24b.png)

# ソフトウェアインストール
https://learn.microsoft.com/ja-jp/azure/center-sap-solutions/install-software

## ストレージアカウントの準備
インストールに必要なメディアをストレージアカウントに保存するため、ストレージアカウントを用意します。
今回は既に作ってあるストレージアカウントを使用しました。
マネージドIDはストレージアカウントに対して`ストレージ BLOB データ閲覧者`と`閲覧者とデータ アクセス`ロールが付与されている必要があります。

ストレージアカウントの準備が出来たら`sapbits`という名称のblobコンテナーを作成します。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/183abb5c-9e24-2fbe-4b93-1cdd64f41146.png)

## ダウンロード用VMの作成
メディアダウンロード＆ストレージアカウントへのアップロード用にVMを作成します。
WSL等でも出来そうですが今回はドキュメントの手順に倣ってVM（ubuntu）を作成します。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/3cbfc172-d999-76fd-696b-035ec88c7378.png)

VM作成後はOSにログインし各種インストールを実施していきます。
Azure CLI、Ansibleのインストールとgitのクローン等。
VMにpip入っていなかったのでpipのインストールも実施してます。
ドキュメントのコマンドそのままだとカレントディレクトリが違っていたりするので適宜修正しながらになります。

```bash
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

apt install python3-pip

pip3 install ansible==2.9.27

git clone https://github.com/Azure/sap-automation.git

cd sap-automation/
git checkout main
git status

```

準備完了後AnsibleのPlaybookを実行するのですが実行前にオプションで指定する以下の値を準備します。
- bom_base_name
    - インストールするSAPソフトウェアのバージョンを指定
        S41909SPS03_v0011ms、S42020SPS03_v0003ms、S4HANA_2021_ISS_v0001ms等
- s_user
    - SAPサポートポータルのユーザ名
- s_password
    - 上記ユーザのパスワード
- sapbits_access_key
    - ストレージアカウントのアクセスキー
- sapbits_location_base_path
    - sapbitsのURL

```bash:Ansibleコマンド
# パラメータは適宜修正してください。
ansible-playbook ./deploy/ansible/playbook_bom_downloader.yaml -e "bom_base_name=S41909SPS03_v0011ms" -e "deployer_kv_name=dummy_value" -e "s_user=<username>" -e "s_password=<password>" -e "sapbits_access_key=<storageAccountAccessKey>" -e "sapbits_location_base_path=<containerBasePath>"
```

ストレージアカウントにファイルが格納されました。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/c12992aa-b1d3-c606-98d7-0cc7fd51cec9.png)

## SAPソフトウェアのインストール
Virtual Instance for SAP solutionsの概要から`SAPソフトウェアのインストール`を選択。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/df6ca697-5c7c-8a8b-928d-1d8cf990b088.png)

`BOMディレクトリの場所`で指定するものはメディアを格納したストレージアカウントにあるyamlです。
bomsというフォルダ配下にあります。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/9decd7ee-658e-5f5a-b38e-3f0a434f2793.png)

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/01155a79-bfa6-0d49-1ec8-fbac727d62a9.png)

`インストール`を選択してインストールが開始されます。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/832516b3-7ff7-98bf-e14b-ee41bf6edce8.png)

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/c90138d1-6424-dd9a-d48e-1dd6007d52ee.png)
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/6ab1e326-7e30-248e-7bb9-3ea2362ba841.png)

2時間30分程でインストール完了しました。
概要の表示も変わっています。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/94cd3536-3345-230f-a88b-8ecf051d5452.png)

# SAP GUI接続
SAPユーザのパスワードはキーコンテナに格納さていますので確認します。
管理対象グループのリソースグループの中にキーコンテナが作成されています。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/4320a96c-6ef4-3ec7-7d1e-71711723ef51.png)

選択して画面遷移するとパスワードが見れます。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/5e5fe9d8-3ae1-c548-a5f7-1781b0e635cd.png)

各インスタンスの情報はSAPリソースから確認できます。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/f60af693-fdd2-0477-9378-c6377c64991d.png)

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/231b5072-9e0a-4e96-6584-6f6489872481.png)

DDICユーザでログイン出来ました。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/070bb172-57d1-2e0d-1340-2fd984e9ffff.png)

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/e236cb8e-2968-4811-a30d-f1df8af415f8.png)

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/d6f977a0-2695-f758-2852-83a12a12fbf0.png)

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/af8e5994-eeac-76d7-6213-daf03d582955.png)


# 起動停止
Azure Potalからアプリケーションの起動停止も出来るようです。
まずは停止。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/d25a467a-1976-2a18-048a-baf05c30531c.png)

停止されました。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/a499571f-9b4c-a336-c300-5b1d0613ed02.png)

各インスタンスの状態を確認。
正常性の`不明`は停止していると同義でいいですかね。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/ca4b4420-8a28-66e3-c047-f9db32e649ac.png)

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/2ceb996a-67d9-869e-1e74-1de6fd3b6a24.png)


HANA DBは停止されていませんでした。
停止する場合はOSにログインして停止コマンドを実行する必要があります。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/9e6c2c36-1668-c722-3063-4d414dcf6eb8.png)

起動も問題なくできました。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/604991/984ee86d-7731-c1c2-bc47-8b917e3d1d12.png)

# 終わりに
SAP BASISではなくてもインストールまで出来るのは凄いです。
お試しにSAPシステムを触ってみたりするのが容易になり素晴らしいですね。