かべぎわブログ

ブログです

Terraformで変数をつかう

概要

Terraformで変数をつかってみます。
variableを使うと変数が定義できます。

きほんのかたち

インスタンスタイプをt3.microの変数を設定している。

provider "aws" {
  region = "ap-northeast-1"
}
variable "instance_type" {
    default = "t3.micro"
}
resource "aws_instance" "wawawa" {
    ami = "ami-068a6cefc24c301d2"
    instance_type = var.instance_type
}

こうなる

$ terraform plan | grep instance_type
      + instance_type                = "t3.micro"

-varオプションで上書き

-var オプションで上書きできます。

$ terraform plan -var 'instance_type=t3.medium' | grep instance_type
      + instance_type                = "t3.medium"

TF_VAR_wawawa環境変数で上書き

環境変数で上書きできます。
TF_VAR_wawawaという名前の環境変数を定義してあげると、それを読み込んでくれます。

$ export TF_VAR_instance_type=t3.large
$ echo ${TF_VAR_instance_type}
t3.large

$ terraform plan | grep instance_type
      + instance_type                = "t3.large"

ローカル変数で上書きされないようにする

ローカル変数をつかうと、上書きできないようになります。
こんなかんじで定義してあげます。

provider "aws" {
  region = "ap-northeast-1"
}
locals {
    instance_type = "t3.micro"
}
resource "aws_instance" "wawawa" {
    ami = "ami-068a6cefc24c301d2"
    instance_type = local.instance_type
}

おわりに

いろいろありますね

Terraform: Up and Running: Writing Infrastructure as Code

Terraform: Up and Running: Writing Infrastructure as Code

  • 作者:Yevgeniy Brikman
  • 出版社/メーカー: O'Reilly Media
  • 発売日: 2017/04/04
  • メディア: ペーパーバック