- OpenTofu言語
- ファイルとディレクトリ
ファイルとディレクトリ
ファイル拡張子
OpenTofu言語のコードは、.tf
または.tofu
ファイル拡張子を持つプレーンテキストファイルに保存されます。また、.tf.json
または.tofu.json
ファイル拡張子を持つJSONベースのバリアントも存在します。
OpenTofuコードを含むファイルは、多くの場合、設定ファイルと呼ばれます。
拡張子の優先順位
同じベース名を持つ.tf
と.tofu
の両方のファイルがディレクトリに存在する場合、OpenTofuは.tofu
ファイルを優先し、.tf
ファイルを無視します。例:
foo.tf
とfoo.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)では、ワークスペースのルートモジュールは、(バージョン管理リポジトリまたは直接アップロードを介して提供される)設定ディレクトリの最上位レベルにデフォルト設定されますが、ワークスペースの設定で代わりに使用するサブディレクトリを指定できます。