メインコンテンツにスキップ

モジュール

モジュールは、一緒に使用される複数のリソースのコンテナです。モジュールは、ディレクトリ内にまとめて保管される` .tf`、` .tofu`、` .tf.json`、および/または` .tofu.json`ファイルのコレクションで構成されます。

モジュールは、OpenTofuでリソース構成をパッケージ化して再利用するための主要な方法です。

ルートモジュール

すべてのOpenTofu構成には、少なくとも1つのモジュール(*ルートモジュール*と呼ばれます)があり、これはメインの作業ディレクトリにある`.tf`または`.tofu`ファイルで定義されたリソースで構成されます。

子モジュール

OpenTofuモジュール(通常は構成のルートモジュール)は、他のモジュールを*呼び出して*、それらのリソースを構成に含めることができます。別のモジュールによって呼び出されたモジュールは、多くの場合、*子モジュール*と呼ばれます。

子モジュールは同じ構成内で複数回呼び出すことができ、複数の構成で同じ子モジュールを使用できます。

公開モジュール

ローカルファイルシステムのモジュールに加えて、OpenTofuはパブリックまたはプライベートレジストリからモジュールを読み込むことができます。これにより、他の人が使用するためのモジュールを公開したり、他の人が公開したモジュールを使用したりすることが可能になります。

パブリックOpenTofuレジストリは、さまざまな種類の一般的なインフラストラクチャを構成するための、公開されているOpenTofuモジュールを広範にホストしています。これらのモジュールは自由に使用でき、モジュール呼び出しブロックで適切なソースとバージョンを指定すると、OpenTofuは自動的にダウンロードできます。

また、組織のメンバーは、独自のインフラストラクチャのニーズに合わせて特別に作成されたモジュールを作成する場合があります。TACOS(TF Automation and Collaboration Software)には、組織内でモジュールを内部的に共有するためのプライベートモジュールレジストリが含まれています。

モジュールの使用

  • モジュールブロックは、`for_each`などのメタ引数を含め、親モジュールから子モジュールを呼び出すための構文について説明しています。

  • モジュールソースは、モジュールブロックの`source`引数で使用できるパス、アドレス、およびURIの種類について説明しています。

  • メタ引数セクションでは、`providers``depends_on``count``for_each`など、すべてのモジュールで使用できる特別な引数について説明しています。

モジュールの開発

再利用可能なモジュールの開発については、モジュール開発を参照してください。