SAP デプロイ自動化フレームワークのエンタープライズ スケーリング - ハンズオン ラボ

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

このラボでは次の作業を行います。

  • コントロール プレーンのデプロイ (デプロイ機能インフラストラクチャおよびライブラリ)
  • ワークロード ゾーンのデプロイ (ランドスケープ、システム)
  • BOM のダウンロード/アップロード
  • 標準および SAP 固有の OS 設定を構成する
  • HANA DB をインストールする
  • SCS サーバーをインストールする
  • HANA DB を読み込む
  • プライマリ アプリケーション サーバーをインストールする

オートメーション フレームワークを使用した Azure への SAP のデプロイには、主に 3 つの手順があります。

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

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

  3. システムのデプロイ。 この手順には、SAP システムのインフラストラクチャが含まれます。

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

環境の概要

SAP on Azure デプロイ オートメーション フレームワークには、次の 2 つの主要なコンポーネントがあります。

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

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

DevOps チュートリアル インフラストラクチャの設計

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

SAP デプロイ オートメーション フレームワーク環境を示す図。

管理ゾーン

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

ダイアグラム コントロール プレーン。

デプロイ機能は、SAP オートメーション フレームワークの実行エンジンです。 この事前構成済みの仮想マシン (VM) は、Terraform コマンドと Ansible コマンドの実行に使用されます。

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

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

ワークロード ゾーン

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

ワークロード ゾーン。

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

システムのデプロイは、Web、アプリ、データベースのレベルなどを含む、SAP アプリケーションを実行する仮想マシンで構成されます。 SAP システムの構成に関するページ参照してください

ハンズオン ラボ

前提条件

SAP デプロイ オートメーション フレームワーク リポジトリは、GitHub で利用できます。

デプロイ機能に接続するには SSH クライアントが必要です。 使いやすいと思う SSH クライアントを使用します。

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

Microsoft Azure Subscription に、選択されたリージョンの DdSV4 & EdsV4 ファミリ SKU 用の十分なコア クォータがあることを確認してください。 VM ファミリで使用可能なコア数は、それぞれ約 50 で十分です。

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

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

Cloud Shell の設定

  1. Azure Cloud Shell に移動します

  2. Azure アカウントにサインインしてください。

    az login
    

    Note

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

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

    az account set --subscription <Subscription ID>
    

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

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

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

    mkdir -p ~/Azure_SAP_Automated_Deployment
    
    cd ~/Azure_SAP_Automated_Deployment
    
    git clone https://github.com/Azure/sap-automation.git
    
  6. 必要に応じて、Cloud Shell のインスタンスで使用できる Terraform と Azure CLI のバージョンを確認します。

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

    オートメーション フレームワークを実行するには、次のバージョンに更新します。

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

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

Note

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

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

    export         subscriptionId="<subscriptionId>"
    export control_plane_env_code="MGMT"
    
    az ad sp create-for-rbac --role="Contributor"           \
      --scopes="/subscriptions/${subscriptionId}"           \
      --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/{subscriptionId}/resourceGroups/{resourceGroupName}
    

Note

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

構成ファイルを表示する

重要

GitHub リポジトリは常に読み取り専用として扱います。 WORKSPACES フォルダーのコピーで作業してし、 構成を変更します。 この方法では、リポジトリが変更された場合に、構成が安定した状態で維持されます。

  1. ローカル ワークスペース ディレクトリにサンプル構成をコピーします。

    cd ~/Azure_SAP_Automated_Deployment
    
    cp -Rp ./sap-automation/training-materials/WORKSPACES .
    
  2. Cloud Shell から VS Code を開く

    code .
    

    Note

    Safari ブラウザーでは機能しません。

    [ワークスペース] ディレクトリを展開します。 サブフォルダーには、DEPLOYERLANDSCAPELIBRARYSYSTEMBOMSの 5 つがあります。 これらの各フォルダーを展開して、リージョンのデプロイ構成ファイルを検索します。

    使用している Azure リージョンに対応する、適切な 4 文字のコードを見つけます。

    リージョン名 地域コード
    オーストラリア東部 AUEA
    カナダ中部 CACE
    米国中部 CEUS
    米国東部 EAUS
    北ヨーロッパ NOEU
    南アフリカ北部 SANO
    東南アジア SOEA
    英国南部 UKSO
    米国西部 2 WUS2

    適切なサブフォルダーにある Terraform 変数ファイルを見つけます。 たとえば、デプロイ機能 terraform 変数ファイルは次のようになります。

    # The environment value is a mandatory field, it is used for partitioning the environments, for example, PROD and NP.
    environment="MGMT"
    # The location/region value is a mandatory field, it is used to control where the resources are deployed
    location="westeurope"
    
    # 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"
    
    deployer_enable_public_ip=true
    firewall_deployment=true
    

    今後デプロイ時に編集するために、Terraform 変数ファイルの場所をメモしておいてください。

コントロールプレーンのデプロイ

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

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

たとえば、前に説明したように 4 文字の名前 NOEU を使用して、デプロイ場所として [北ヨーロッパ] を選択します。 サンプルのデプロイ機能構成ファイル MGMT-NOEU-DEP00-INFRASTRUCTURE.tfvars は、~/Azure_SAP_Automated_Deployment/WORKSPACES/DEPLOYER/MGMT-NOEU-DEP00-INFRASTRUCTURE フォルダーにあります。

サンプルの SAP ライブラリ構成ファイル MGMT-NOEU-SAP_LIBRARY.tfvars は、~/Azure_SAP_Automated_Deployment/WORKSPACES/LIBRARY/MGMT-NOEU-SAP_LIBRARY フォルダーにあります。

  1. デプロイ機能と SAP ライブラリを作成し、サービス プリンシパルの詳細をデプロイ キー コンテナーに追加します。

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES
    
    export subscriptionId="<subscriptionId>"
    export         spn_id="<appId>"
    export     spn_secret="<password>"
    export      tenant_id="<tenantId>"
    export       env_code="MGMT"
    export    region_code="<region_code>"
    
    export DEPLOYMENT_REPO_PATH="${HOME}/Azure_SAP_Automated_Deployment/sap-automation"
    export ARM_SUBSCRIPTION_ID="${subscriptionId}"
    
    ${DEPLOYMENT_REPO_PATH}/deploy/scripts/prepare_region.sh                                                                                       \
        --deployer_parameter_file DEPLOYER/${env_code}-${region_code}-DEP00-INFRASTRUCTURE/${env_code}-${region_code}-DEP00-INFRASTRUCTURE.tfvars  \
        --library_parameter_file LIBRARY/${env_code}-${region_code}-SAP_LIBRARY/${env_code}-${region_code}-SAP_LIBRARY.tfvars                      \
        --subscription "${subscriptionId}"                                                                                                         \
        --spn_id "${spn_id}"                                                                                                                       \
        --spn_secret "${spn_secret}"                                                                                                               \
        --tenant_id "${tenant_id}"                                                                                                                 \
        --auto-approve
    

    Note

    認証の問題が発生した場合は、az logout を実行してログアウトし、token-cache をクリアしてから、az login を実行して再認証します。

    オートメーション フレームワークによって Terraform 操作 planapply が実行されるのを待ちます。

    デプロイ機能のデプロイは約 15 分から 20 分間実行される可能性があります。

    重要

    以降の手順で注意する必要がある値がいくつかあります。 出力でこのテキスト ブロックを検索してください。

    #########################################################################################
    #                                                                                       #
    #  Please save these values:                                                            #
    #     - Key Vault: MGMTNOEUDEP00user39B                                                 #
    #     - Deployer IP: x.x.x.x                                                            #
    #     - Storage Account: mgmtnoeutfstate53e                                             #
    #                                                                                       #
    #########################################################################################
    
  2. Azure ポータルにアクセスします。

    [リソース グループ] を選択します。 デプロイ機能のインフラストラクチャとライブラリの新しいリソースグループを探します。 たとえば、MGMT-[region]-DEP00-INFRASTRUCTUREMGMT-[region]-SAP_LIBRARYす。

    デプロイ機能と SAP ライブラリのリソースグループの内容を以下に示します。

    デプロイ機能リソース

    ライブラリ リソース

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

    コントロールプレーンの tfstate ファイル

一般的な問題と解決方法

  • デプロイ機能モジュールの作成で次のエラーが発生した場合は、スクリプトを実行するときに、ワークスペース ディレクトリにいることを確認してください。

    Incorrect parameter file.
    The file must contain the environment attribute!!
    
  • 次のエラーは一時的なエラーです。 同じコマンド prepare_region.sh を再実行します。

    Error: file provisioner error
    ..
    timeout - last error: dial tcp
    
  • スクリプト prepare_region.sh の実行直後に認証の問題が発生する場合は、次のように実行します。

    az logout
    
    az login
    

デプロイ機能 VM へ接続する

コントロール プレーンがデプロイされた後、Terraform の状態はリモート バックエンド "azurerm" を使用して格納されます 。 デプロイ機能 VM に接続するためのすべてのシークレットは、デプロイ機能のリソース グループのキー コンテナーで利用できます。

デプロイ機能 VM に接続できることを確認します。

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

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

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

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

  5. sshkey を含むシークレットを検索して選択します。 MGMT-[REGION]-DEP00-sshkey のようなものであるはずです

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

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

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

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

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

Note

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

  • デプロイ機能 VM に接続すると、部品表 (BOM) を使用して SAP ソフトウェアをダウンロードできるようになります。

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

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

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

次の手順に従ってデプロイ機能に接続します。

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

  2. デプロイ機能の仮想マシンを含むリソース グループに移動します。

  3. Azure Bastion を使用して仮想マシンに接続します。

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

  5. Azure Key Vault から SSH 秘密キーを選択する

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

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

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

  9. 仮想マシンへの接続

次のスクリプトを実行して、デプロイ機能を構成します。

mkdir -p ~/Azure_SAP_Automated_Deployment

cd ~/Azure_SAP_Automated_Deployment

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

cd sap-automation/deploy/scripts

./configure_deployer.sh

スクリプトによって Terraform と Ansible がインストールされ、デプロイ機能が構成されます。

重要

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

部品表 (BOM) を使用して 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"

この例の構成では、リソース グループは MGMT-NOEU-DEP00-INFRASTRUCTURE です。 デプロイ機能キー コンテナー名には、MGMTNOEUDEP00user が含まれます。 この情報は、デプロイ機能のキー コンテナー シークレットを構成するために使用します。

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

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

    export key_vault=<vaultID>
    sap_username=<sap-username>
    
    az keyvault secret set --name "S-Username" --vault-name $key_vault --value "${sap_username}";
    
  3. SAP ユーザー アカウントのパスワードを持つシークレットを追加します。 <vaultID> をデプロイ機能キー コンテナーの名前に、<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. S/4 1909 SPS03 BOM のバージョン番号がアクティブなバージョンであることを確認します。

    結果を記録します。

    
    ls -d ${DEPLOYMENT_REPO_PATH}/deploy/ansible/BOM-catalog/S41909SPS03* | xargs basename
    
    
  5. ダウンロード処理用の SAP パラメーター ファイルを構成します。 次に、Ansible プレイブックを使用して、SAP ソフトウェアをダウンロードします。 次のコマンドを実行します。

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES
    cp -Rp ../sap-automation/training-materials/WORKSPACES/BOMS .
    cd BOMS
    
    vi sap-parameters.yaml
    
  6. bom_base_name を、前に BOM によって識別された名前で更新します。

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

    
    bom_base_name:                 S41909SPS03_v0010ms
    
    
  7. <Deployer KeyVault Name> を、デプロイ機能リソース グループの Azure キー コンテナーの名前に置き換えます

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

    
    bom_base_name:                 S41909SPS03_v0010ms
    kv_name:                       <Deployer KeyVault Name>
    
    
  8. check_storage_account があり、false に設定されていることを確認します。 この値によって、SAP からファイルをダウンロードする前に、ファイルが SAP ライブラリで確認されるかどうかが制御されます。

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

    
    bom_base_name:                 S41909SPS03_v0010
    kv_name:                       <Deployer KeyVault Name>
    check_storage_account:         false
    
    
  9. Ansible プレイブックを実行します。 プレイブックを実行する方法の 1 つとして、Downloader メニューを使用する方法があります。 download_menu スクリプトを実行します。

    ~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/download_menu.sh
    
  10. 実行するプレイブックを選択します。

    1) BoM Downloader
    3) Quit
    Please select playbook:
    

    プレイブック 1) BOM Downloader を選択して、BOM ファイルに記載されている SAP ソフトウェアをストレージ アカウントにダウンロードします。 sapbits コンテナーにインストール用のすべてのメディアが備わっていることを確認します。

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

  1. テキスト エディターで次の情報を収集します。

    Note

    コントロール プレーンのデプロイ フェーズの終わりに、以下の情報が収集されます。

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

      • 上記の例では、リソース グループは MGMT-NOEU-SAP_LIBRARY になります。
      • ストレージ アカウントの名前には、 mgmtnoeutfstate が含まれます。
    2. デプロイ機能リソース グループのキーコンテナーの名前。

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

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

    1. デプロイ機能状態ファイルの名前は、[ライブラリ リソース グループ] にあります
      • ライブラリ リソース グループ -> 状態ストレージ アカウント -> コンテナー -> tfstate -> デプロイ機能状態ファイルの名前をコピーします。
      • 上の例から、BLOB の名前は MGMT-NOEU-DEP00-INFRASTRUCTURE.terraform.tfstate になります
  3. 必要に応じて、SPN を登録します

    重要

    環境を初めてインスタンス化する場合は、SPN を登録する必要があります。 このチュートリアルでは、コントロール プレーンは MGMT 環境に、ワークロード ゾーンは DEV 内にあるため、現時点では SPN を DEV に登録する必要があります。

    export subscriptionId="<subscriptionId>"
    export         spn_id="<appID>"
    export     spn_secret="<password>"
    export      tenant_id="<tenant>"
    export      key_vault="<vaultID>"
    export       env_code="DEV"
    export    region_code="<region_code>"
    
    ${DEPLOYMENT_REPO_PATH}/deploy/scripts/set_secrets.sh     \
        --environment "${env_code}"                           \
        --region "${region_code}"                             \
        --vault "${key_vault}"                                \
        --subscription "${subscriptionId}"                    \
        --spn_id "${spn_id}"                                  \
        --spn_secret "${spn_secret}"                          \
        --tenant_id "${tenant_id}"
    

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

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

  2. sap-automation フォルダーに移動し、必要に応じてリポジトリを更新します。

    cd ~/Azure_SAP_Automated_Deployment/sap-automation/
    
    git pull
    
  3. WORKSPACES/LANDSCAPE フォルダーに移動し、使用するサンプル構成ファイルをリポジトリからコピーします。

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE
    
    cp -Rp ../../sap-automation/training-materials/WORKSPACES/LANDSCAPE/DEV-[REGION]-SAP01-INFRASTRUCTURE .
    

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

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

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

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/LANDSCAPE/DEV-XXXX-SAP01-INFRASTRUCTURE
    

    例の領域 'northeurope' から、フォルダーは次のようになります。

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

  3. ワークロード ゾーンのデプロイを開始します。

    Note

    ここでは、前の手順で収集した詳細情報が必要になります。 詳細情報を以下に示します。

    • デプロイ機能 tfstate ファイルの名前 (tfstate コンテナーにあります)
    • tfstate ストレージ アカウントの名前
    • デプロイ機能キー コンテナーの名前
    
    export tfstate_storage_account="<storageaccountName>"
    export       deployer_env_code="MGMT"
    export            sap_env_code="DEV"
    export             region_code="<region_code>"
    export               key_vault="<vaultID>"
    
    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}"                                                   \
        --auto-approve
    

    ワークロード ゾーンのデプロイが自動的に開始します。

    デプロイが完了するまで待ちます。 新しいリソース グループが Azure portal に表示されます。

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

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

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

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM
    
    cp -Rp ../../sap-automation/training-materials/WORKSPACES/SYSTEM/DEV-[REGION]-SAP01-X00 .
    

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

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

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

  • データベース層。データベース VM、そのディスク、Azure Standard Load Balancer がデプロイされます。 この層で HANA データベースまたは AnyDB データベースを実行できます。
  • SCS 層。顧客が定義した数の VM と Azure Standard Load Balancer がデプロイされます。
  • アプリケーション層。 VM とそのディスクがデプロイされます。
  • Web ディスパッチャー層。
  1. SAP システムをデプロイします。

    
    export sap_env_code="DEV"
    export  region_code="<region_code>"
    
    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/${sap_env_code}-${region_code}-SAP01-X00
    
    ${DEPLOYMENT_REPO_PATH}/deploy/scripts/installer.sh                  \
      --parameterfile "${sap_env_code}-${region_code}-SAP01-X00.tfvars"  \
      --type sap_system                                                  \
      --auto-approve
    

    northeurope の例のデプロイ コマンドは次のようになります。

    cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/DEV-NOEU-SAP01-X00
    
    ${DEPLOYMENT_REPO_PATH}/deploy/scripts/installer.sh  \
      --parameterfile DEV-NOEU-SAP01-X00.tfvars          \
      --type sap_system                                  \
      --auto-approve
    

    システム リソース グループが Azure portal に存在するようになったことを確認します。

SAP アプリケーションのインストール

SAP アプリケーションのインストールは、Ansible プレイブックを通じて行われます。

[システムのデプロイ] フォルダーに移動します。

cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/DEV-NOEU-SAP01-X00/

現在のフォルダーに sap-parameters.yamlSID_host.yaml のファイルがあることを確認します。

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

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

~/Azure_SAP_Automated_Deployment/sap-automation/deploy/ansible/configuration_menu.sh

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

プレイブック: OS 構成

このプレイブックによって、すべてのマシンで汎用 OS 構成のセットアップが実行されます。これには、ソフトウェア リポジトリ、パッケージ、サービスなどの構成が含まれます。

プレイブック: SAP 固有の OS 構成

このプレイブックによって、すべてのマシンで SAP OS 構成のセットアップが実行されます。 この手順には、ボリューム グループとファイル システムの作成、ソフトウェア リポジトリ、パッケージ、サービスの構成が含まれます。

プレイブック: BOM 処理

このプレイブックによって、SCS 仮想マシンに SAP ソフトウェアがダウンロードされます。

プレイブック: HANA DB のインストール

このプレイブックでは、HANA データベース インスタンスをインストールします。

プレイブック: SCS のインストール

このプレイブックでは、SAP セントラル サービスをインストールします。 高可用性が構成されている場合は、プレイブックでも、SAP ERS インスタンスをインストールして、Pacemaker を構成します。

プレイブック: DB の読み込み

このプレイブックでは、プライマリ アプリケーション サーバーからデータベースの読み込みタスクを呼び出します。

プレイブック: PAS のインストール

このプレイブックでは、プライマリ アプリケーション サーバーをインストールします。

プレイブック: アプリのインストール

このプレイブックでは、アプリケーション サーバーをインストールします。

これで、スタンドアロンの HANA システムがデプロイおよび構成されました。高可用性 SAP HANA データベースを構成する必要がある場合は、HANA HA プレイブックを実行します

プレイブック: Hana HA プレイブック

このプレイブックでは、HANA データベースの HANA システム レプリケーション (HSR) と Pacemaker を構成します。

インストールのクリーンアップ

Note

完了後に、このチュートリアルから SAP インストールをクリーンアップすることが重要です。 そうしないと、リソースに関連するコストが引き続き発生します。

デプロイした SAP インフラストラクチャ全体を削除するには、次のことを行う必要があります。

  • SAP システム インフラストラクチャ リソースの削除
  • すべてのワークロード ゾーンを削除する (横)
  • コントロール プレーンを削除する

デプロイ機能 VM からの SAP インフラストラクチャ リソースとワークロードゾーンの削除を実行します。 Cloud Shell からコントロール プレーンの削除を実行します。

開始する前に、Azure アカウントにサインインします。 次に、正しいサブスクリプションを使用していることを確認します。

SAP インフラストラクチャの削除

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

export sap_env_code="DEV"
export  region_code="NOEU"

cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/SYSTEM/${sap_env_code}-${region_code}-SAP01-X00

${DEPLOYMENT_REPO_PATH}/deploy/scripts/remover.sh                   \
  --parameterfile "${sap_env_code}-${region_code}-SAP01-X00.tfvars" \
  --type sap_system

SAP ワークロードゾーンの削除

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


export sap_env_code="DEV"
export  region_code="NOEU"

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

${DEPLOYMENT_REPO_PATH}/deploy/scripts/remover.sh                                \
      --parameterfile ${sap_env_code}-${region_code}-SAP01-INFRASTRUCTURE.tfvars \
      --type sap_landscape

コントロール プレーンの削除

Cloud Shell にサインインします。

WORKSPACES フォルダーに移動します。

cd ~/Azure_SAP_Automated_Deployment/WORKSPACES/

次の 2 つの環境変数をエクスポートします。

export DEPLOYMENT_REPO_PATH="~/Azure_SAP_Automated_Deployment/sap-automation"
export ARM_SUBSCRIPTION_ID="<subscriptionId>"

次のコマンドを実行します。

export region_code="NOEU"

${DEPLOYMENT_REPO_PATH}/deploy/scripts/remove_region.sh                                                                          \
    --deployer_parameter_file DEPLOYER/MGMT-${region_code}-DEP00-INFRASTRUCTURE/MGMT-${region_code}-DEP00-INFRASTRUCTURE.tfvars  \
    --library_parameter_file LIBRARY/MGMT-${region_code}-SAP_LIBRARY/MGMT-${region_code}-SAP_LIBRARY.tfvars

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

次のステップ