Terraformは初めてですが、Hashicorpのサイトで利用できるすべての教育モジュールを学習しました。
現在、私は環境変数の設定方法を理解するのに苦労しています。 main.tf構成で変数を参照する方法を知っています(access_key = "${var.access_key}"
)、私はそのアクセスキーを別のファイルに保存して参照する方法を知っていますが、私が理解していない(およびドキュメント/手順が見つからない)のは、環境変数を設定する方法です。アクセスキーをファイルに保存する必要はありません。
これを行うために最善の方法を知っている人はいますか?
環境変数を使用するTerraformの方法、つまりTerraformのすべての適切な値に任意の値を使用するには、anyenvironmentTF_VAR_
を含む変数を指定すると、Terraformはそれを自動的に使用します。
特定のユースケースでは、これは**環境*変数access_key
を設定することで、Terraform変数TF_VAR_access_key
を設定できることを意味します。
この手法はTerraform自体に組み込まれているため、特定のプロバイダーから独立しています。
ドキュメントは https://www.terraform.io/docs/commands/environment-variables.html#tf_var_name にありますolderでも機能しますTerraformバージョン(0.11でテストしました)。
terraform.tfvars
ファイルの配置先:aws_access_key="myaccesskey"
aws_secret_key="mysecertkey"
region='aws-region'
main.tf
:
variable "aws_access_key" {}
variable "aws_secret_key" {}
variable "private_key_path" {}
provider "aws" {
access_key = var.aws_access_key
secret_key = var.aws_secret_key
region = var.region
}
確認すると、両方のファイルが同じディレクトリにあります。
$ export AWS_ACCESS_KEY_ID="AWS_ACCESS_KEY_ID"
$ export AWS_SECRET_ACCESS_KEY="AWS_SECRET_ACCESS_KEY"
$ terraform plan
~/.aws/credentials
aws configure
AWS Access Key ID: yourID
AWS Secret Access Key: yourSecert
Default region name : aws-region
Default output format : env
お役に立てば幸いです。
幸運、テラフォームは学ぶのに素晴らしいものです!