Goalist Developers Blog

IaC by Terraform ~DAY3: Terraform Commands (2)~

どうも,新卒エンジニアのナカノです.

今や完全に春真っ最中な時期ですが,暑さがまるで夏の様です.

そのため,日中は汗だくで辛いです.これでは夏に耐えられぬ....

さて,今回は前回の記事の内容の続きとなります.

前回はよく使われるTerraformのコマンドに関する内容でした.

今回の内容は,場合によって役立つTerraformのコマンドに関してです.

目 次
  • 場合によって役立つコマンド
    • 出力コマンド
      • graph
      • output
      • show
    • その他
      • console
      • get
      • import
      • providers
  • 最後に

場合によって役立つコマンド

出力コマンド

graph

設定内容或いはplanapplydestroyなどのコマンドの結果を,ビジュアルなものとして出力してくれるコマンドです.

これを実行すると設定間の関連などが視覚的に分かるため,確認作業を行う上では役立つかもしれません.

ただ,設定が多すぎると出力結果がかえって見辛くなるため,使いどころは考える必要があるかなと思います. www.terraform.io

output

ただ単にterraform outputを実行すると,設定された全ての出力値が表示されます.

また,コマンド実行の際に-jsonオプションを使うと,出力結果のフォーマットをJSON形式に変えることが出来ます.

JSON形式での出力が出来るため,例えばjqコマンドと組み合わせて出力値の利用が可能です.

他にも,オプションの利用により,terraform.tfstateの情報やmoduleの設定内容の出力も出来ます.

一見すると重要そうに見えないですがTerraformに慣れてくると有り難みが分かってくる,そんなコマンドです. www.terraform.io

show

このコマンドを実行すると,ファイルの設定内容をhuman-readableなフォーマットで出力してくれます.

outputコマンドは出力設定の内容しか出力しないのに対し,showコマンドは実装した設定の内容を出力します.

そのため,showコマンドはoutputコマンドよりも詳細な情報を画面に表示してくれます. www.terraform.io

その他

console

文字通りで,コンソールを扱うことが出来ます.一見すると役に立たなさそうなコマンドに思えます.

しかし例えば,このコマンドの実行後に,Terraformで使える関数などの挙動を確認することが出来ます.

挙動の確認なしにplanapplyを行うのは怖いため,挙動確認の点で割と重要なコマンドであると言えるでしょう. www.terraform.io

get

moduleと呼ばれるものを使って実装した場合,planapplyの前にこのコマンドを実行する必要があります.

これを実行すると.terraformディレクトリにmoduleに関するファイルが生成されます.

ただ,今のところはgetを使わずにinitplanapplyを行うだけでこと足りる様になっているみたいです.

実際に,私はTerraformを半年ほど使っていますが,このコマンドを実行せざるを得ない状況に遭遇したことがありません. www.terraform.io

import

Terraformで管理されていないインフラリソースを,Terraformの管理対象にすることが出来るコマンドです.

正確には,このコマンドにより「リソースの情報を追記される様にterraform.tfstateが書き換えられる」といった感じです.

もしterraform.tfstateがない場合は生成されますが,このファイルが既に存在する場合は単に書き換えが行われます.

そのため,このコマンドを実行した後は「最新化されたterraform.tfstateをもとに.tfファイルを作成して差分をなくす」作業が必要となります. www.terraform.io

providers

プロバイダーの情報を画面に表示させるコマンドです.表示形式はツリー構造です.

特に様々なプロバイダーを利用している場合であれば,作業ミスの防止のための確認として役立つかもしれません.

ただ,このコマンドは基本的には使われる機会が殆どないのではと思います. www.terraform.io

最後に

如何でしたでしょうか.普段は重要には感じられないが場合によっては非常に役立ちそうなものばかりですね.

次回は「terraform.tfstateに関連するコマンド」をご紹介したいと思います.

それでは,今回はこの辺りで筆を置かせて頂きます.

次回を乞うご期待ください.