tobibako45 / terraform-practice-ec2

0 stars 0 forks source link

Terraformで環境変数的なのを使いたい #4

Open tobibako45 opened 4 years ago

tobibako45 commented 4 years ago

概要

git管理するときにAPIキーとかignoreしたいので、どうやるか調べた。

terraform.tfvarsってのを作って、そこに変数をセット。

tfvarsで定義してvariablesでも再定義?が必要なので注意。


tfファイルのprovider "aws"でAPIキーを設定していない場合、~/.aws/credentials の設定が読まれる。そっちに書いてあればAPIキーの記載がいらないけども、複数のアカウントを使い分けてるとtfvars使ったほうが良さそう。


基本的な使い方

Terraformのtfvarsを使ってAPIキーを読み込む - ばーろぐわにる

tobibako45 commented 4 years ago

0.11から0.12で.tfvarsの扱いが変わってるみたい

参考記事とかをやってみてもWarning出たので調べてみた。

Warning: Interpolation-only expressions are deprecated

  on main.tf line 12, in provider "aws":
  12:   region  = "${var.region}"

Terraform 0.11 and earlier required all non-constant expressions to be
provided via interpolation syntax, but this pattern is now deprecated. To
silence this warning, remove the "${ sequence from the start and the }"
sequence from the end of this expression, leaving just the inner expression.

Template interpolation syntax is still used to construct strings from
expressions when the template includes multiple interpolation sequences or a
mixture of literal strings and interpolations. This deprecation applies only
to templates that consist entirely of a single interpolation sequence.

------------------------------------------------------------------------

Note: You didn't specify an "-out" parameter to save this plan, so Terraform
can't guarantee that exactly these actions will be performed if
"terraform apply" is subsequently run.

region = "${var.region}"みたいに読んだらダメみたい。 region = var.regionとする。

参考

terraform 0.12でのtfvarsの扱い|vshimoda

Terraformスクリプトをモジュール化して、GCPの複数環境に適用 | DevSamurai