コントロール プレーンを構成する

SAP Deployment Automation Framework のコントロール プレーンは、次のコンポーネントで構成されます:

  • デプロイ機能
  • SAP ライブラリ

コントロール プレーンを示す図。

Deployer

デプロイ元 は、 SAP Deployment Automation Frameworkの実行エンジンです。 これは、Terraform および Ansible コマンドの実行に使用される構成済みの仮想マシン (VM) です。 Azure DevOps を使用する場合、デプロイ元はセルフホステッド エージェントです。

デプロイ元の構成は、Terraform tfvars 変数ファイルで実行されます。

デプロイ機能に既存のリソース グループを使用する場合、デプロイ機能の tfvars ファイルで resource_group_arm_id パラメーターを使用し、リソース グループに Azure リソース ID を指定します。 パラメーターが定義されていない場合、リソース グループは既定の名前付け規則を使用して作成されます。 resource_group_name パラメーターを使用して名前を使用できます。

Terraform パラメーター

次の表に、Terraform パラメータを示します。 デプロイ スクリプトを使用していない場合は、これらのパラメータを手動で入力する必要があります。

Variable 説明 Type
tfstate_resource_id Terraform 状態ファイルを含む SAP ライブラリ内のストレージ アカウントの Azure リソース識別子 必須

環境パラメーター

次の表に、リソースの名前付けを定義するパラメーターを示します。

変数 説明 Type Notes
environment コントロール プレーンの識別子 (最大 5 文字)。 必須 たとえば、運用環境の PROD や、非運用環境の NP などです。
location デプロイする Azure リージョン。 必須 小文字を使用します。
codename リソースに名前を付けるための追加コンポーネント。 省略可能
name_override_file オーバーライド ファイルを名づける。 オプション カスタムの名前付けに関するページを参照してください。
place_delete_lock_on_resources キー リソースに削除ロックを設定します。 オプション

リソース グループ

次の表に、リソース グループを定義するパラメーターを示します。

変数 説明 Type
resourcegroup_name 作成するリソース グループの名前 オプション
resourcegroup_arm_id 既存のリソース グループの Azure リソース識別子 オプション
resourcegroup_tags リソース グループに関連付けるタグ オプション

ネットワーク パラメーター

オートメーションフレームワークでは、仮想ネットワークとサブネットの作成 (グリーン フィールド) および既存の仮想ネットワークと既存のサブネットの使用 (ブラウン フィールド) の両方をサポートし、グリーン フィールドとブラウン フィールドを組み合わせることもできます:

  • グリーン フィールド シナリオ: 仮想ネットワーク アドレス空間とサブネット アドレス プレフィックスを指定する必要があります。
  • ブラウン フィールド シナリオ: 仮想ネットワークとサブネットの Azure リソース識別子を指定する必要があります。

仮想ネットワーク アドレス空間の推奨 CIDR は /27 です。これにより、32 個の IP アドレス用の領域を確保できます。 CIDR 値 /28 の場合、使用できる IP アドレスは 16 個のみです。 Azure Firewall を含める場合は、CIDR 値 /25 を使用します。Azure Firewall では /26 の範囲が必要であるためです。

管理サブネットに推奨される CIDR 値は /28 で、16 個の IP アドレスを許可します。 ファイアウォール サブネットに推奨される CIDR 値は /26 で、64 個の IP アドレスを許可します。

次の表に、ネットワーク パラメーターを示します。

変数 説明 Type Notes
management_network_name デプロイ元がデプロイ先となる仮想ネットワークの名前 オプション グリーン フィールドのデプロイ用
management_network_logical_name ネットワークの論理名 (DEV-WEEU-MGMT01-INFRASTRUCTURE) 必須
management_network_arm_id 仮想ネットワークの Azure リソース識別子 オプション ブラウン フィールドのデプロイ用
management_network_address_space 仮想ネットワークのアドレス範囲 Mandatory グリーン フィールドのデプロイ用
management_subnet_name サブネットの名前 オプション
management_subnet_address_prefix サブネットのアドレス範囲 Mandatory グリーン フィールドのデプロイ用
management_subnet_arm_id サブネットの Azure リソース識別子 Mandatory ブラウン フィールドのデプロイ用
management_subnet_nsg_name ネットワーク セキュリティ グループの名前 オプション
management_subnet_nsg_arm_id ネットワーク セキュリティ グループの Azure リソース識別子 Mandatory ブラウン フィールドのデプロイ用
management_subnet_nsg_allowed_ips Azure Firewall に追加する許可された IP アドレスの範囲 オプション
management_firewall_subnet_arm_id Azure Firewall サブネットの Azure リソース識別子 Mandatory ブラウン フィールドのデプロイ用
management_firewall_subnet_address_prefix サブネットのアドレス範囲 Mandatory グリーン フィールドのデプロイ用
management_bastion_subnet_arm_id Azure Bastion サブネットの Azure リソース識別子 Mandatory ブラウン フィールドのデプロイ用
management_bastion_subnet_address_prefix サブネットのアドレス範囲 Mandatory グリーン フィールドのデプロイ用
webapp_subnet_arm_id Web アプリ サブネットの Azure リソース識別子 Mandatory ブラウン フィールドのデプロイ用
webapp_subnet_address_prefix サブネットのアドレス範囲 Mandatory グリーン フィールドのデプロイ用
use_private_endpoint プライベート エンドポイントを使用します。 オプション
use_service_endpoint サブネットにサービス エンドポイントを使用します。 省略可能

Note

Web アプリに既存のサブネットを使用する場合、デプロイするリソース グループと同じリージョン内のサブネットを空にし、Microsoft.Web/serverFarms に委任する必要があります。

デプロイ元仮想マシンのパラメータ

次の表に、デプロイ元 VM に関連するパラメータを示します。

Variable 説明 Type
deployer_size 使用する VM SKU を定義します。既定値: Standard_D4ds_v4 オプション
deployer_count デプロイ元の数を定義します オプション
deployer_image 使用する VM イメージを定義します。既定値: Ubuntu 22.04 省略可能
plan VM イメージに関連付けられているプランを定義します 省略可能
deployer_disk_type ディスクの種類を定義します。既定値: Premium_LRS 省略可能
deployer_use_DHCP Azure サブネットで提供される IP アドレスを使用する必要があるかどうかをコントロールします (動的) 本当 オプション
deployer_private_ip_address 使用するプライベート IP アドレスを定義します オプション
deployer_enable_public_ip デプロイ機能にパブリック IP を持たせるかどうかを定義します 省略可能
auto_configure_deployer デプロイ元が必要なソフトウェア (Terraform と Ansible) で構成されているかどうかを定義します オプション
add_system_assigned_identity デプロイ元にシステム ID が割り当てられているかどうかを定義します オプション

仮想マシン イメージは、次の構造を使用して定義します:

xxx_vm_image  = {
  os_type         = ""
  source_image_id = ""
  publisher       = "Canonical"
  offer           = "0001-com-ubuntu-server-jammy"
  sku             = "22_04-lts"
  version         = "latest"
  type            = "marketplace"
}

Note

型は marketplace/marketplace_with_plan/customであり得ます。 型 marketplace_with_planのイメージを使用するには、対象のイメージがサブスクリプションで少なくとも 1 回使用されている必要があります。 最初の使用では、ユーザーにライセンス条項への同意を求めるメッセージダイアログが表示され、オートメーションによって承認される手段はありません。

認証パラメーター

このセクションでは、VM 認証の定義に使用されるパラメータを定義します。

Variable 説明 Type
deployer_vm_authentication_type デプロイ元のデフォルトの認証を定義します オプション
deployer_authentication_username 管理者アカウントの名前 オプション
deployer_authentication_password 管理者パスワード オプション
deployer_authentication_path_to_public_key 認証に使用される公開キーへのパス オプション
deployer_authentication_path_to_private_key 認証に使用される秘密キーへのパス 省略可能
use_spn 定義されている場合、展開はサービス プリンシパルを使用して実行されます。それ以外の場合は MSI 省略可能

Key Vault パラメーター

このセクションでは、Azure Key Vault 情報の定義に使用されるパラメータを定義します。

Variable 説明 Type
user_keyvault_id ユーザー キー コンテナーの Azure リソース識別子。 オプション
spn_keyvault_id デプロイ資格情報を含むキー コンテナーの Azure リソース識別子。 オプション
deployer_private_key_secret_name デプロイ元の秘密キーのキー コンテナーシークレット名。 オプション
deployer_public_key_secret_name デプロイ元の公開キーのキー コンテナーシークレット名。 オプション
deployer_username_secret_name デプロイ元のユーザー名のキー コンテナーシークレット名。 オプション
deployer_password_secret_name デプロイ元のパスワードのキー コンテナー シークレット名。 オプション
additional_users_to_add_to_keyvault_policies デプロイ キー コンテナーのアクセス ポリシーに追加するユーザー オブジェクト ID のリスト。 オプション
set_secret_expiry キー コンテナーの シークレットの有効期限を 12 か月に設定します。 省略可能
soft_delete_retention_days 論理的な削除期間で項目を保持する日数。 省略可能
deployer_assign_subscription_permissions サブスクリプションのアクセス許可の割り当てを制御します。 オプション

DNS サポート

変数 説明 Type
dns_label プライベート DNS ゾーンの DNS 名。 オプション
use_custom_dns_a_registration AZURE ネイティブの場合は false に設定された、DNS 用の外部システムを使用します。 オプション
management_dns_subscription_id プライベート DNS ゾーンを含むサブスクリプションのサブスクリプション ID。 オプション
management_dns_resourcegroup_name プライベート DNS ゾーンを含むリソース グループ。 オプション

その他のパラメーター

変数 説明 Type Notes
firewall_deployment Azure ファイアウォールをデプロイするかどうかをコントロールするブール値フラグ。 オプション
bastion_deployment Azure Bastion ホストをデプロイするかどうかをコントロールするブール値フラグ。 オプション
bastion_sku デプロイする Azure Bastion ホストの SKU (Basic/Standard)。 オプション
enable_purge_control_for_keyvaults キー コンテナーで消去コントロールが有効かどうかをコントロールするブール値フラグ。 オプション テストデプロイにのみ使用します。
enable_firewall_for_keyvaults_and_storage 選択したサブネットへのアクセスを制限します。 省略可能
Agent_IP エージェントの IP アドレス。 省略可能
add_Agent_IP エージェント IP がキー コンテナーとストレージ アカウントのファイアウォールに追加されるかどうかを制御します 省略可能

Web アプリのパラメーター

変数 説明 Type Notes
use_webapp Web アプリをデプロイする必要があるかどうかを示すブール値。 省略可能
app_service_SKU_name App Service プランの SKU。 省略可能
app_registration_app_id Web アプリに使用するアプリ登録 ID。 省略可能
webapp_client_secret App Service プランの SKU。 省略可能 Key Vault に永続化されます

デプロイ機能のサンプル パラメーター ファイル (必須パラメーターのみ)

# 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"

# management_bastion_subnet_address_prefix is a mandatory parameter if bastion is deployed and if the subnets are not defined in the workload or if existing subnets are not used
management_bastion_subnet_address_prefix = "10.10.20.128/26"

deployer_enable_public_ip=false

firewall_deployment=true

bastion_deployment=true

SAP ライブラリ

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

SAP ライブラリの構成は、Terraform tfvars 変数ファイルで実行されます。

デプロイ機能に既存のリソース グループを使用する場合、SAP ライブラリの tfvars ファイルで resource_group_arm_id パラメーターを使用し、リソース グループに Azure リソース ID を指定します。 パラメーターが定義されていない場合、リソース グループは既定の名前付け規則を使用して作成されます。 resource_group_name パラメーターを使用して名前を使用できます。

Terraform パラメーター

次の表に、Terraform パラメータを示します。 デプロイ スクリプトまたは Azure Pipelines を使用していない場合は、これらのパラメータを手動で入力する必要があります。

Variable 説明 Type Notes
deployer_tfstate_key デプロイ元の状態ファイル名 必須

環境パラメーター

次の表に、リソースの名前付けを定義するパラメーターを示します。

変数 説明 Type Notes
environment コントロール プレーンの識別子 (最大 5 文字) Mandatory たとえば、運用環境の PROD や、非運用環境の NP などです。
location デプロイする Azure リージョン 必須 小文字を使用します。
name_override_file 名前オーバーライド ファイル オプション カスタムの名前付けに関するページを参照してください。

リソース グループ

次の表に、リソース グループを定義するパラメーターを示します。

変数 説明 Type
resourcegroup_name 作成するリソース グループの名前 オプション
resourcegroup_arm_id 既存のリソース グループの Azure リソース識別子 オプション
resourcegroup_tags リソース グループに関連付けるタグ オプション

SAP インストール メディア ストレージ アカウント

変数 説明 Type
library_sapmedia_arm_id Azure リソース識別子 オプション

Terraform リモート状態ストレージ アカウント

変数 説明 Type
library_terraform_state_arm_id Azure リソース識別子 オプション

DNS サポート

変数 説明 Type
dns_label プライベート DNS ゾーンの DNS 名。 オプション
use_custom_dns_a_registration 既存のプライベート DNS ゾーンを使用します。 オプション
management_dns_subscription_id プライベート DNS ゾーンを含むサブスクリプションのサブスクリプション ID。 オプション
management_dns_resourcegroup_name プライベート DNS ゾーンを含むリソース グループ。 オプション

追加のパラメーター

変数 説明 Type
use_private_endpoint プライベート エンドポイントを使用します。 オプション
use_service_endpoint サブネットにサービス エンドポイントを使用します。 オプション
enable_firewall_for_keyvaults_and_storage 選択したサブネットへのアクセスを制限します。 オプション
subnets_to_add_to_firewall_for_keyvaults_and_storage キー コンテナーとストレージ アカウントへのアクセスを必要とするサブネット。 オプション

SAP ライブラリのパラメータ ファイルの例 (必須パラメーターのみ)

# 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"

次のステップ