Провайдеры
OpenTofu использует плагины, называемые провайдерами, для взаимодействия с облачными провайдерами, поставщиками SaaS и другими API.
В конфигурациях OpenTofu необходимо объявить требуемые провайдеры, чтобы OpenTofu мог их установить и использовать. Кроме того, некоторым провайдерам требуется конфигурация (например, URL конечных точек или регионы облака), прежде чем их можно будет использовать.
Для чего нужны провайдеры
Каждый провайдер добавляет набор типов ресурсов и/или источников данных, которыми может управлять OpenTofu.
Каждый тип ресурса реализуется провайдером; без провайдеров OpenTofu не может управлять никакой инфраструктурой.
Большинство провайдеров предназначены для конкретной инфраструктурной платформы (облачной или самостоятельно размещённой). Провайдеры также могут предлагать локальные инструменты для таких задач, как генерация случайных чисел для создания уникальных имён ресурсов.
Откуда берутся провайдеры
Провайдеры распространяются отдельно от OpenTofu, и у каждого провайдера свой график выпуска и нумерация версий.
Публичный реестр OpenTofu — основной каталог общедоступных провайдеров; в нём размещены провайдеры для большинства крупных инфраструктурных платформ.
Документация провайдеров
У каждого провайдера есть собственная документация, в которой описаны его типы ресурсов и их аргументы. Эту документацию можно найти в репозитории провайдера на GitHub. Документация многих провайдеров также размещена в каталоге провайдеров публичного реестра OpenTofu.
Документация провайдеров привязана к версиям, поэтому важно обращаться к тегу или выпуску, соответствующему используемой вами версии.
Как использовать провайдеры
Провайдеры выпускаются отдельно от OpenTofu и имеют собственные номера версий. Для производственной среды мы рекомендуем ограничивать допустимые версии провайдеров в блоке требований к провайдерам конфигурации, чтобы tofu init не устанавливал более новые версии провайдера, несовместимые с конфигурацией.
Чтобы использовать ресурсы определённого провайдера, необходимо добавить в конфигурацию некоторые сведения о нём. Подробности см. на следующих страницах:
-
В разделе Требования к провайдерам описано, как объявить провайдеры, чтобы OpenTofu мог их установить.
-
В разделе Настройка провайдеров описано, как задавать параметры провайдеров.
-
В разделе Файл блокировки зависимостей описан дополнительный файл HCL, который можно включить в конфигурацию, чтобы указать OpenTofu всегда использовать определённый набор версий провайдеров.
Установка провайдеров
-
TACOS (программное обеспечение для автоматизации и совместной работы с TF) устанавливают провайдеры при каждом запуске.
-
OpenTofu CLI находит и устанавливает провайдеры при инициализации рабочего каталога. Провайдеры можно автоматически загружать из реестра провайдеров или устанавливать из локального зеркала либо кэша. Если вы используете постоянный рабочий каталог, его необходимо повторно инициализировать при каждом изменении списка провайдеров в конфигурации.
Чтобы сэкономить время и трафик, OpenTofu CLI поддерживает необязательный кэш плагинов. Кэш можно включить с помощью параметра
plugin_cache_dirв файле конфигурации CLI.
Чтобы OpenTofu всегда устанавливал одни и те же версии провайдеров для заданной конфигурации, с помощью OpenTofu CLI можно создать файл блокировки зависимостей и добавить его в систему контроля версий вместе с конфигурацией. Если файл блокировки присутствует, OpenTofu CLI и TACOS (программное обеспечение для автоматизации и совместной работы с TF) будут учитывать его при установке провайдеров.
Как найти провайдеры
Чтобы найти провайдеры для используемых вами инфраструктурных платформ, просмотрите публичный реестр OpenTofu.
Некоторые провайдеры из реестра разрабатывает и публикует HashiCorp, некоторые публикуют сопровождающие платформ, а некоторые — пользователи и волонтёры.
Как разрабатывать провайдеры
Провайдеры написаны на Go с использованием Terraform Plugin SDK. Дополнительные сведения о разработке провайдеров см. в документации по разработке плагинов.
Запуск приёмочных тестов с OpenTofu CLI
Для запуска приёмочных тестов с помощью OpenTofu требуются дополнительные действия. Перед запуском приёмочных тестов задайте следующие переменные окружения:
TF_ACC_TERRAFORM_PATH="/path/to/opentofu" TF_ACC_PROVIDER_NAMESPACE="hashicorp" TF_ACC_PROVIDER_HOST="registry.opentofu.org"
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.9/language/providers/