Share via


チュートリアル: エンタープライズ規模で SAP デプロイ自動化フレームワークをデプロイする

このチュートリアルでは、SAP デプロイ自動化フレームワークを使用してデプロイを実行する方法について説明します。 この例では、Azure Cloud Shell を使用してコントロール プレーン インフラストラクチャをデプロイします。 デプロイ機能仮想マシン (VM) は、残りのインフラストラクチャと SAP HANA 構成を作成します。

このチュートリアルでは、以下のタスクを実行します。

  • コントロール プレーンをデプロイする (デプロイ機能インフラストラクチャとライブラリ)。
  • ワークロード ゾーンをデプロイする (ランドスケープとシステム)。
  • 部品表をダウンロードまたはアップロードする。
  • オペレーティング システムの標準と SAP 固有の設定を構成する。
  • HANA データベースをインストールする。
  • SAP セントラル サービス (SCS) サーバーをインストールする。
  • HANA データベースを読み込む。
  • プライマリ アプリケーション サーバーをインストールする。

自動化フレームワークを使用した Azure への SAP のデプロイには、主に 3 つの手順があります。

  1. リージョンを準備します。 指定された Azure リージョンで SAP 自動化フレームワークをサポートするコンポーネントをデプロイします。 この手順では次のことを行います:

    1. デプロイ環境を作成します。
    2. Terraform 状態ファイル用の共有ストレージを作成します。
    3. SAP インストール メディア用の共有ストレージを作成します。
  2. ワークロード ゾーンを準備します。 仮想ネットワークやキー コンテナーなどのワークロード ゾーン コンポーネントをデプロイします。

  3. システムをデプロイします。 SAP システムのインフラストラクチャをデプロイします。

デプロイ自動化プロセスにはいくつかのワークフローがあります。 このチュートリアルでは、デプロイを容易に行うために 1 つのワークフローに焦点を当てます。 Bash を使用して、このワークフローである SAP S4 HANA のスタンドアロンの環境をデプロイできます。 このチュートリアルでは、デプロイの一般的な階層とさまざまなフェーズについて説明します。

環境の概要

SAP デプロイ自動化フレームワークには、次の 2 つの主要なコンポーネントがあります。

  • デプロイ インフラストラクチャ (コントロール プレーン)
  • SAP インフラストラクチャ (SAP ワークロード)

次の図は、コントロール プレーンとアプリケーション プレーンの間の依存関係を示しています。

Diagram that shows the DevOps tutorial infrastructure design.

このフレームワークでは、インフラストラクチャのデプロイに Terraform を使用し、オペレーティング システムとアプリケーションの構成に Ansible を使用します。 次の図は、コントロール プレーンとワークロード ゾーンの論理的な分離を示しています。

Diagram that shows the SAP Deployment Automation Framework environment.

管理ゾーン

管理ゾーンには、他の環境のデプロイ元のコントロール プレーン インフラストラクチャが含まれます。 管理ゾーンがデプロイされた後は、再デプロイが必要になることはほとんどありません。

Diagram that shows the control plane.

デプロイ機能は、SAP 自動化フレームワークの実行エンジンです。 この事前構成済みの VM は、Terraform と Ansible のコマンドの実行に使用されます。

SAP ライブラリは、Terraform 状態ファイル用の永続ストレージと、コントロール プレーン用にダウンロードされた SAP インストール メディアを提供します。

Terraform .tfvars 変数ファイルでデプロイ機能とライブラリを構成します。 詳細については、「コントロール プレーンを構成する」を参照してください。

ワークロード ゾーン

通常、SAP アプリケーションには複数のデプロイ レベルがあります。 たとえば、開発、品質保証、実稼働のレベルがある場合があります。 SAP デプロイ自動化フレームワークでは、これらのレベルをワークロード ゾーンと呼びます。

Diagram that shows the workload zone.

"SAP ワークロード ゾーン" には、SAP VM のネットワーク コンポーネントと共有コンポーネントが含まれています。 これらのコンポーネントには、ルート テーブル、ネットワーク セキュリティ グループ、仮想ネットワークが含まれます。 ランドスケープは、デプロイを異なる環境に分割する機会を提供します。 詳細については、ワークロード ゾーンの構成に関するページを参照してください。

システムのデプロイは、Web、アプリ、データベースのレベルなどを含む、SAP アプリケーションを実行する VM で構成されます。 詳細については、「SAP システムを構成する」を参照してください。

前提条件

SAP デプロイ自動化フレームワーク リポジトリは、GitHub で利用できます。

Azure Bastion をデプロイするか、Secure Shell (SSH) クライアントを使って、デプロイ機能に接続する必要があります。 使いやすいと思う SSH クライアントを使用します。

Azure サブスクリプション クォータを確認する

Microsoft Azure サブスクリプションに、選択したリージョンの DdSV4 および EdsV4 ファミリ SKU 用の十分なコア クォータがあることを確認してください。 各 VM ファミリで使用可能なコア数は、約 50 で十分です。

SAP ソフトウェア ダウンロード用の S-User アカウント

SAP ソフトウェアをダウンロードするには、ソフトウェアのダウンロード特権を持つ有効な SAP ユーザー アカウント (SAP ユーザーまたは S ユーザーのアカウント) が必要です。

Cloud Shell の設定

  1. Azure Cloud Shell に移動します。

  2. Azure アカウントへサインインします。

    az login
    

    サインインを認証します。 メッセージが表示されるまでウィンドウを閉じないでください。

  3. アクティブなサブスクリプションがあることを確認し、サブスクリプション 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
    
  4. 必要に応じて、アクティブなサブスクリプションを変更します。

    az account set --subscription <Subscription ID>
    

    アクティブなサブスクリプションが変更されたことを確認します。

    az account list --query "[?isDefault].{Name: name, CloudName: cloudName, SubscriptionId: id, State: state, IsDefault: isDefault}" --output=table
    
  5. 必要に応じて、すべてのデプロイの成果物を削除します。 以前のデプロイの成果物の残りをすべて削除する場合は、このコマンドを使用します。

    
    cd ~
    
    rm -rf Azure_SAP_Automated_Deployment .sap_deployment_automation .terraform.d
    
  6. デプロイ フォルダーを作成し、リポジトリを複製します。

    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
    
    
  7. 必要に応じて、Cloud Shell のインスタンスで使用できる Terraform と Azure CLI のバージョンを確認します。

    ./sap-automation/deploy/scripts/helpers/check_workstation.sh
    

    自動化フレームワークを実行するには、次のバージョンに更新します。

サービス プリンシパルの作成

SAP オートメーション デプロイ フレームワークでは、デプロイにサービス プリンシパルが使用されます。 コントロール プレーンのデプロイのサービス プリンシパルを作成します。 サービス プリンシパルを作成するアクセス許可を持つアカウントを使用してください。

サービス プリンシパルの名前を選択する場合は、その名前が Azure テナント内で一意なものであることを確認してください。

  1. サービス プリンシパルへ共同作成者とユーザー アクセス管理者のアクセス許可を付与します。

    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>"
    }
    
  2. 出力の詳細をコピーします。 appIdpasswordTenant の値を必ず保存してください。

    出力は次のパラメーターにマップされます。 これらのパラメーターは、後の手順でオートメーション コマンドと一緒に使用します。

    パラメーターの入力名 出力名
    spn_id appId
    spn_secret password
    tenant_id tenant
  3. 必要に応じて、サービス プリンシパルにユーザー アクセス管理者ロールを割り当てます。

    export appId="<appId>"
    
    az role assignment create --assignee ${appId}   \
      --role "User Access Administrator"            \
      --scope /subscriptions/${ARM_SUBSCRIPTION_ID}
    

重要

サービス プリンシパルにユーザー アクセス管理者ロールを割り当てないと、自動化を使用してアクセス許可を割り当てることはできません。

コントロール プレーン Web アプリケーションの資格情報を構成する

必要に応じて、SAP 自動化フレームワーク コントロール プレーンの一部として、必要な構成ファイルを作成するのに役立つ対話型 Web アプリケーションを作成できます。

Screenshot that shows the web app front page.

アプリの登録を作成する

この 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}"

Note

アプリケーションの登録を作成するために必要なアクセス許可を持つユーザー アカウントを使ってログオンするようにしてください。 アプリの登録について詳しくは、アプリの登録の作成に関する記事をご覧ください。

出力の詳細をコピーします。 App registration IDApp registration password の値を必ず保存してください。

出力は次のパラメーターにマップされます。 これらのパラメーターは、後の手順でオートメーション コマンドと一緒に使用します。

パラメーターの入力名 出力名
app_registration_app_id App registration ID
webapp_client_secret App registration password

構成ファイルを表示する

  1. Cloud Shell から Visual Studio Code を開きます。

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
    code .
    
  2. WORKSPACES ディレクトリを展開します。 6 つのサブフォルダー CONFIGURATIONDEPLOYERLANDSCAPELIBRARYSYSTEMBOMS があります。 これらの各フォルダーを展開して、リージョンのデプロイ構成ファイルを検索します。

  3. 適切なサブフォルダーにある Terraform 変数ファイルを見つけます。 たとえば、DEPLOYER Terraform 変数ファイルは次の例のようになります。

    # 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 変数ファイルの場所をメモしておいてください。

  4. 適切なサブフォルダーにある SAP ライブラリ用の Terraform 変数ファイルを見つけます。 たとえば、LIBRARY Terraform 変数ファイルは次の例のようになります。

    # 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 変数ファイルの場所をメモしておいてください。

重要

dns_label が Azure プライベート DNS のインスタンスと一致することを確認します。

コントロール プレーンをデプロイする

deploy_controlplane.sh スクリプトを使用して、デプロイ機能とライブラリをデプロイします。 これらのデプロイ機能部分は、選択されたオートメーション領域のコントロールプレーンを構成します。

デプロイは、インフラストラクチャのデプロイ、状態の更新、Terraform 状態ファイルのライブラリ ストレージ アカウントへのアップロードというサイクルを通して行われます。 これらの手順はすべて 1 つのデプロイ スクリプトにパッケージ化されています。 このスクリプトには、デプロイ機能とライブラリの構成ファイルの場所と、その他のパラメーターが必要です。

たとえば、前に説明したように 4 文字の名前 SECE を使用して、デプロイ場所として [西ヨーロッパ] を選択します。 サンプルのデプロイ機能構成ファイル 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 フォルダーにあります。

  1. サービス プリンシパルの環境変数を設定します。

    
    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
    
  2. 次のスクリプトを使って、デプロイ機能と 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 操作 planapply が実行されるのを待ちます。

    デプロイ機能のデプロイは約 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                       #
    #                                                                                       #
    #########################################################################################
    
  3. Azure portal に移動します。

    [リソース グループ] を選択します。 デプロイ機能のインフラストラクチャとライブラリの新しいリソースグループを探します。 たとえば、LAB-[region]-DEP05-INFRASTRUCTURELAB-[region]-SAP_LIBRARY が表示される場合があります。

    デプロイ機能と SAP ライブラリのリソース グループの内容は次のようになります。

    Screenshot that shows deployer resources.

    Screenshot that shows library resources.

    Terraform 状態ファイルは、現在、名前に tfstate が含まれているストレージ アカウント内にあります。 ストレージ アカウントには、デプロイ機能およびライブラリ状態ファイルを含む tfstate という名前のコンテナーがあります。 コントロール プレーンのデプロイが成功した後の tfstate コンテナーの内容は、ここに示すとおりです。

    Screenshot that shows the control plane Terraform state files.

一般的な問題と解決方法

トラブルシューティングのいくつかのヒントを次に示します。

  • デプロイ機能モジュールの作成で次のエラーが発生した場合は、スクリプトを実行するときに、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 に接続するためのすべてのシークレットは、デプロイ機能のリソース グループのキー コンテナーで利用できます。

デプロイ機能 VM に接続するには:

  1. Azure portal にサインインします。

  2. [キー コンテナー] を選択または検索します。

  3. [キー コンテナー] ページで、デプロイ機能キー コンテナーを見つけます。 名前は LAB[REGION]DEP05user で始まります。 必要に応じて、[リソース グループ] または [場所] でフィルター処理します。

  4. 左側のペインの [設定] セクションで、[シークレット] を選択します。

  5. sshkey を含むシークレットを検索して選択します。 LAB-[REGION]-DEP05-sshkey のようになります。

  6. シークレットのページで、現在のバージョンを選択します。 次に、シークレットの値をコピーします。

  7. プレーン テキスト エディターを開きます。 シークレット値をコピーします。

  8. SSH キーが保持されている場所にファイルを保存します。 たとえば、 C:\\Users\\<your-username>\\.sshを使用します。

  9. ファイルを保存します。 [保存の種類] を入力するように求められたら、SSH がオプションでない場合は [すべてのファイル] を選択します。 たとえば、 deployer.sshを使用します。

  10. Visual Studio Code など、任意の SSH クライアントを介してデプロイ機能 VM に接続します。 先ほどメモしたパブリック IP アドレスと、ダウンロードした SSH キーを使用します。 Visual Studio Code を使用してデプロイ機能に接続する方法については、Visual Studio Code を使用したデプロイ機能への接続に関するページを参照してください。 PuTTY を使用している場合は、PuTTYGen を使用して最初に SSH キー ファイルを変換します。

Note

既定のユーザー名は azureadm です。

SSH キーの保存に使用するファイルが、適切な形式 (つまり、復帰 (CR) 文字を含まない形式) を使ってファイルを保存できることを確認してください。 Visual Studio Code または Notepad++ を使用します。

デプロイ機能 VM への接続後、部品表 (BOM) を使用して SAP ソフトウェアをダウンロードできます。

パブリック IP を使用していないときにデプロイ機能の VM に接続する

パブリック IP 接続のないデプロイでは、インターネット経由の直接接続は許可されません。 このような場合は、Azure Bastion ジャンプ ボックスを使うか、Azure 仮想ネットワークに接続できるコンピューターから次の手順を実行することができます。

次の例では、Azure Bastion を使用します。

デプロイ機能に接続するには:

  1. Azure portal にサインインします。

  2. デプロイ機能 VM を含むリソース グループに移動します。

  3. Azure Bastion を使用して VM に接続します。

  4. 既定のユーザー名は azureadm です。

  5. [Azure Key Vault から SSH 秘密キー] を選択します。

  6. コントロール プレーンを含むサブスクリプションを選択します。

  7. デプロイ機能キー コンテナーを選択します。

  8. シークレットの一覧から、-sshkey で終わるシークレットを選択します。

  9. VM に接続します。

残りのタスクは、デプロイ機能で実行する必要があります。

コントロール プレーンをセキュリティで保護する

コントロール プレーンは、SAP オートメーション フレームワークで最も重要な部分です。 コントロール プレーンをセキュリティで保護することが重要です。 次の手順は、コントロール プレーンをセキュリティで保護するのに役立ちます。

コントロール プレーンの tfvars ファイルを更新して、プライベート エンドポイントを有効にし、ストレージ アカウントとキー コンテナーへのパブリック アクセスをブロックする必要があります。

  1. コントロール プレーンの構成ファイルをデプロイ機能 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
    
    
    

    このコマンドは、SAP ライブラリのストレージ アカウントからデプロイ機能 VM に、tfvars 構成ファイルをコピーします。

  2. コントロール プレーンの構成ファイルを次のように変更します。

    
        # 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 
    
    
  3. デプロイを再実行して、変更を適用します。 スクリプト内のストレージ アカウント名とキー コンテナー名を更新します。

    
    export ARM_SUBSCRIPTION_ID="<subscriptionId>"
    export       ARM_CLIENT_ID="<appId>"
    export   ARM_CLIENT_SECRET="<password>"
    export       ARM_TENANT_ID="<tenantId>"
    
    
  4. デプロイ機能と 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 

ワークロード ゾーン情報の収集

  1. テキスト エディターで次の情報を収集します。 この情報は、"コントロール プレーンのデプロイ" フェーズの最後に収集されました。

    1. ライブラリ リソース グループ内の Terraform 状態ファイル ストレージ アカウントの名前:

      • 前の例に続いて、リソース グループは LAB-SECE-SAP_LIBRARY です。
      • ストレージ アカウントの名前に labsecetfstate が含まれています。
    2. デプロイ機能リソース グループのキー コンテナーの名前:

      • 前の例に続いて、リソース グループは LAB-SECE-DEP05-INFRASTRUCTURE です。
      • キー コンテナーの名前に LABSECEDEP05user が含まれています。
    3. デプロイ機能 VM のパブリック IP アドレス。 デプロイ機能のリソース グループに移動し、デプロイ機能 VM を開いて、パブリック IP アドレスをコピーします。

  2. 次の情報を収集する必要があります。

    1. デプロイ機能状態ファイルの名前は、ライブラリ リソース グループの下にあります。
      • [ライブラリ リソース グループ]>[状態ストレージ アカウント]>[コンテナー]>tfstate を選択します。 デプロイ機能状態ファイルの名前をコピーします。
      • 前の例に続いて、BLOB の名前は LAB-SECE-DEP05-INFRASTRUCTURE.terraform.tfstate です。
  3. 必要な場合は、サービス プリンシパルを登録します。 このチュートリアルでは、このステップは必要ありません。

    初めて環境のインスタンスを作成する場合は、サービス プリンシパルを登録する必要があります。 このチュートリアルでは、コントロール プレーンは 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 に接続します。 これで、リポジトリのコピーができました。

ワークロード ゾーンをデプロイする

SAP ワークロード ゾーンをデプロイするには、 install_workloadzone スクリプトを使用します。

  1. デプロイ機能 VM で、Azure_SAP_Automated_Deployment フォルダーに移動します。

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/LAB-SECE-SAP04-INFRASTRUCTURE
    
  2. (省略可能) ワークロード ゾーン構成ファイルを開き、必要に応じてネットワークの論理名をネットワーク名と一致するように変更します。

  3. ワークロード ゾーンのデプロイを開始します。 ここで、前に収集した詳細が必要です。

    • デプロイ機能 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 portal に表示されます。

SAP システム インフラストラクチャのデプロイを準備する

次の手順のために、デプロイ機能 VM に接続します。 これで、リポジトリのコピーができました。

WORKSPACES/SYSTEM フォルダーに移動し、使用するサンプル構成ファイルをリポジトリからコピーします。

SAP システム インフラストラクチャをデプロイする

ワークロードゾーンの完成後、SAP システム インフラストラクチャ リソースをデプロイできます。 SAP システムによって、SAP アプリケーション用の VM とサポート コンポーネントが作成されます。 installer.sh スクリプトを使用して、SAP システムをデプロイします。

SAP システムによって、次のデプロイが行われます。

  • データベース層。データベース VM、そのディスク、Azure Standard Load Balancer のインスタンスがデプロイされます。 この層で HANA データベースまたは AnyDB データベースを実行できます。
  • SCS 層。お客様が定義した数の VM と、1 つの Azure Standard Load Balancer インスタンスがデプロイされます。
  • アプリケーション層。 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 portal に存在するようになったことを確認します。

部品表を使用して SAP ソフトウェアを取得する

自動化フレームワークには、SAP BOM を使用して 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 が含まれます。 この情報は、デプロイ機能のキー コンテナー シークレットを構成するために使用します。

  1. 次の手順のために、デプロイ機能 VM に接続します。 これで、リポジトリのコピーができました。

  2. SAP ユーザー アカウントのユーザー名を持つシークレットを追加します。 <vaultName> を配置機能のキー コンテナーの名前に置き換えます。 また、<sap-username> も SAP ユーザー名に置き換えます。

    export key_vault=<vaultName>
        sap_username=<sap-username>
    
    az keyvault secret set --name "S-Username" --vault-name $key_vault --value "${sap_username}";
    
  3. SAP ユーザー アカウントのパスワードを持つシークレットを追加します。 <vaultName> をデプロイ機能キー コンテナーの名前に置き換え、<sap-password> を SAP パスワードに置き換えます。

    Note

    sap_user_password を設定する場合は、単一引用符を使用することが重要です。 そうしない場合、パスワードに特殊文字を使用すると、予期しない結果が発生することがあります。

    sap_user_password='<sap-password>'
    
    az keyvault secret set --name "S-Password" --vault-name "${key_vault}" --value="${sap_user_password}";
    
  4. ダウンロード処理用の SAP パラメーター ファイルを構成します。 その後、Ansible プレイブックを使用して、SAP ソフトウェアをダウンロードします。 次のコマンドを実行します。

    cd ${HOME}/Azure_SAP_Automated_Deployment/WORKSPACES
    mkdir BOMS
    cd BOMS
    
    vi sap-parameters.yaml
    
  5. bom_base_name を BOM という名前で更新します。 <Deployer KeyVault Name> を、デプロイ機能リソース グループの Azure キー コンテナーの名前に置き換えます。

    ファイルは次の構成例のようになります。

    
    bom_base_name:                 S42022SPS00_v0001ms
    deployer_kv_name:              <vaultName>
    BOM_directory:                 ${HOME}/Azure_SAP_Automated_Deployment/samples/SAP
    
    
  6. Ansible プレイブックを実行してソフトウェアをダウンロードします。 プレイブックを実行する方法の 1 つとして、Downloader メニューを使用する方法があります。 download_menu スクリプトを実行します。

    ${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/download_menu.sh
    
  7. 実行するプレイブックを選択します。

    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.yamlL00_host.yaml のファイルがあることを確認します。

スタンドアロンの SAP S/4HANA システムの場合、順番に実行するプレイブックが 8 つあります。 プレイブックを実行する方法の 1 つは、構成メニューを使用することです。

configuration_menu スクリプトを実行します。

${HOME}/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/configuration_menu.sh

Diagram that shows the SAP Deployment Automation Ansible configuration menu.

実行するプレイブックを選びます。

プレイブック: オペレーティング システムの基本構成

このプレイブックは、すべてのマシンでオペレーティング システムの一般的な構成のセットアップを実行します。これには、ソフトウェア リポジトリ、パッケージ、サービスの構成が含まれます。

プレイブックは、構成メニューを使って、またはコマンド ラインから実行できます。


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 ディスパッチャーのインストール

このプレイブックは、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 インフラストラクチャを削除する

SYSTEM フォルダー内の LAB-SECE-SAP01-L00 サブフォルダーに移動します。 その後、次のコマンドを実行します。

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 ワークロード ゾーンを削除する

LANDSCAPE フォルダー内の LAB-XXXX-SAP01-INFRASTRUCTURE サブフォルダーに移動します。 次に、次のコマンドを実行します。


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

すべてのリソースがクリーンアップされたことを確認します。

次のステップ