本文へスキップ

作業ディレクトリの初期化

OpenTofuは、OpenTofu言語で記述された設定ファイルを含む作業ディレクトリから起動されることを想定しています。OpenTofuはこのディレクトリの設定内容を使用し、設定、キャッシュされたプラグインとモジュール、そして場合によっては状態データを保存するために使用します。

OpenTofuが作業ディレクトリで(インフラストラクチャのプロビジョニングや状態の変更など)操作を実行するには、事前に作業ディレクトリを初期化する必要があります。

作業ディレクトリの内容

OpenTofuの作業ディレクトリには通常、以下が含まれています。

  • OpenTofuが管理する必要があるリソースを記述するOpenTofu設定。この設定は時間とともに変化することが想定されています。
  • 非表示の.terraformディレクトリ。OpenTofuはこれを使用して、キャッシュされたプロバイダープラグインとモジュールを管理し、現在アクティブなワークスペースを記録し、次回実行時に状態を移行する必要がある場合に備えて、最後に認識されたバックエンド設定を記録します。このディレクトリはOpenTofuによって自動的に管理され、初期化時に作成されます。
  • 設定でデフォルトのlocalバックエンドを使用している場合の状態データ。これは、(ディレクトリがデフォルトのワークスペースのみを使用する場合)terraform.tfstateファイル、または(ディレクトリが複数のワークスペースを使用する場合)terraform.tfstate.dディレクトリでOpenTofuによって管理されます。

初期化

tofu initコマンドを実行して、OpenTofu設定を含む作業ディレクトリを初期化します。初期化後、tofu plantofu applyなどの他のコマンドを実行できるようになります。

初期化せずに初期化が必要なコマンドを実行しようとすると、コマンドはエラーで失敗し、initを実行する必要があることを説明します。

初期化は、設定されたバックエンドの状態へのアクセス、プロバイダープラグインのダウンロードとインストール、モジュールのダウンロードなど、ディレクトリを準備するためのいくつかのタスクを実行します。場合によっては(通常はバックエンドを変更する場合)、ユーザーにガイダンスまたは確認を求めることがあります。

詳細については、tofu initコマンドを参照してください。

再初期化

OpenTofu設定に対する特定の種類の変更は、通常の操作を継続する前に再初期化が必要になる場合があります。これには、プロバイダーの要件、モジュールのソースまたはバージョン制約、およびバックエンドの設定の変更が含まれます。

tofu initを再度実行してディレクトリを再初期化できます。実際、いつでも再初期化できます。initコマンドはべき等であり、変更が必要ない場合は効果がありません。

再初期化が必要な場合、初期化に依存するコマンドはエラーで失敗し、その旨を伝えます。

モジュールのみの再初期化

tofu getコマンドは、設定で参照されているモジュールをダウンロードしますが、他の必要な初期化タスクは実行しません。このコマンドはニッチなワークフローでのみ有用であり、ほとんどのOpenTofuユーザーはtofu initを優先して無視できます。