Aimless

Terraformのroot_block_deviceを使う

AWS

Terraformのroot_block_deviceで躓いたのでメモ。

やりたいこと

 Terraformを利用して、10Gのルートデバイスと20Gのブロックデバイスを持ったt2.microのインスタンスを起動する

やったこと

 クレデンシャルを記載したtfファイルを作成する

 リソース作成の処理を記載したtfファイルを作成する

 処理で利用する変数ファイルをまとめて定義するtfファイルを作成する

 terraform実行時に渡す変数をまとめたtfファイルを作成する

 terraformする。

失敗談

 ebs_root_device_nameの値をAMIのルートデバイス名と異なる値にしたところ、root_block_deviceのパラメータが追加のブロックデバイスとして判断されてしまった。

 たとえば、Amazon Linuxに対してebs_root_device_nameを指定しないと、デフォルト値である/dev/sda1が利用されてしまい、ルートデバイスはAMIのデフォルト、そのほかにブロックデバイスが追加で2個EBSが作成されてしまう。

 

失敗の事例

 ebs_root_device_nameを指定せずにterraformしたログは以下の通り。terraform plan ではルートデバイス1個、ブロックデバイス1個となっているが、terraform applyしてみると、block_device.# = 2になっている。

9 Mar 2015