コントロール プレーンを構成する
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"