- コマンドライン
- OpenTofu を使用したインフラストラクチャのプロビジョニング
OpenTofu を使用したインフラストラクチャのプロビジョニング
OpenTofu の主な機能は、OpenTofu 設定 に記述されている desired state(望ましい状態)に合わせて、インフラストラクチャリソースを作成、変更、および破棄することです。
「OpenTofu を実行する」とは、一般的に、実際のインフラストラクチャオブジェクトに影響を与えるために、これらのプロビジョニングアクションを実行することを意味します。 OpenTofu バイナリには、さまざまな管理アクションのための多くのサブコマンドがありますが、これらの基本的なプロビジョニングタスクが OpenTofu の中核です。
OpenTofu のプロビジョニングワークフローは、`plan`、`apply`、`destroy` の 3 つのコマンドに依存しています。 これらのコマンドはすべて、初期化された 作業ディレクトリを必要とし、すべて現在選択されている ワークスペース にのみ作用します。
計画
`tofu plan` コマンドは、OpenTofu 設定を評価して、宣言されているすべてのリソースの desired state を決定し、その desired state を、現在の作業ディレクトリとワークスペースで管理されている実際のインフラストラクチャオブジェクトと比較します。 これは、状態データを使用して、どの実際のオブジェクトがどの宣言されたリソースに対応するかを決定し、関連するインフラストラクチャプロバイダーの API を使用して各リソースの現在の状態を確認します。
現在の状態と desired state の違いを判断すると、`tofu plan` は desired state を実現するために必要な変更の説明を提示します。 これは、実際のインフラストラクチャオブジェクトを*実際に変更する*のではなく、変更を行うための計画を提示するだけです。
計画は通常、設定の変更を検証し、結果のアクションが期待どおりであることを確認するために実行されます。 ただし、`tofu plan` は、その計画を実行可能なアーティファクトとして保存することもでき、`tofu apply` はそれを使用して、これらの正確な変更を実行できます。
詳細については、`tofu plan` コマンド を参照してください。
適用
`tofu apply` コマンドは `tofu plan` と同様に計画を実行しますが、その後、関連するインフラストラクチャプロバイダーの API を使用して、計画された変更を各リソースに実際に実行します。 明示的に承認をスキップするように指示されていない限り、変更を加える前にユーザーに確認を求めます。
デフォルトでは、`tofu apply` は変更を適用する直前に新しい計画を実行し、確認を求めるときにユーザーに計画を表示します。 ただし、新しい計画を実行する代わりに、`tofu plan` によって生成された計画ファイルを受け入れることもできます。 これを使用して、設定または実際のインフラストラクチャの状態が元の計画が作成されてから数分以内に変更された場合でも、事前に承認された正確な変更セットを確実に実行できます。
詳細については、`tofu apply` コマンド を参照してください。
破棄
`tofu destroy` コマンドは、状態データを使用して、どの実際のオブジェクトが管理対象リソースに対応するかを決定し、現在の作業ディレクトリとワークスペースによって管理されているすべてのリソースを破棄します。 `tofu apply` と同様に、続行する前に確認を求めます。
破棄は、設定からすべてのリソースを削除してから適用を実行するのと同じように動作しますが、設定を編集する必要はありません。 後日、同様のリソースをプロビジョニングする場合に便利です。
詳細については、`tofu destroy` コマンド を参照してください。