SAP Deployment Automation Framework のコントロール プレーンは、次のコンポーネントで構成されます。
- デプロイヤー
- SAP ライブラリ
デプロイヤー
配置者は、SAP Deployment Automation Framework の実行エンジンです。 これは、Terraform および Ansible コマンドの実行に使用される構成済みの仮想マシン (VM) です。 Azure DevOps を使用する場合、デプロイ元はセルフホステッド エージェントです。
デプロイツールの構成は、Terraform tfvars
変数ファイルで実行されます。
Deployer に既存のリソース グループを使用する場合は、デプロイ元の tfvars ファイルの resource_group_arm_id
パラメーターを使用して、リソース グループの Azure リソース ID を指定します。 パラメーターが定義されていない場合、リソース グループは既定の名前付けを使用して作成されます。 既定の名前は、 resource_group_name
パラメーターを使用して変更できます。
Terraform パラメーター
次の表に、Terraform パラメーターを示します。 デプロイ スクリプトを使用していない場合は、これらのパラメーターを手動で入力する必要があります。
変数 | 説明 | タイプ |
---|---|---|
tfstate_resource_id |
Terraform 状態ファイルを含む SAP ライブラリ内のストレージ アカウントの Azure リソース識別子 | 必須 |
環境パラメーター
次の表に、リソースの名前付けを定義するパラメーターを示します。
変数 | 説明 | タイプ | 注記 |
---|---|---|---|
environment |
コントロール プレーンの識別子 (最大 5 文字)。 | 必須 | たとえば、運用環境では PROD 、非運用環境では NP です。 |
___location |
デプロイする Azure リージョン。 | 必須 | 小文字を使用します。 |
codename |
リソースに名前を付けるための追加コンポーネント。 | オプション | |
name_override_file |
オーバーライド ファイルに名前を付けます。 | オプション | カスタムの名前付けに関するページをご覧ください。 |
place_delete_lock_on_resources |
キー リソースに削除ロックを設定します。 | オプション |
リソースグループ
次の表に、リソース グループを定義するパラメーターを示します。
変数 | 説明 | タイプ |
---|---|---|
resourcegroup_name |
作成するリソース グループの名前 | オプション |
resourcegroup_arm_id |
既存のリソース グループの Azure リソース識別子 | オプション |
resourcegroup_tags |
リソース グループに関連付けるタグ | オプション |
ネットワーク パラメーター
オートメーションフレームワークでは、仮想ネットワークとサブネットの作成 (グリーン フィールド) および既存の仮想ネットワークと既存のサブネットの使用 (ブラウン フィールド) の両方をサポートし、グリーン フィールドとブラウン フィールドを組み合わせることもできます:
- グリーン フィールド シナリオ: 仮想ネットワーク アドレス空間とサブネット アドレス プレフィックスを指定する必要があります。
- ブラウン フィールド シナリオ: 仮想ネットワークとサブネットの Azure リソース識別子を指定する必要があります。
仮想ネットワーク アドレス空間の推奨される CIDR は /27 で、32 個の IP アドレスの領域を使用できます。 CIDR 値 /28 では、16 個の IP アドレスのみが許可されます。 Azure Firewall を含める場合は、CIDR 値 /25 を使用します。これは、Azure Firewall には /26 の範囲が必要であるためです。
管理サブネットに推奨される CIDR 値は /28 で、16 個の IP アドレスを許可します。 ファイアウォール サブネットに推奨される CIDR 値は /26 で、64 個の IP アドレスを許可します。
次の表に、ネットワーク パラメーターを示します。
変数 | 説明 | タイプ | 注記 |
---|---|---|---|
management_network_name |
デプロイを行う仮想ネットワークの名前 | オプション | グリーン フィールドのデプロイ用 |
management_network_logical_name |
ネットワークの論理名 (DEV-WEEU-MGMT01-INFRASTRUCTURE) | 必須 | |
management_network_arm_id |
仮想ネットワークの Azure リソース識別子 | オプション | ブラウン フィールドのデプロイ用 |
management_network_address_space |
仮想ネットワークのアドレス範囲 | 必須 | グリーン フィールドのデプロイ用 |
management_subnet_name |
サブネットの名前 | オプション | |
management_subnet_address_prefix |
サブネットのアドレス範囲 | 必須 | グリーン フィールドのデプロイ用 |
management_subnet_arm_id |
サブネットの Azure リソース識別子 | 必須 | ブラウン フィールドのデプロイ用 |
management_subnet_nsg_name |
ネットワーク セキュリティ グループの名前 | オプション | |
management_subnet_nsg_arm_id |
ネットワーク セキュリティ グループの Azure リソース識別子 | 必須 | ブラウン フィールドのデプロイ用 |
management_subnet_nsg_allowed_ips |
Azure Firewall に追加できる IP アドレスの範囲 | オプション | |
management_firewall_subnet_arm_id |
Azure Firewall サブネットの Azure リソース識別子 | 必須 | ブラウン フィールドのデプロイ用 |
management_firewall_subnet_address_prefix |
サブネットのアドレス範囲 | 必須 | グリーン フィールドのデプロイ用 |
management_bastion_subnet_arm_id |
Azure Bastion サブネットの Azure リソース識別子 | 必須 | ブラウン フィールドのデプロイ用 |
management_bastion_subnet_address_prefix |
サブネットのアドレス範囲 | 必須 | グリーン フィールドのデプロイ用 |
webapp_subnet_arm_id |
Web アプリ サブネットの Azure リソース識別子 | 必須 | ブラウン フィールドのデプロイ用 |
webapp_subnet_address_prefix |
サブネットのアドレス範囲 | 必須 | グリーン フィールドのデプロイ用 |
use_private_endpoint |
プライベート エンドポイントを使用する。 | オプション | |
use_service_endpoint |
サブネットにサービス エンドポイントを使用します。 | オプション |
注
Web アプリに既存のサブネットを使用する場合、デプロイするリソース グループと同じリージョン内のサブネットを空にし、Microsoft.Web/serverFarms に委任する必要があります。
Deployer 仮想マシンのパラメーター
次の表に、デプロイ元 VM に関連するパラメーターを示します。
変数 | 説明 | タイプ |
---|---|---|
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 アドレスを使用する必要があるかどうかを制御します (動的) true | オプション |
deployer_private_ip_address |
使用するプライベート IP アドレスを定義します | オプション |
deployer_enable_public_ip |
デプロイ元にパブリック IP があるかどうかを定義します。 | オプション |
auto_configure_deployer |
デプロイ元が必要なソフトウェア (Terraform と Ansible) で構成されているかどうかを定義します | オプション |
add_system_assigned_identity |
展開者にシステム ID が割り当てられているかどうかを定義します | オプション |
VM イメージは、次の構造を使用して定義されます。
xxx_vm_image = {
os_type = ""
source_image_id = ""
publisher = "Canonical"
offer = "0001-com-ubuntu-server-jammy"
sku = "22_04-lts"
version = "latest"
type = "marketplace"
}
注
型は marketplace/marketplace_with_plan/custom
できます。
marketplace_with_plan
種類のイメージを使用するには、対象のイメージがサブスクリプションで少なくとも 1 回使用されている必要があります。 最初の使用では、ユーザーにライセンス条項への同意を求めるメッセージが表示され、自動化によって承認される手段はありません。
認証パラメーター
このセクションでは、VM 認証の定義に使用されるパラメーターを定義します。
変数 | 説明 | タイプ |
---|---|---|
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 情報の定義に使用されるパラメーターを定義します。
変数 | 説明 | タイプ |
---|---|---|
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 サポート
変数 | 説明 | タイプ |
---|---|---|
dns_label |
プライベート DNS ゾーンの DNS 名。 | オプション |
use_custom_dns_a_registration |
AZURE ネイティブの場合は false に設定された、DNS 用の外部システムを使用します。 | オプション |
management_dns_subscription_id |
プライベート DNS ゾーンを含むサブスクリプションのサブスクリプション ID。 | オプション |
management_dns_resourcegroup_name |
プライベート DNS ゾーンを含むリソース グループ。 | オプション |
その他のパラメーター
変数 | 説明 | タイプ | 注記 |
---|---|---|---|
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 アプリのパラメーター
変数 | 説明 | タイプ | 注記 |
---|---|---|---|
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 を使用していない場合は、これらのパラメーターを手動で入力する必要があります。
変数 | 説明 | タイプ | 注記 |
---|---|---|---|
deployer_tfstate_key |
デプロイヤー用のステートファイル名 | 必須 |
環境パラメーター
次の表に、リソースの名前付けを定義するパラメーターを示します。
変数 | 説明 | タイプ | 注記 |
---|---|---|---|
environment |
コントロール プレーンの識別子 (最大 5 文字) | 必須 | たとえば、運用環境では PROD 、非運用環境では NP です。 |
___location |
デプロイする Azure リージョン | 必須 | 小文字を使用します。 |
name_override_file |
名前オーバーライド ファイル | オプション | カスタムの名前付けに関するページをご覧ください。 |
リソースグループ
次の表に、リソース グループを定義するパラメーターを示します。
変数 | 説明 | タイプ |
---|---|---|
resourcegroup_name |
作成するリソース グループの名前 | オプション |
resourcegroup_arm_id |
既存のリソース グループの Azure リソース識別子 | オプション |
resourcegroup_tags |
リソース グループに関連付けるタグ | オプション |
SAP インストール メディア ストレージ アカウント
変数 | 説明 | タイプ |
---|---|---|
library_sapmedia_arm_id |
Azure リソース識別子 | オプション |
「Terraformのリモート状態管理ストレージアカウント」
変数 | 説明 | タイプ |
---|---|---|
library_terraform_state_arm_id |
Azure リソース識別子 | オプション |
DNS サポート
変数 | 説明 | タイプ |
---|---|---|
dns_label |
プライベート DNS ゾーンの DNS 名。 | オプション |
use_custom_dns_a_registration |
既存のプライベート DNS ゾーンを使用します。 | オプション |
management_dns_subscription_id |
プライベート DNS ゾーンを含むサブスクリプションのサブスクリプション ID。 | オプション |
management_dns_resourcegroup_name |
プライベート DNS ゾーンを含むリソース グループ。 | オプション |
追加のパラメーター
変数 | 説明 | タイプ |
---|---|---|
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"