Модули
Модули — это контейнеры для нескольких ресурсов, используемых совместно. Модуль состоит из набора файлов .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.9/language/modules/