はじめに
Terraformは、インフラストラクチャのタスクを自動化することができ、複雑なインフラストラクチャ環境を管理することが容易になります。
この記事では、terraform init
、terraform plan
、terraform apply
、terraform destroy
、terraform state
、terraform validate
、terraform fmt
、およびterraform providers
を含む、必要不可欠なTerraformコマンドについて探求します。
また、terraform apply
コマンドのオプションについても説明し、Terraformが変更を適用する方法をカスタマイズする方法を紹介します。
terraform init
terraform init
は、必要なプロバイダーとモジュールをダウンロードし、.terraform
ディレクトリを作成して構成ファイルを保存し、現在のインフラストラクチャの状態を保存するterraform.tfstateファイルを生成して、新しいまたは既存のTerraformプロジェクトを初期化します。以下は例です。
$ terraform init
terraform plan
terraform plan
は、Terraformコードを分析し、作成、変更、または削除されるリソースを示します。
$ terraform plan
terraform apply
terraform apply
は、Terraformが前の段階で計画した変更を適用し、Terraformコードで定義したリソースを作成、変更、または削除することで変更を適用します。
$ terraform apply
terraform apply
コマンドの基本的な使用方法に加えて、Terraformが変更を適用する方法をカスタマイズするために使用できるいくつかのオプションがあります。
-auto-approve
このオプションは、確認のプロンプトを表示せずに、変更を自動的に承認および適用します。
$ terraform apply -auto-approve
-var
このオプションを使用すると、コマンドラインで変数値を指定できます。
$ terraform apply -var="region=us-west-2"
-target
このオプションを使用すると、全てのリソースに変更を適用する代わりに、特定のリソースに変更を適用できます。
$ terraform apply -target=aws_instance.example
-input=false
このオプションは、確認プロンプトや変数入力などのユーザー入力を無効にします。
$ terraform apply -input=false
-parallelism=n
このオプションは、Terraformが並列で実行するリソース操作の数を制御できます。
$ terraform apply -parallelism=10
-refresh=false
このオプションは、変更を適用する前に状態データを更新しないようにします。
$ terraform apply -refresh=false
terraform destroy
terraform destroy
は、Terraformが作成したリソースを破棄します。このコマンドは、インフラストラクチャを解体したり、新しく始める場合に便利です。
$ terraform destroy
terraform state
terraform state
は、terrafrom.tfstate
ファイルのリソースの状態を表示および変更できるようにすることで、インフラストラクチャの状態を管理します。
$ terraform state list
terraform validate
terraform validate
は、構文エラーや無効なリファレンス、その他の問題をチェックすることで、Terraformコードを検証します。
$ terraform validate
terraform fmt
terraform fmt
は、Terraformコードを一貫してフォーマットし、読みやすく理解しやすくします。
$ terraform fmt
terraform providers
terraform providers
は、リスト、インストール、およびプロバイダーの更新を許可することで、Terraformコードで使用するプロバイダーを管理します。
$ terraform providers
参考