SAP on Azure デプロイ自動化フレームワーク - SAPシステムの作成（BOMファイル準備＆配置）

# ブログ内容
赤点線枠のストレージアカウントにSAPのインストールメディアを配置していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521211/20eb6473-db31-e2ad-1a61-bc1bb25ed38a.png)
作業内容として、以下作業をコントロールプレーン側から実施してSAPのインストールメディアを配置していきます。

+ BOM(部品表)の準備
+ Sユーザ情報の登録
+ SAPパラメータファイルの準備
+ BOMファイルの修正
+ SAPのインストールメディアの配置

# BOM(部品表)の準備
以下コマンドをコントロールプレーンから実行して、ファイルを配置します。

<details><summary>BOM(部品表)の配置</summary>

```rb
cp -Rp ~/Azure_SAP_Automated_Deployment/sap-automation-samples/SAP ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/BOM-catalog
```
</details>

格納されたBOMファイルの一覧です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521211/322487aa-3a13-9855-70af-810a9ac57fda.png)

# Sユーザ情報の登録
以下URLの「キーコンテナーを構成する」の手順を実行します（③まで実施しました）

https://learn.microsoft.com/ja-jp/azure/sap/automation/software

<details><summary>Sユーザのアカウント名登録</summary>

```rb
az logout
az login --service-principal -u "appId" -p "password" --tenant "xxxxxxxxxx"
export key_vault=DEMOJAEADEP00user<3桁のID>
sap_username=SXXXXXXXXXX
az keyvault secret set --name "S-Username" --vault-name $key_vault --value "${sap_username}";
```
</details>

<details><summary>Sユーザのパスワード登録</summary>

```rb
az logout
az login --service-principal -u "appId" -p "password" --tenant "xxxxxxxxxx"
sap_user_password=Sユーザのパスワード
az keyvault secret set --name "S-Password" --vault-name "${key_vault}" --value "${sap_user_password}";
```
</details>

:::note info
ここで利用するSユーザでインストールメディアをダウンロードしてきます。
Sユーザには「ソフトウェアダウンロード権限」が必要になります。
:::

上記コマンドを実行すると、指定したキーコンテナに「S-Username」,「S-Password」のエントリが追加され情報が登録されます。

# SAPパラメータファイルの準備
インストールメディアをダウンロードする際に必要なパラメータファイルを準備します。
今回はS/4HANA2022を構築していきます！

<details><summary>ディレクトリ作成</summary>

```rb
mkdir -p ~/Azure_SAP_Automated_Deployment/WORKSPACES/BOMS; cd $_
```
</details>
ディレクトリ作成後、YAMLファイルを準備します。

<details><summary>YAMLファイル作成</summary>

```rb
cat <<EOF > sap-parameters.yaml
```
</details>


作成すると以下内容になっていますので、viコマンドで中身の修正を実施します。

<details><summary>YAMLファイルの修正</summary>

```rb
＜作業前の状態＞
bom_base_name:               S41909SPS03_v0010ms
kv_name: Name of your Management/Control Plane keyvault

＜作業後の状態＞
bom_base_name: S42022SPS00_v0001ms
deployer_kv_name: DEMOJAEADEP00user<3桁のID>
```
</details>

:::note alert
キーコンテナのパラメータがマイクロソフトさんのドキュメントと違うため注意が必要！
「kv_name」ではなく「deployer_kv_name」に修正が必要です。
:::

# BOMファイルの修正
作業タイミングにもよりますが、「SUM」と「SWPM」のBOMファイルの中身が古いため
ダウンロード時にエラーになってしまいます。

以下URLを参照し、SAP for Meからファイルの情報を確認し修正作業を実施します。

https://learn.microsoft.com/ja-jp/azure/sap/automation/bom-get-files

:::note alert
エラー回避のため、ダウンロードより前にファイルの確認/修正作業を実施する必要があります。
:::

■ SWPMのBOMファイル修正
2023/8/16時点での最新ファイルの情報です。
checksumの値は以下URLからコピーしてください。

https://me.sap.com/softwarecenter/object/0020000000977752023

<details><summary>YAMLファイルの修正</summary>

```rb
cd ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/BOM-catalog/SWPM20SP15_latest
vi SWPM20SP15_latest.yaml

↓以下エントリの修正を実施
archive:      SWPM20SP15_5-80003424.SAR
checksum:     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
url:          https://softwaredownloads.sap.com/file/0020000000977752023
```
</details>

■ SUMのBOMファイル修正
2023/8/16時点での最新ファイルの情報です。
checksumの値は以下URLからコピーしてください。

https://me.sap.com/softwarecenter/object/0020000000946192023

<details><summary>YAMLファイルの修正</summary>

```rb
cd ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/BOM-catalog/SUM20SP17_latest
vi SUM20SP17_latest.yaml

↓以下エントリの修正を実施
archive:      SUM20SP17_5-80002456.SAR
checksum:     xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
url:          https://softwaredownloads.sap.com/file/0020000000946192023
```
</details>

# SAPのインストールメディアの配置
Ansibleのプレイブックを利用して、ダウンロードしていきます！

<details><summary>メディアダウンロード</summary>

```rb
cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/BOMS
~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/download_menu.sh

Please select playbook: 1
```
</details>

実行に1時間ほどかかるかもしれません。
「failed = 0」であれば無事ダウンロード完了です。
<details><summary>結果</summary>

```rb
PLAY RECAP ************************************************************************************************************************************************************
localhost                  : ok=xxx  changed=xxx   unreachable=0    failed=0    skipped=xxxx rescued=xxx    ignored=xxx   
```
</details>

ダウンロードファイルは、ストレージアカウント「demojaeasaplib<3桁のID>」に配置されています！
ストレージアカウントの状態も確認しましょう。

# 所感
今回の検証では、以下分かりました。

+ SAPパラメータファイルで定義するパラメータは「kv_name」ではなく「deployer_kv_name」である
+ SWPMとSUMのファイルの更新作業はマニュアル修正が必要

ファイルのアップデートが頻繁に行われているので、ダウンロード前に必ず修正が必要になりそうです。

# 次回予告
ようやく終わりが見えてきました。。。
次回からSAPのインストール作業を実施していきます！