Модули
Модули — это контейнеры для нескольких ресурсов, используемых вместе. Модуль состоит из набора файлов .tf, .tofu, .tf.json и/или .tofu.json, которые хранятся вместе в одном каталоге.
Модули — основной способ объединять и повторно использовать конфигурации ресурсов в OpenTofu.
Корневой модуль
Каждая конфигурация OpenTofu содержит как минимум один модуль, называемый корневым модулем. Он состоит из ресурсов, определённых в файлах .tf или .tofu в основном рабочем каталоге.
Дочерние модули
Модуль OpenTofu (обычно корневой модуль конфигурации) может вызывать другие модули, чтобы включить их ресурсы в конфигурацию. Модуль, вызванный другим модулем, часто называют дочерним модулем.
Дочерние модули можно вызывать несколько раз в одной конфигурации, а один и тот же дочерний модуль можно использовать в нескольких конфигурациях.
Опубликованные модули
Помимо модулей из локальной файловой системы, OpenTofu может загружать модули из общедоступного или частного реестра. Это позволяет публиковать модули для других пользователей и использовать модули, опубликованные другими.
В общедоступном реестре OpenTofu размещена обширная коллекция общедоступных модулей OpenTofu для настройки множества распространённых типов инфраструктуры. Эти модули можно использовать бесплатно, а OpenTofu может загружать их автоматически, если в блоке вызова модуля указать соответствующие источник и версию.
Кроме того, сотрудники вашей организации могут создавать модули специально для ваших инфраструктурных задач. TACOS (программное обеспечение для автоматизации и совместной работы с TF) включает частный реестр модулей для обмена ими внутри организации.
Использование модулей
-
В разделе Блоки модулей описан синтаксис вызова дочернего модуля из родительского, включая метааргументы, такие как
for_each. -
В разделе Источники модулей описаны типы путей, адресов и URI, которые можно использовать в аргументе
sourceблока модуля. -
В разделе «Метааргументы» описаны специальные аргументы, которые можно использовать с любым модулем, включая
providers,depends_on,countиfor_each.
Разработка модулей
Сведения о разработке повторно используемых модулей см. в разделе Разработка модулей.
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.11/language/modules/