web-dev-qa-db-ja.com

Hashicorp Terraformで環境変数を構成する方法

Terraformは初めてですが、Hashicorpのサイトで利用できるすべての教育モジュールを学習しました。

現在、私は環境変数の設定方法を理解するのに苦労しています。 main.tf構成で変数を参照する方法を知っています(access_key = "${var.access_key}")、私はそのアクセスキーを別のファイルに保存して参照する方法を知っていますが、私が理解していない(およびドキュメント/手順が見つからない)のは、環境変数を設定する方法です。アクセスキーをファイルに保存する必要はありません。

これを行うために最善の方法を知っている人はいますか?

4
Neal

環境変数を使用する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でテストしました)。

0
  1. 私がtfを学び始めたとき、私は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
}

確認すると、両方のファイルが同じディレクトリにあります。

  1. それから私はMacでenv変数を使い始めました:
$ export AWS_ACCESS_KEY_ID="AWS_ACCESS_KEY_ID"
$ export AWS_SECRET_ACCESS_KEY="AWS_SECRET_ACCESS_KEY"
$ terraform plan
  1. プロファイルを使用して、~/.aws/credentials
aws configure
AWS Access Key ID: yourID
AWS Secret Access Key: yourSecert
Default region name : aws-region
Default output format : env

お役に立てば幸いです。

幸運、テラフォームは学ぶのに素晴らしいものです!

0
akshaymittal143