この記事では、 SAP Deployment Automation Framework を使用してデプロイを実行する方法について説明します。 この例では、Azure Cloud Shellを使用してコントロール プレーン インフラストラクチャをデプロイします。 デプロイ元仮想マシン (VM) は、残りのインフラストラクチャとSAP HANA構成を作成します。
自動化フレームワークを使用したAzureでの SAP デプロイには、主に次の 3 つの手順があります。
リージョンを準備します。 指定した Azure リージョンで SAP オートメーション フレームワークをサポートするコンポーネントをデプロイします。 この手順では、次の操作を行います。
- デプロイ環境を作成します。
- Terraform 状態ファイルの共有ストレージを作成します。
- SAP インストール メディア用の共有ストレージを作成します。
ワークロード ゾーンを準備します。 仮想ネットワークやキー ボールトなどのワークロード ゾーン コンポーネントをデプロイします。
システムをデプロイします。 SAP システムのインフラストラクチャをデプロイします。
デプロイ自動化プロセスには、いくつかのワークフローがあります。 この記事では、デプロイを容易にする 1 つのワークフローに焦点を当てます。 Bash を使用して、このワークフローである SAP S4 HANA スタンドアロン環境をデプロイできます。 次のセクションでは、デプロイの一般的な階層とさまざまなフェーズについて説明します。
前提条件
- Azure サブスクリプション。 アカウントがない場合は、無料アカウントを作成してください。
- Azure CLI バージョン 2.5.0 以降。
- Terraform バージョン 1.5 以降。
- 自動化フレームワーク リポジトリを複製するための Git。
- デプロイ元 VM に接続するための SSH クライアントまたは Azure Bastion。
- サービス プリンシパルを作成し、ターゲット サブスクリプションにロール (共同作成者とユーザー アクセス管理者) を割り当てるアクセス許可を持つAzure アカウント。
- 選択したリージョンにおける Azure DdSV4 および EdsV4 ファミリ SKU のコア クォータが十分であること。 各 VM ファミリで使用できるコアは約 50 個で十分です。
- SAP ソフトウェアをダウンロードするためのソフトウェア ダウンロード特権を持つ有効な SAP ユーザー アカウント (SAP-User または S ユーザー アカウント)。
- GitHubの SAP Deployment Automation Framework リポジトリ。
- (省略可能) .NET SDK 構成 Web アプリケーションをデプロイする場合。
環境の概要
SAP Deployment Automation Framework には、次の 2 つの主要コンポーネントがあります。
- デプロイ インフラストラクチャ (コントロール プレーン)
- SAP インフラストラクチャ (SAP ワークロード)
次の図は、コントロール プレーンとアプリケーション プレーンの間の依存関係を示しています。
フレームワークでは、インフラストラクチャのデプロイに Terraform を使用し、オペレーティング システムとアプリケーションの構成に Ansible を使用します。 次の図は、コントロール プレーンとワークロード ゾーンの論理的な分離を示しています。
管理ゾーン
管理ゾーンには、他の環境のデプロイ元となるコントロール プレーン インフラストラクチャが含まれています。 管理ゾーンがデプロイされた後、再デプロイが必要になることはほとんどありません。
配置者は、SAP オートメーション フレームワークの実行エンジンです。 この構成済み VM は、Terraform および Ansible コマンドの実行に使用されます。
SAP ライブラリには、Terraform 状態ファイル用の永続ストレージと、コントロール プレーン用にダウンロードされた SAP インストール メディアが用意されています。
デプロイツールとライブラリは、Terraform .tfvars 変数ファイルで構成します。 詳細については、「 コントロール プレーンの構成」を参照してください。
ワークロード ゾーン
通常、SAP アプリケーションには複数のデプロイ層があります。 たとえば、開発、品質保証、運用レベルがあるとします。 SAP Deployment Automation Framework では、これらのレベルのワークロード ゾーンが呼び出されます。
SAP ワークロード ゾーンには、SAP VM のネットワークコンポーネントと共有コンポーネントが含まれています。 これらのコンポーネントには、ルート テーブル、ネットワーク セキュリティ グループ、仮想ネットワークが含まれます。 このランドスケープは、デプロイを異なる環境に分割する機会を提供します。 詳細については、「 ワークロード ゾーンの構成」を参照してください。
システムデプロイは、SAP アプリケーションを実行するための VM (Web、アプリ、データベース層など) で構成されます。 詳細については、 SAP システムの構成を参照してください。
Cloud Shellを設定する
Azure Cloud Shell に移動します。
Azure アカウントにサインインします。
az loginサインインを認証します。 メッセージが表示されるまでウィンドウを閉じないでください。
アクティブなサブスクリプションを検証し、サブスクリプション ID を記録します。
az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=tableまたは
az account list --output=table | grep True必要に応じて、アクティブなサブスクリプションを変更します。
az account set --subscription <Subscription ID>アクティブなサブスクリプションが変更されたことを検証します。
az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=table必要に応じて、すべてのデプロイ成果物を削除します。 以前のデプロイ成果物のすべての残りの部分を削除する場合は、このコマンドを使用します。
cd ~ rm -rf Azure_SAP_Automated_Deployment .sap_deployment_automation .terraform.dデプロイ フォルダーを作成し、リポジトリを複製します。
mkdir -p ${HOME}/Azure_SAP_Automated_Deployment; cd $_ git clone https://github.com/Azure/sap-automation-bootstrap.git config git clone https://github.com/Azure/sap-automation.git sap-automation git clone https://github.com/Azure/sap-automation-samples.git samples cp -Rp samples/Terraform/WORKSPACES ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES必要に応じて、Terraform のバージョンと、Cloud Shellのインスタンスで使用可能なAzure CLIを検証します。
./sap-automation/deploy/scripts/helpers/check_workstation.shオートメーション フレームワークを実行するには、次のバージョンに更新します。
-
azバージョン 2.5.0 以降。 -
terraformバージョン 1.5 以降。 必要に応じて、Terraform の手順を使用してアップグレードします。
-
サービス プリンシパルを作成する
SAP Automation デプロイ フレームワークでは、デプロイにサービス プリンシパルが使用されます。 コントロール プレーンのデプロイ用のサービス プリンシパルを作成します。 サービス プリンシパルを作成するには、適切なアクセス許可を持つアカウントを使用してください。
サービス プリンシパルの名前を選択するときは、その名前がAzure テナント内で一意であることを確認します。
サービス プリンシパルの共同作成者とユーザー アクセス管理者のアクセス許可を付与します。
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export control_plane_env_code="LAB" az ad sp create-for-rbac --role="Contributor" \ --scopes="/subscriptions/${ARM_SUBSCRIPTION_ID}" \ --name="${control_plane_env_code}-Deployment-Account"出力結果を確認します。 例えば次が挙げられます。
{ "appId": "<AppId>", "displayName": "<environment>-Deployment-Account ", "name": "<AppId>", "password": "<AppSecret>", "tenant": "<TenantId>" }出力の詳細を下にコピーします。
appId、password、Tenantの値を必ず保存してください。出力は次のパラメーターにマップされます。 これらのパラメーターは、後の手順でオートメーション コマンドと一緒に使用します。
パラメーターの入力名 出力名 spn_idappIdspn_secretpasswordtenant_idtenant必要に応じて、サービス プリンシパルにユーザー アクセス管理者ロールを割り当てます。
export appId="<appId>" az role assignment create --assignee ${appId} \ --role "User Access Administrator" \ --scope /subscriptions/${ARM_SUBSCRIPTION_ID}
Important
ユーザー アクセス管理者ロールをサービス プリンシパルに割り当てない場合は、自動化を使用してアクセス許可を割り当てることはできません。
コントロール プレーン Web アプリケーションの資格情報を構成する
SAP オートメーション フレームワーク コントロール プレーンの一部として、必要な構成ファイルの作成を支援する対話型 Web アプリケーションを必要に応じて作成できます。
アプリ登録を作成する
この Web アプリを使用する場合は、最初に認証のためにアプリ登録を作成する必要があります。 Cloud Shellを開き、次のコマンドを実行します。
必要に応じて、「LAB」という箇所をあなたの環境に置き換えてください。
export env_code="LAB"
echo '[{"resourceAppId":"00000003-0000-0000-c000-000000000000","resourceAccess":[{"id":"e1fe6dd8-ba31-4d61-89e7-88639da4683d","type":"Scope"}]}]' >> manifest.json
export TF_VAR_app_registration_app_id=$(az ad app create \
--display-name ${env_code}-webapp-registration \
--enable-id-token-issuance true \
--sign-in-audience AzureADMyOrg \
--required-resource-access @manifest.json \
--query "appId" --output tsv )
#remove the placeholder manifest.json
rm manifest.json
export TF_VAR_webapp_client_secret=$(az ad app credential reset \
--id $TF_VAR_app_registration_app_id --append \
--query "password" --output tsv )
export TF_use_webapp=true
echo "App registration ID: ${TF_VAR_app_registration_app_id}"
echo "App registration password: ${TF_VAR_webapp_client_secret}"
注
アプリケーションの登録を作成するために必要なアクセス許可を持つユーザー アカウントを使用してログオンしていることを確認します。 アプリの登録の詳細については、「アプリの 登録を作成する」を参照してください。
出力の詳細を下にコピーします。
App registration IDとApp registration passwordの値を保存してください。
出力は次のパラメーターにマップされます。 これらのパラメーターは、後の手順でオートメーション コマンドと一緒に使用します。
| パラメーターの入力名 | 出力名 |
|---|---|
app_registration_app_id |
App registration ID |
webapp_client_secret |
App registration password |
構成ファイルを表示する
Cloud ShellからVisual Studio Codeを開きます。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES code .WORKSPACESディレクトリを展開します。CONFIGURATION、DEPLOYER、LANDSCAPE、LIBRARY、SYSTEM、BOMSの 6 つのサブフォルダーがあります。 これらの各フォルダーを展開して、リージョン展開構成ファイルを見つけます。Terraform 変数ファイルを適切なサブフォルダーで見つけます。 たとえば、
DEPLOYERTerraform 変数ファイルは次の例のようになります。# The environment value is a mandatory field, it is used for partitioning the environments, for example, PROD and NP. environment = "LAB" # The location/region value is a mandatory field, it is used to control where the resources are deployed location = "swedencentral" # management_network_address_space is the address space for management virtual network management_network_address_space = "10.10.20.0/25" # management_subnet_address_prefix is the address prefix for the management subnet management_subnet_address_prefix = "10.10.20.64/28" # management_firewall_subnet_address_prefix is the address prefix for the firewall subnet management_firewall_subnet_address_prefix = "10.10.20.0/26" firewall_deployment = true # management_bastion_subnet_address_prefix is the address prefix for the bastion subnet management_bastion_subnet_address_prefix = "10.10.20.128/26" bastion_deployment = true # deployer_enable_public_ip controls if the deployer Virtual machines will have Public IPs deployer_enable_public_ip = true # deployer_count defines how many deployer VMs will be deployed deployer_count = 1 # use_service_endpoint defines that the management subnets have service endpoints enabled use_service_endpoint = true # use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled use_private_endpoint = false # enable_firewall_for_keyvaults_and_storage defines that the storage accounts and key vaults have firewall enabled enable_firewall_for_keyvaults_and_storage = false # public_network_access_enabled controls if storage account and key vaults have public network access enabled public_network_access_enabled = trueデプロイ中の今後の編集のために、Terraform 変数ファイルの場所に注意してください。
SAP ライブラリの Terraform 変数ファイルを適切なサブフォルダーで見つけます。 たとえば、
LIBRARYTerraform 変数ファイルは次の例のようになります。# The environment value is a mandatory field, it is used for partitioning the environments, for example, PROD and NP. environment = "LAB" # The location/region value is a mandatory field, it is used to control where the resources are deployed location = "swedencentral" #Defines the DNS suffix for the resources dns_label = "lab.sdaf.contoso.net" # use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled use_private_endpoint = falseデプロイ中の今後の編集のために、Terraform 変数ファイルの場所に注意してください。
Important
dns_labelがAzure プライベート DNSのインスタンスと一致していることを確認します。
コントロール プレーンをデプロイする
deploy_controlplane.sh スクリプトを使用して、配置ツールとライブラリをデプロイします。 これらのデプロイ部分は、選択した自動化領域のコントロール プレーンを構成します。
デプロイは、インフラストラクチャのデプロイ、状態の更新、Terraform 状態ファイルのライブラリ ストレージ アカウントへのアップロードのサイクルを経ます。 これらの手順はすべて、1 つのデプロイ スクリプトにパッケージ化されます。 スクリプトには、配置者とライブラリの構成ファイルの場所と、その他のパラメーターが必要です。
たとえば、前に説明したように、4 文字の名前をして、展開場所としてSECEを選択します。 サンプルの deployer 構成ファイル LAB-SECE-DEP05-INFRASTRUCTURE.tfvars は、 ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/LAB-SECE-DEP05-INFRASTRUCTURE フォルダーにあります。
サンプルの SAP ライブラリ構成ファイル LAB-SECE-SAP_LIBRARY.tfvars は、 ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/LAB-SECE-SAP_LIBRARY フォルダーにあります。
サービス プリンシパルの環境変数を設定します。
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appId>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenantId>"デプロイ ネットワークの一部ではないワークステーションまたは Cloud Shell からスクリプトを実行している場合は、次のコマンドを使用して、IP アドレスからの接続を許可するための環境変数を設定できます。
export TF_VAR_Agent_IP=<your-public-ip-address>構成 Web アプリケーションをデプロイする場合は、次の環境変数も設定する必要があります。
export TF_VAR_app_registration_app_id=<appRegistrationId> export TF_VAR_webapp_client_secret=<appRegistrationPassword> export TF_use_webapp=true次のスクリプトを使用して、デプロイ 元と SAP ライブラリを作成し、サービス プリンシパルの詳細をデプロイ キー コンテナーに追加します。
export env_code="LAB" export vnet_code="DEP05" export region_code="SECE" 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" cd $CONFIG_REPO_PATH az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}" deployer_parameter_file="${CONFIG_REPO_PATH}/DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars" library_parameter_file="${CONFIG_REPO_PATH}/LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars" ${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/deploy_controlplane.sh \ --deployer_parameter_file "${deployer_parameter_file}" \ --library_parameter_file "${library_parameter_file}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --spn_id "${ARM_CLIENT_ID}" \ --spn_secret "${ARM_CLIENT_SECRET}" \ --tenant_id "${ARM_TENANT_ID}"認証の問題が発生した場合は、
az logoutを実行してサインアウトし、token-cacheをクリアします。 次に、az loginを実行して再認証します。オートメーション フレームワークが Terraform 操作を実行するまで待つ
planとapply。配置者のデプロイは、約 15 ~ 20 分間実行される場合があります。
今後の手順では、いくつかの値をメモする必要があります。 出力で次のテキスト ブロックを探します。
######################################################################################### # # # Please save these values: # # - Key Vault: LABSECEDEP05user39B # # - Deployer IP: x.x.x.x # # - Storage Account: labsecetfstate53e # # - Web Application Name: lab-sece-sapdeployment39B # # - App registration Id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # # # #########################################################################################Azure ポータルに移動します。
[リソース グループ] を選択します。 デプロイ元のインフラストラクチャとライブラリの新しいリソース グループを探します。 たとえば、
LAB-[region]-DEP05-INFRASTRUCTUREとLAB-[region]-SAP_LIBRARYが表示される場合があります。デプロイ元と SAP ライブラリ リソース グループの内容を次に示します。
これで、Terraform 状態ファイルは、
tfstateを含む名前のストレージ アカウントに配置されます。 ストレージ アカウントには、デプロイ元とライブラリの状態ファイルを含むtfstateという名前のコンテナーがあります。 コントロール プレーンのデプロイが成功した後のtfstateコンテナーの内容を次に示します。
一般的な問題と解決策
以下はいくつかのトラブルシューティングのヒントです:
deployer モジュールの作成で次のエラーが発生する場合は、スクリプトの実行時に
WORKSPACESディレクトリにいることを確認してください。Incorrect parameter file. The file must contain the environment attribute!!次のエラーは一時的なものです。 同じコマンド (
deploy_controlplane.sh) を再実行します。Error: file provisioner error .. timeout - last error: dial tcpスクリプト
deploy_controlplane.shを実行した直後に認証の問題が発生した場合は、次のコマンドを実行します。az logout az login
デプロイ元 VM に接続する
コントロール プレーンがデプロイされると、リモート バックエンド azurermを使用して Terraform 状態が格納されます。 デプロイ元 VM に接続するためのすべてのシークレットは、デプロイ元のリソース グループ内のキー コンテナーで使用できます。
Deployer VM に接続するには:
Azure ポータルにサインインします。
[キー コンテナー] を選択または検索します。
[ キー コンテナー ] ページで、デプロイ元のキー コンテナーを見つけます。 名前は
LAB[REGION]DEP05userで始まります。 必要に応じて、 リソース グループ または 場所でフィルター処理します。左側のウィンドウの [設定] セクションで、[ シークレット] を選択します。
sshkey を含むシークレットを見つけて選択します。
LAB-[REGION]-DEP05-sshkeyのようになります。シークレットのページで、現在のバージョンを選択します。 次に、シークレット値をコピーします。
プレーンテキスト エディターを開きます。 シークレット値をコピーします。
SSH キーを保持するファイルを保存します。 たとえば、
C:\\Users\\<your-username>\\.sshを使用します。ファイルを保存します。 [種類として保存] を求めるメッセージが表示されたら、SSH がオプションでない場合は [すべてのファイル] を選択します。 たとえば、
deployer.sshを使用します。Visual Studio Codeなど、任意の SSH クライアントを介してデプロイ元 VM に接続します。 前にメモしたパブリック IP アドレスと、ダウンロードした SSH キーを使用します。 Visual Studio Codeを使用して配置者に接続する方法については、「
Visual Studio Code を参照してください。 PuTTY を使用している場合は、まず PuTTYGen を使用して SSH キー ファイルを変換します。
注
既定のユーザー名は azureadm です。
ファイルが SSH キーを保存する際に、改行 (CR) 文字を含まない正しい形式でファイルを保存できることを確認してください。 Visual Studio Codeまたは基本的なテキスト エディターを使用します。
デプロイ元 VM に接続したら、部品表 (BOM) を使用して SAP ソフトウェアをダウンロードできます。
パブリック IP を使用していない場合は、デプロイ元 VM に接続する
パブリック IP 接続のないデプロイの場合、インターネット経由の直接接続は許可されません。 このような場合は、Azure Bastionジャンプ ボックスを使用することも、Azure仮想ネットワークに接続しているコンピューターから次の手順を実行することもできます。
次の例では、Azure Bastionを使用します。
デプロイ機能に接続するには:
Azure ポータルにサインインします。
デプロイ元 VM を含むリソース グループに移動します。
Azure Bastionを使用して VM に接続します。
既定のユーザー名は azureadm です。
Azure Key Vault から
SSH 秘密キーを選択します。 コントロール プレーンを含むサブスクリプションを選択します。
デプロイ機能キー コンテナーを選択します。
シークレットの一覧から、-sshkey で終わるシークレットを選択します。
VM に接続します。
残りのタスクは、配置者で実行する必要があります。
コントロール プレーンをセキュリティで保護する
コントロール プレーンは、SAP オートメーション フレームワークの最も重要な部分です。 コントロール プレーンをセキュリティで保護することが重要です。 次の手順は、コントロール プレーンをセキュリティで保護するのに役立ちます。
プライベート エンドポイントを有効にし、ストレージ アカウントとキー コンテナーへのパブリック アクセスをブロックするには、コントロール プレーンの tfvars ファイルを更新する必要があります。
コントロール プレーン構成ファイルを配置者 VM にコピーするには、
sync_deployer.shスクリプトを使用できます。 デプロイ元 VM にサインインし、Terraform 状態ストレージ アカウント名を使用するように次のコマンドを更新します。 次に、次のスクリプトを実行します。terraform_state_storage_account=labsecetfstate### cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES ../sap-automation/deploy/scripts/sync_deployer.sh --storageaccountname $terraform_state_storage_account --state_subscription $ARM_SUBSCRIPTION_IDこのコマンドは、
tfvars構成ファイルを SAP ライブラリのストレージ アカウントからデプロイ元 VM にコピーします。コントロール プレーンの構成ファイルを次に変更します。
# use_private_endpoint defines that the storage accounts and key vaults have private endpoints enabled use_private_endpoint = true # enable_firewall_for_keyvaults_and_storage defines that the storage accounts and key vaults have firewall enabled enable_firewall_for_keyvaults_and_storage = true # public_network_access_enabled controls if storage account and key vaults have public network access enabled public_network_access_enabled = false # if you want to use the webapp use_webapp = trueデプロイを再実行して変更を適用します。 スクリプト内のストレージ アカウント名とキー コンテナー名を更新します。
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appId>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenantId>"配置者と SAP ライブラリを作成します。
export env_code="LAB" export vnet_code="DEP05" export region_code="SECE" terraform_state_storage_account=labsecetfstate### vault_name="LABSECEDEP05user###" 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" cd $CONFIG_REPO_PATH deployer_parameter_file="${CONFIG_REPO_PATH}/DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars" library_parameter_file="${CONFIG_REPO_PATH}/LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars" az logout az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}" ${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/deploy_controlplane.sh \ --deployer_parameter_file "${deployer_parameter_file}" \ --library_parameter_file "${library_parameter_file}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --storageaccountname "${terraform_state_storage_account}" \ --vault "${vault_name}"
Web アプリケーションをデプロイする
次のスクリプトを使用して、Web アプリケーションをデプロイできます。
export env_code="LAB"
export vnet_code="DEP05"
export region_code="SECE"
export webapp_name="<webAppName>"
export app_id="<appRegistrationId>"
export webapp_id="<webAppId>"
export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
cd $DEPLOYMENT_REPO_PATH
cd Webapp/SDAF
dotnet build SDAFWebApp.csproj
dotnet publish SDAFWebApp.csproj --output publish
cd publish
zip -r SDAF.zip .
az webapp deploy --resource-group ${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE --name $webapp_name --src-path SDAF.zip --type zip
az ad app update --id $app_id --web-home-page-url https://$webapp_name.azurewebsites.net --web-redirect-uris https://$webapp_name.azurewebsites.net/ https://$webapp_name.azurewebsites.net/.auth/login/aad/callback
az role assignment create --assignee $webapp_id --role reader --subscription $ARM_SUBSCRIPTION_ID --scope /subscriptions/$ARM_SUBSCRIPTION_ID
az webapp restart --resource-group ${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE --name $webapp_name
ワークロード ゾーン情報の収集
テキスト エディターで次の情報を収集します。 この情報は、"コントロール プレーンのデプロイ" フェーズの最後に収集されました。
ライブラリ リソース グループ内の Terraform 状態ファイル ストレージ アカウントの名前。
前の例に従って、リソース グループは
LAB-SECE-SAP_LIBRARY。ストレージ アカウントの名前に
labsecetfstateが含まれています。
デプロイ機能リソース グループのキーコンテナーの名前:
前の例に従って、リソース グループは
LAB-SECE-DEP05-INFRASTRUCTURE。キー コンテナーの名前に
LABSECEDEP05userが含まれています。
デプロイ元 VM のパブリック IP アドレス。 デプロイ担当者のリソース グループに移動し、デプロイ元 VM を開き、パブリック IP アドレスをコピーします。
次の情報を収集する必要があります。
デプロイ元の状態ファイルの名前は、ライブラリ リソース グループの下にあります。
ライブラリ リソース グループ>状態ストレージアカウント>コンテナ>
tfstateを選択します。 配置元の状態ファイルの名前をコピーします。前の例に続いて、BLOB の名前は
LAB-SECE-DEP05-INFRASTRUCTURE.terraform.tfstate。
必要に応じて、サービス プリンシパルを登録します。 この例では、この手順は必要ありません。
環境を初めてインスタンス化するときは、サービス プリンシパルを登録する必要があります。 この例では、コントロール プレーンは
LAB環境にあり、ワークロード ゾーンもLAB。 このため、LAB環境にサービス プリンシパルを登録する必要があります。export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appID>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenant>" export key_vault="<vaultName>" export env_code="LAB" export region_code="SECE" export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"${SAP_AUTOMATION_REPO_PATH}/deploy/scripts/set_secrets.sh \ --environment "${env_code}" \ --region "${region_code}" \ --vault "${key_vault}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --spn_id "${ARM_CLIENT_ID}" \ --spn_secret "${ARM_CLIENT_SECRET}" \ --tenant_id "${ARM_TENANT_ID}"
ワークロード ゾーンのデプロイ準備を行う
次の手順に従って、デプロイ元 VM に接続します。 リポジトリのコピーがそこにあります。
ワークロード ゾーンをデプロイする
install_workloadzone スクリプトを使用して、SAP ワークロード ゾーンをデプロイします。
デプロイ元 VM で、
Azure_SAP_Automated_Deploymentフォルダーに移動します。cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/LAB-SECE-SAP04-INFRASTRUCTURE必要に応じて、ワークロード ゾーン構成ファイルを開き、必要に応じて、ネットワーク名と一致するようにネットワーク論理名を変更します。
ワークロード ゾーンのデプロイを開始します。 前に収集した詳細は、ここで必要です。
- deployer
tfstateファイルの名前 (tfstateコンテナーにあります) -
tfstateストレージ アカウントの名前 - デプロイ機能キー コンテナーの名前
export ARM_SUBSCRIPTION_ID="<subscriptionId>" export ARM_CLIENT_ID="<appId>" export ARM_CLIENT_SECRET="<password>" export ARM_TENANT_ID="<tenantId>"export deployer_env_code="LAB" export sap_env_code="LAB" export region_code="SECE" export deployer_vnet_code="DEP05" export vnet_code="SAP04" export tfstate_storage_account="<storageaccountName>" export key_vault="<vaultName>" export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES" export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation" az login --service-principal -u "${ARM_CLIENT_ID}" -p="${ARM_CLIENT_SECRET}" --tenant "${ARM_TENANT_ID}" cd "${CONFIG_REPO_PATH}/LANDSCAPE/${sap_env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE" parameterFile="${sap_env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars" deployerState="${deployer_env_code}-${region_code}-${deployer_vnet_code}-INFRASTRUCTURE.terraform.tfstate" $SAP_AUTOMATION_REPO_PATH/deploy/scripts/install_workloadzone.sh \ --parameterfile "${parameterFile}" \ --deployer_environment "${deployer_env_code}" \ --deployer_tfstate_key "${deployerState}" \ --keyvault "${key_vault}" \ --storageaccountname "${tfstate_storage_account}" \ --subscription "${ARM_SUBSCRIPTION_ID}" \ --spn_id "${ARM_CLIENT_ID}" \ --spn_secret "${ARM_CLIENT_SECRET}" \ --tenant_id "${ARM_TENANT_ID}"ワークロード ゾーンのデプロイが自動的に開始されます。
デプロイが完了するまで待ちます。 Azure ポータルに新しいリソース グループが表示されます。
- deployer
SAP システム インフラストラクチャのデプロイを準備する
次の手順に従って、デプロイ元 VM に接続します。 リポジトリのコピーがそこにあります。
WORKSPACES/SYSTEM フォルダーに移動し、リポジトリから使用するサンプル構成ファイルをコピーします。
SAP システム インフラストラクチャをデプロイする
ワークロード ゾーンが完了したら、SAP システム インフラストラクチャ リソースをデプロイできます。 SAP システムは、お使いの SAP アプリケーションの VM とサポート コンポーネントを作成します。 installer.sh スクリプトを使用して SAP システムをデプロイします。
SAP システムは次をデプロイします。
- データベース層。データベース VM とそのディスクとAzure Standard Load Balancer インスタンスをデプロイします。 このレベルでは、HANA データベースまたは AnyDB データベースを実行できます。
- 顧客が定義した数の VM と Azure Standard Load Balancer インスタンスをデプロイする SCS レベル。
- VM とそのディスクをデプロイするアプリケーション層。
- Web ディスパッチャー層。
SAP システムをデプロイします。
export sap_env_code="LAB"
export region_code="SECE"
export vnet_code="SAP04"
export SID="L00"
export CONFIG_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES"
export SAP_AUTOMATION_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
cd ${CONFIG_REPO_PATH}/SYSTEM/${sap_env_code}-${region_code}-${vnet_code}-${SID}
${DEPLOYMENT_REPO_PATH}/deploy/scripts/installer.sh \
--parameterfile "${sap_env_code}-${region_code}-${vnet_code}-${SID}.tfvars" \
--type sap_system
システム リソース グループが Azure ポータルに表示されていることを確認します。
部品表を使用して SAP ソフトウェアを入手する
自動化フレームワークでは、SAP BOM を使用して SAP からソフトウェアをダウンロードするためのツールが提供されます。 ソフトウェアは SAP ライブラリにダウンロードされます。SAP ライブラリは、SAP のデプロイに必要なすべてのメディアのアーカイブとして機能します。
SAP BOM は、SAP メンテナンス プランナーを模倣します。 関連する製品識別子と一連のダウンロード URL があります。
BOM ファイルのサンプル抽出は、次の例のようになります。
---
name: 'S41909SPS03_v0010'
target: 'S/4 HANA 1909 SPS 03'
version: 7
product_ids:
dbl: NW_ABAP_DB:S4HANA1909.CORE.HDB.ABAP
scs: NW_ABAP_ASCS:S4HANA1909.CORE.HDB.ABAP
scs_ha: NW_ABAP_ASCS:S4HANA1909.CORE.HDB.ABAPHA
pas: NW_ABAP_CI:S4HANA1909.CORE.HDB.ABAP
pas_ha: NW_ABAP_CI:S4HANA1909.CORE.HDB.ABAPHA
app: NW_DI:S4HANA1909.CORE.HDB.PD
app_ha: NW_DI:S4HANA1909.CORE.HDB.ABAPHA
web: NW_Webdispatcher:NW750.IND.PD
ers: NW_ERS:S4HANA1909.CORE.HDB.ABAP
ers_ha: NW_ERS:S4HANA1909.CORE.HDB.ABAPHA
materials:
dependencies:
- name: HANA_2_00_055_v0005ms
media:
# SAPCAR 7.22
- name: SAPCAR
archive: SAPCAR_1010-70006178.EXE
checksum: dff45f8df953ef09dc560ea2689e53d46a14788d5d184834bb56544d342d7b
filename: SAPCAR
permissions: '0755'
url: https://softwaredownloads.sap.com/file/0020000002208852020
# Kernel
- name: "Kernel Part I ; OS: Linux on x86_64 64bit ; DB: Database independent"
この構成例では、リソース グループは LAB-SECE-DEP05-INFRASTRUCTURE。 デプロイ 元のキー コンテナー名には、その名前に LABSECEDEP05user が含まれています。 この情報を使用して、デプロイ者のキー コンテナー シークレットを構成します。
次の手順に従って、デプロイ元 VM に接続します。 リポジトリのコピーがそこにあります。
SAP ユーザー アカウントのユーザー名を含むシークレットを追加します。
<vaultName>を展開者キー コンテナーの名前に置き換えます。 また、<sap-username>を SAP ユーザー名に置き換えます。export key_vault=<vaultName> export sap_username=<sap-username> az keyvault secret set --name "S-Username" --vault-name $key_vault --value "${sap_username}";SAP ユーザー アカウントのパスワードを使用してシークレットを追加します。
<vaultName>をデプロイ元のキー コンテナー名に置き換え、<sap-password>を SAP パスワードに置き換えます。注
sap_user_passwordを設定する場合は、単一引用符を使用することが重要です。 パスワードに特殊文字を使用すると、予期しない結果が生じる可能性があります。sap_user_password='<sap-password>' az keyvault secret set --name "S-Password" --vault-name "${key_vault}" --value="${sap_user_password}";ダウンロード プロセス用に SAP パラメーター ファイルを構成します。 次に、Ansible プレイブックを使用して SAP ソフトウェアをダウンロードします。 次のコマンドを実行してください:
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES mkdir BOMS cd BOMS vi sap-parameters.yamlbom_base_nameをBOMという名前で更新します。<Deployer KeyVault Name>を、デプロイ 元リソース グループのAzure Key Vaultの名前に置き換えます。ファイルは、次の構成例のようになります。
bom_base_name: S42022SPS00_v0001ms deployer_kv_name: <vaultName> BOM_directory: ${HOME}/Azure_SAP_Automated_Deployment/samples/SAPソフトウェアをダウンロードするには、Ansible プレイブックを実行します。 プレイブックを実行する方法の 1 つは、[ ダウンローダー ] メニューを使用することです。
download_menuスクリプトを実行します。${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/download_menu.sh実行するプレイブックを選択します。
1) BoM Downloader 3) Quit Please select playbook:プレイブック
1) BoM Downloaderを選択して、BOM ファイルで説明されている SAP ソフトウェアをストレージ アカウントにダウンロードします。sapbitsコンテナーにインストール用のすべてのメディアがあることを確認します。プレイブックは、構成メニューを使用するか、コマンド ラインから直接実行できます。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/BOMS/ export ANSIBLE_PRIVATE_KEY_FILE=sshkey playbook_options=( --inventory-file="${sap_sid}_hosts.yaml" --private-key=${ANSIBLE_PRIVATE_KEY_FILE} --extra-vars="_workspace_directory=`pwd`" --extra-vars="@sap-parameters.yaml" --extra-vars="bom_processing=true" "${@}" ) # Run the playbook to retrieve the ssh key from the Azure Key Vault ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml # Run the playbook to perform the Operating System configuration ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_bom_downloader.yaml必要に応じて、SAP ユーザー資格情報をパラメーターとして渡すこともできます。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/BOMS/ sap_username=<sap-username> sap_user_password='<sap-password>' export ANSIBLE_PRIVATE_KEY_FILE=sshkey playbook_options=( --inventory-file="${sap_sid}_hosts.yaml" --private-key=${ANSIBLE_PRIVATE_KEY_FILE} --extra-vars="_workspace_directory=`pwd`" --extra-vars="@sap-parameters.yaml" --extra-vars="s_user=${sap_username}" --extra-vars="s_password=${sap_user_password}" --extra-vars="bom_processing=true" "${@}" ) # Run the playbook to retrieve the ssh key from the Azure Key Vault ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml # Run the playbook to perform the Operating System configuration ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_bom_downloader.yaml
SAP アプリケーションをインストールする
SAP アプリケーションのインストールは、Ansible プレイブックを通じて行われます。
システム展開フォルダーに移動します。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
現在のフォルダーに次のファイルがあることを確認します: sap-parameters.yaml と L00_host.yaml。
スタンドアロンの SAP S/4HANA システムでは、8 つのプレイブックを順番に実行できます。 プレイブックを実行する方法の 1 つは、構成メニューを使用することです。
configuration_menu スクリプトを実行します。
${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/configuration_menu.sh
実行するプレイブックを選択します。
プレイブック: 基本オペレーティング システムの構成
このプレイブックは、ソフトウェア リポジトリ、パッケージ、およびサービスの構成を含むすべてのマシンで汎用オペレーティング システム構成のセットアップを実行します。
プレイブックは、構成メニューまたはコマンド ラインを使用して実行できます。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to perform the Operating System configuration
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_01_os_base_config.yaml
プレイブック: SAP 固有のオペレーティング システムの構成
このプレイブックは、すべてのマシンで SAP オペレーティング システム構成のセットアップを実行します。 手順には、ボリューム グループとファイル システムの作成、ソフトウェア リポジトリ、パッケージ、およびサービスの構成が含まれます。
プレイブックは、構成メニューまたはコマンド ラインを使用して実行できます。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to perform the SAP Specific Operating System configuration
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_02_os_sap_specific_config.yaml
プレイブック: BOM 処理
このプレイブックは、SAP ソフトウェアを SCS VM にダウンロードします。
プレイブックは、構成メニューまたはコマンド ラインを使用して実行できます。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_03_bom_processing.yaml
プレイブック: SCS のインストール
このプレイブックでは、SAP セントラル サービスがインストールされます。 高可用性構成の場合、プレイブックでは SAP ERS インスタンスもインストールされ、Pacemaker が構成されます。
プレイブックは、構成メニューまたはコマンド ラインを使用して実行できます。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_00_00_sap_scs_install.yaml
プレイブック: データベース インスタンスのインストール
このプレイブックでは、データベース インスタンスがインストールされます。
プレイブックは、構成メニューまたはコマンド ラインを使用して実行できます。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_04_00_00_db_install.yaml
プレイブック: データベースの読み込み
このプレイブックは、プライマリ アプリケーション サーバーからデータベース読み込みタスクを呼び出します。
プレイブックは、構成メニューまたはコマンド ラインを使用して実行できます。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_01_sap_dbload.yaml
プレイブック: データベースの高可用性のセットアップ
このプレイブックは、データベースの高可用性を構成します。 HANA の場合、HANA データベースの HANA システム レプリケーションと Pacemaker が必要です。
プレイブックは、構成メニューまたはコマンド ラインを使用して実行できます。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_04_00_01_db_ha.yaml
プレイブック: プライマリ アプリケーション サーバーのインストール
このプレイブックでは、プライマリ アプリケーション サーバーがインストールされます。 プレイブックは、構成メニューまたはコマンド ラインを使用して実行できます。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_02_sap_pas_install.yaml
プレイブック: アプリケーション サーバーのインストール
このプレイブックでは、アプリケーション サーバーがインストールされます。 プレイブックは、構成メニューまたはコマンド ラインを使用して実行できます。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_02_sap_app_install.yaml
プレイブック: Web Dispatcher のインストール手順
このプレイブックでは、Web ディスパッチャーがインストールされます。 プレイブックは、構成メニューまたはコマンド ラインを使用して実行できます。
これで、スタンドアロン HANA システムをデプロイして構成しました。 高可用性 (HA) SAP HANAデータベースを構成する必要がある場合は、HANA HA プレイブックを実行します。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/LAB-SECE-SAP04-L00/
export sap_sid=L00
export ANSIBLE_PRIVATE_KEY_FILE=sshkey
playbook_options=(
--inventory-file="${sap_sid}_hosts.yaml"
--private-key=${ANSIBLE_PRIVATE_KEY_FILE}
--extra-vars="_workspace_directory=`pwd`"
--extra-vars ansible_ssh_pass='{{ lookup("env", "ANSIBLE_PASSWORD") }}'
--extra-vars="@sap-parameters.yaml"
"${@}"
)
# Run the playbook to retrieve the ssh key from the Azure Key Vault
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/pb_get-sshkey.yaml
# Run the playbook to download the software from the SAP Library
ansible-playbook "${playbook_options[@]}" ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/playbook_05_04_sap_web_install.yaml
リソースをクリーンアップする
完了したら、SAP インストールをクリーンアップすることが重要です。 それ以外の場合は、リソースに関連するコストが引き続き発生します。
デプロイした SAP インフラストラクチャ全体を削除するには、次の手順を実行する必要があります。
- SAP システム インフラストラクチャ リソースを削除します。
- すべてのワークロード ゾーン (ランドスケープ) を削除します。
- コントロール プレーンを削除します。
デプロイ元 VM から SAP インフラストラクチャ リソースとワークロード ゾーンの削除を実行します。 Cloud Shellからコントロール プレーンの削除を実行します。
開始する前に、Azure アカウントにサインインします。 次に、正しいサブスクリプションに登録されていることを確認します。
SAP インフラストラクチャを削除する
LAB-SECE-SAP01-L00 フォルダー内の SYSTEM サブフォルダーに移動します。 次に、次のコマンドを実行します。
export sap_env_code="LAB"
export region_code="SECE"
export sap_vnet_code="SAP04"
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/${sap_env_code}-${region_code}-${sap_vnet_code}-L00
${DEPLOYMENT_REPO_PATH}/deploy/scripts/remover.sh \
--parameterfile "${sap_env_code}-${region_code}-${sap_vnet_code}-L00.tfvars" \
--type sap_system
SAP ワークロード ゾーンを削除する
LAB-XXXX-SAP01-INFRASTRUCTURE フォルダー内の LANDSCAPE サブフォルダーに移動します。 次に、次のコマンドを実行します。
export sap_env_code="LAB"
export region_code="SECE"
export sap_vnet_code="SAP01"
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/${sap_env_code}-${region_code}-${sap_vnet_code}-INFRASTRUCTURE
${DEPLOYMENT_REPO_PATH}/deploy/scripts/remover.sh \
--parameterfile ${sap_env_code}-${region_code}-${sap_vnet_code}-INFRASTRUCTURE.tfvars \
--type sap_landscape
コントロール プレーンを削除する
Cloud Shell にサインインします。
WORKSPACES フォルダーに移動します。
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/
次の 2 つの環境変数をエクスポートします。
export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
export ARM_SUBSCRIPTION_ID="<subscriptionId>"
次のコマンドを実行します。
export region_code="SECE"
export env_code="LAB"
export vnet_code="DEP05"
cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
${DEPLOYMENT_REPO_PATH}/deploy/scripts/remove_controlplane.sh \
--deployer_parameter_file DEPLOYER/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE/${env_code}-${region_code}-${vnet_code}-INFRASTRUCTURE.tfvars \
--library_parameter_file LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars
すべてのリソースがクリーンアップされていることを確認します。