この記事は、Data Centre の Technical Solutions Architect である Conor Murphy によるブログ「Introduction to Terraform with ACI – Part 3」(2021/2/4)の抄訳です。
前回までの「Terraform の概要」投稿をまだ読まれていない場合は、ぜひお読みください。今回の「パート 3」では、Terraform のデモで確認できる各種設定ファイルについて説明します。
- Terraform の概要
- Terraform と ACI
- Terraform 設定ファイルの説明
- Terraform リモート状態管理とチームでのコラボレーション
- Terraform プロバイダーの構築方法
コード例
https://github.com/conmurphy/terraform-aci-testing/tree/master/terraform
設定ファイル
ACI の設定と Terraform のバックエンドの設定を分けることもできますが、このデモでは統合されています。
config-app.tf
この例で使用されている名前「myWebsite」は、「aci_application_profile」リソースの Terraform インスタンス名を示しています。
ACI で設定されるアプリケーション プロファイル名は「my_website」です。
Terraform リソースを別の Terraform リソースから参照する場合は、Terraform インスタンス名(「myWebsite」)を使用します。
config.tf
S3 バックエンド設定では、キー(Terraform 状態管理ファイルの名前)のみが固定で設定されています。バケット、リージョン、アクセスキー、シークレットキーは、「terraform init」コマンドの実行時にコマンドライン引数を介して渡されます。これらの引数を設定する各種オプションの詳細については、以下を参照してください。
https://www.terraform.io/docs/backends/config.html
terraform.tfvars
variables.tf
この設定では、Terraform が使用する変数を定義する必要があります。これらの変数の値を指定する方法を次に示します。
- 以下の変数定義にデフォルト値を指定する
- 前に示したように、デフォルト値を使用して「terraform.tfvars」ファイルを設定する
- コマンドラインで入力する際に変数値を指定する
$terraform apply –var ’tenant_name=tenant-01’
- 「TF_VAR」で始まる環境変数を使用する
$export TF_VAR_tenant_name=tenant-01
- デフォルト値を指定しない。この場合、plan コマンドまたは apply コマンドの実行時に入力するよう求められる。
versions.tf