はじめに
Terraform初心者な私が、よく使うTerraformコマンド等を以下に記載します。
どんどん付け足していきます。初期装備しょぼくてごめんなさい(´・ω・`)
利用フロー
- 設定ファイル(.tf)の記述
- 設定ファイルの検証
terraform validate
の実行 - フォーマット整頓
terraform fmt
の実行 - ワークスペース初期化
terraform init
の実行 - 反映内容の確認
terraform plan
の実行 - 反映
terraform apply
の実行
Terraformコマンド
私が現場で使用しているTerraformコマンドを以下に記載します。
init
ワークスペースを初期化するための、一番最初に叩くべきコマンドです。
piromo $ terraform init
-upgrade
はバージョン制約を満たす中で、一番最新のバージョンを取得します。
piromo $ terraform init -upgrade
fmt
Terraform 構成ファイルを標準的な形式とスタイルに書き換えてくれます。
インデントを揃えるのが大変であれば、このコマンドをたたけば一発直してくれます。
piromo $ terraform fmt
piromo $ terraform fmt [options] [target...]
options
オプション | 用途 |
---|---|
-list=false |
フォーマットの不一致を含むファイルをリストに表示しない |
-write=false |
入力ファイルを上書きしない |
-diff |
書式変更の差分を表示する |
-check |
入力がフォーマットされているかどうかを確認する |
-recursive |
サブディレクトリ内のファイルも処理する |
validate
ディレクトリ内の構成ファイルを検証し、構文的に正しいのか確認してくれます。
リモートサービスには接続しません。
piromo $ terraform validate
plan
実際のリソースの構成情報と、Terraformの構成ファイルの差分を確認し、
リソースに対してTerraformが実施する内容を表示してくれます。
piromo $ terraform plan
apply
リソースに対して変更を適用します。
piromo $ terraform apply
options
オプション | 用途 |
---|---|
-refresh-only |
import
terraform importコマンドは、Terraform管理がされていないリソース情報をtfstateファイルに取得するコマンドです。
piromo $ terraform import [resourceブロックのtype].[resourceブロックのname] [resourceIDやARN]
使用例
S3バケット情報をインポートしたい場合:
main.tf
resources "aws_s3_buceket" "example" {
bucket = hands-on_example
}
例
piromo $ terraform import aws_s3_buceket.example hands-on_example