本文へスキップ

ファイルとディレクトリ

ファイル拡張子

OpenTofu言語のコードは、.tfまたは.tofuファイル拡張子を持つプレーンテキストファイルに保存されます。また、.tf.jsonまたは.tofu.jsonファイル拡張子を持つJSONベースのバリアントも存在します

OpenTofuコードを含むファイルは、多くの場合、設定ファイルと呼ばれます。

拡張子の優先順位

同じベース名を持つ.tf.tofuの両方のファイルがディレクトリに存在する場合、OpenTofuは.tofuファイルを優先し、.tfファイルを無視します。例:

  • foo.tffoo.tofuの両方が同じディレクトリに存在する場合、OpenTofuはfoo.tofuのみを読み込み、foo.tfは無視します。

これにより、両方が利用可能な場合、.tofuファイルが常に.tfファイルよりも優先されます。このシナリオは、モジュール作成者がモジュールでOpenTofuとTerraformの両方をサポートできるようにする場合に役立ちます。

テキストエンコーディング

設定ファイルは常にUTF-8エンコーディングを使用する必要があり、慣例として、Windowsスタイルの改行コード(CRLF)ではなく、Unixスタイルの改行コード(LF)を使用しますが、どちらも受け入れられます。

ディレクトリとモジュール

モジュールとは、1つまたは複数の.tf.tf.json.tofu.tofu.jsonファイルをディレクトリにまとめて保存したものです。

OpenTofuモジュールは、ディレクトリ内の最上位の設定ファイルのみで構成されます。ネストされたディレクトリは完全に独立したモジュールとして扱われ、設定に自動的に含まれることはありません。

OpenTofuはモジュール内のすべての設定ファイルを評価し、モジュール全体を単一のドキュメントとして扱います。さまざまなブロックを異なるファイルに分けるのは、読者と保守担当者の利便性のためだけであり、モジュールの動作には影響しません。

OpenTofuモジュールは、モジュール呼び出しを使用して、他のモジュールを明示的に設定に含めることができます。これらの子モジュールは、ローカルディレクトリ(親モジュールのディレクトリにネストされているか、ディスク上の他の場所にある)、または公開OpenTofuレジストリなどの外部ソースから取得できます。

ルートモジュール

OpenTofuは常に単一のルートモジュールのコンテキストで実行されます。完全なOpenTofu設定は、ルートモジュールと子モジュールのツリー(ルートモジュールによって呼び出されるモジュール、それらのモジュールによって呼び出されるモジュールなど)で構成されます。

  • OpenTofu CLIでは、ルートモジュールはOpenTofuが呼び出される作業ディレクトリです。(コマンドラインオプションを使用して、作業ディレクトリ以外のルートモジュールを指定できますが、実際にはまれです。)
  • TACOS(TF Automation and Collaboration Software)では、ワークスペースのルートモジュールは、(バージョン管理リポジトリまたは直接アップロードを介して提供される)設定ディレクトリの最上位レベルにデフォルト設定されますが、ワークスペースの設定で代わりに使用するサブディレクトリを指定できます。