個人的備忘録。本家のドキュメントが英語なので。
IAMの指定の仕方はいくつかある
- tfファイルに直書きする
- コマンド実行時にオプションで渡す
- ファイルに書いておく
1. tfファイルに直書きする
本家のexampleに一番最初に出てくる書き方。
どやーってgithubとかに上げたら後悔するやつ。
$ cat example.tf
provider "aws" {
access_key = "hogeo"
secret_key = "hogeo_secret"
region = "ap-northeast-1"
}
2. コマンド実行時にオプションで渡す
variables.tfをつくる
$ cat variables.tf
variable "access_key" {}
variable "secret_key" {}
variable "region" {
default = "ap-northeast-1"
}
example.tfは変数に置き換える。
$ cat example.tf
provider "aws" {
access_key = "${var.access_key}"
secret_key = "${var.secret_key}"
region = "${var.region}"
}
apply実行時に-varオプションで渡す。
$ terraform apply -var 'access_key=hogeo' -var 'secret_key=hogeo_secret'
オプション忘れても、入力待ちになる
$ terraform apply var.access_key Enter a value:
3. ファイルに書いておく
variables.tf書くのと、example.tfの変数化までは一緒だけど、コマンドラインのオプションで渡すんじゃなくて、ファイルに書くパターン。
terraform.tfvarsというファイル名をカレントにおいて、中にaccess_key, secret_keyを書くことで、IAMをレシピ?に書かずに済む。
$ cat terraform.tfvars access_key = "hogeo" secret_key = "hogeo_secret"
terraform.tfvarsというファイル名じゃないと、勝手に読んでくれないので、別のファイル名にしたいときは-var-fileオプションで指定してあげる。
↓はファイル名に「_org」とかつけちゃったのd、-var-fileオプションで指定したとき。
$ terraform destroy -var-file="terraform.tfvars_org"
今日はここまで。全然進まない。。。
本日の一言
勉強してると、部屋の片づけ始めて、カメラのSDカードとか見つかっちゃって、いつの間にか昔の写真見返して時間が過ぎてるよね。