SAP on Azure デプロイ自動化フレームワーク - ワークロードゾーン作成

# ブログ内容
私のブログを参考にして構築する場合は、赤点線枠のリソースが作成されます。
※ SAP-Vnet内に記載した仮想マシンはこの時点では作成されませんので図から削除してます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521211/8f949ae7-b3f2-c44f-1cf2-409a86d779e7.png)
作業内容として、以下作業を前回用意したコントロールプレーン側から実施してワークロードゾーンを作成していきます。

+ 構築に必要なファイルをDL＆配置
+ Terraformの変数ファイル（.tfvars）の修正
+ ワークロードゾーンの作成

:::note info
ワークロードゾーンとは、SAPのランドスケープの事を指しておりランドスケープ毎に用意する必要があります。
:::

# 実施内容及び、作成されるリソースについて
Terraformを利用してワークロードゾーンを作成します。
作成されるリソースは以下になります。

■ ネットワーク部分
+ 仮想ネットワーク（Vnet）
+ サブネット
+ ネットワークセキュリティーグループ（NSG）
+ ピアリング接続

■ その他
+ ストレージアカウント（SAPサーバ用のブート診断で利用されるもの）
+ ストレージアカウント（クラスター構成時に利用されるもの）
+ キーコンテナ（SAP関連のパスワード管理で利用されるもの）


# 構築に必要なファイルをDL＆配置
「SAP on Azure デプロイ自動化フレームワーク - コントロールプレーン作成」に記載した
手順３『サンプルファイルをコピーして、今回利用するファイル名に変更します。』を参考にして、ファイルを配置します。

この後利用するファイルは、「DEV-JAEA-SAP01-INFRASTRUCTURE.tfvars」「DEV-JAEA-SAP01-X00.tfvars」になりますので、2ファイルを配置してください。

# Terraformの変数ファイル（.tfvars）の修正
ワークロードゾーンを作成する際に利用するファイルは「DEV-JAEA-SAP01-INFRASTRUCTURE.tfvars」になります。

以下URLを確認し必要なパラメータの修正や追加をしていきます。

https://learn.microsoft.com/ja-jp/azure/sap/automation/configure-workload-zone

<details><summary>今回DEV-JAEA-SAP01-INFRASTRUCTURE.tfvarsで修正した項目</summary>

```rb
environment = "DEV"
location = "japaneast"
use_private_endpoint = false
```
</details>

# ワークロードゾーンの作成
作成する際に利用するコマンドは以下になります。
サンプルコマンドを書き換えて実行します。

<details><summary>サンプルコマンド</summary>

```rb
az logout
az login --service-principal -u "appId" -p "password" --tenant "xxxxxxxxxx"

export subscriptionId="xxxxxxxxxx"
export         spn_id="サービスプリンシパルのappId"
export     spn_secret="サービスプリンシパルのpassword"
export      tenant_id="サービスプリンシパルのテナントid"
export tfstate_storage_account="DEMOJAEADEP00user<3桁のID>"
export       deployer_env_code="DEMO"
export            sap_env_code="DEV"
export    region_code="JAEA"
export               key_vault="DEMOJAEADEP00user70E"
export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"
export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
export ARM_SUBSCRIPTION_ID="${subscriptionId}"
export ARM_TENANT_ID="${tenant_id}"
export ARM_CLIENT_ID="${spn_id}"
export ARM_CLIENT_SECRET="${spn_secret}"

cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/${sap_env_code}-${region_code}-SAP01-INFRASTRUCTURE

${DEPLOYMENT_REPO_PATH}/deploy/scripts/install_workloadzone.sh \
    --parameterfile ./${sap_env_code}-${region_code}-SAP01-INFRASTRUCTURE.tfvars  \
    --deployer_environment "${deployer_env_code}"  \
    --deployer_tfstate_key "${deployer_env_code}-${region_code}-DEP00-INFRASTRUCTURE.terraform.tfstate" \
    --keyvault "${key_vault}"  \
    --storageaccountname "${tfstate_storage_account}"  \
    --subscription "${subscriptionId}"  \
    --spn_id "${spn_id}"  \
    --spn_secret "${spn_secret}"  \
    --tenant_id "${tenant_id}"  \
    --auto-approve
```
</details>

実行に20分くらい時間がかかりますが、正常終了すると以下ログが表示されます。

<details><summary>結果</summary>

```rb
#########################################################################################
#                                                                                       #
#                Keyvault to use for System details: DEVJAEASAP01user<3桁のID>          #
#                                                                                       #
#########################################################################################


#########################################################################################
#                                                                                       #
#                             Creating deployment                                       #
#                                                                                       #
#########################################################################################

Login as SPN

#########################################################################################
#                                                                                       #
#               Adding the subnets to storage account firewall                          #
#                                                                                       #
#########################################################################################

Adding the app subnet
Adding the db subnet
```
</details>

リソースグループ「DEV-JAEA-SAP01-INFRASTRUCTURE」が作成されており、それに紐づくリソースも作成されていることが確認できます。

# 所感
前回のコントロールプレーンの作成より苦戦はしませんでしたが、今回の検証で以下分かりました。

+ Terraformのバージョンが古いと作成に失敗する。
+ use_private_endpoint の値は統一しておかないといけない。

# 次回予告
SAPシステムの仮想マシンを作成していきます。
次回「SAPシステムの仮想マシン作成」の作成の記事を投稿します！