読者です 読者をやめる 読者になる 読者になる

TerraformをDigital Oceanで試してみる2 環境情報の外出し

前回では、do.tfファイルの中に全ての情報を書き込みました。
それではtoken情報やssh keyの値などはgitなどで管理しづらいので、ssh_keysとtokenを別のファイルで管理します。
ファイルを外出しするようになると、以下の様な構成になります。

.
├── do.tf
├── terraform.tfvars
└── variables.tf

この構成になるとterraform.tfvarsにtoken情報やssh keyの値を書くことで、このファイルのみをコミット対象外するとこでgitなどで問題無く扱えるようになります。

variables.tf

terraform.tfvarsで宣言する変数を宣言するためのファイルです。
do.tfの中で宣言しても、問題無いですが別ファイルで管理します。ファイルの内容はInput Variablesにあるように、書いていきます。

variable digitalocean_token {}
variable ssh_key_id {}

terraform.tfvars

このファイルでは、変数と値を定義します。
terraform.tfvarsファイルという名前にしておくと、上記のような構成にしておくと-var-fileオプションを付けなくても自動的にTerraformが読み込んでくれます。

dgitalocean_token = "前回作成したtoken"
ssh_key_id = "512189"

do.tf

前回作成したdo.tfのtokenとssh_keysの値を、variables.tfで定義した変数に書き換えます。

provider "digitalocean" {
      token = "${var.digitalocean_token}"
}

resource "digitalocean_droplet" "node-1" {
     image = "ubuntu-14-04-x64"
     name = "node-1"
     region = "sgp1"
     size = "512mb"
     ssh_keys = [${var.ssh_key_id}]
 }

これで、terraform plan や terraform applyの引数は変更なく実行出来ます。