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