community.general.terraform модуль – Управляет развертыванием Terraform (и планами)
Примечание
Этот модуль является частью коллекции community.general (версия 9.5.0).
Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general. Для использования этого модуля необходимы дополнительные требования, см. Требования для получения подробностей.
Для использования в книге задач укажите: community.general.terraform.
Краткое описание
- Обеспечивает поддержку развертывания ресурсов с помощью Terraform и извлечения информации о ресурсах обратно в Ansible.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- terraform
Параметры
Параметр | Комментарии |
|---|---|
backend_config dictionary | Группа пар «ключ-значение» для передачи на этапе инициализации параметру -backend-config. |
backend_config_files list / elements=path added in community.general 0.2.0 | Путь к конфигурационному файлу для передачи на этапе инициализации параметру -backend-config. Может принимать список путей к нескольким конфигурационным файлам. |
binary_path path | Путь к бинарному файлу Terraform, который будет использоваться, относительно ‘service_path’, если не указан абсолютный путь. |
check_destroy boolean added in community.general 3.3.0 | Применять только тогда, когда ресурсы не уничтожаются. Обратите внимание, что это предотвращает только действия «destroy», но не действия «destroy and re-create». Этот параметр игнорируется, когда Варианты:
|
complex_vars boolean added in community.general 5.7.0 | Включить/отключить возможность обработки сложных структур переменных для Если При отключении поддерживаются только простые переменные (строки, целые и вещественные числа), и передаются без экранирования. Варианты:
|
force_init boolean | Чтобы избежать дублирования инфраструктуры, если файл состояния не может быть найден, это приведёт к принудительной Варианты:
|
init_reconfigure boolean added in community.general 1.3.0 | Принудительно перенастраивает бэкэнд во время инициализации. Варианты:
|
lock boolean | Включить блокировку файла состояния, если вы используете сервис, который принимает блокировки (например, S3+DynamoDB) для хранения вашего файла состояния. Варианты:
|
lock_timeout integer | Как долго удерживать блокировку файла состояния, если вы используете сервис, который принимает блокировки (например, S3+DynamoDB). |
overwrite_init boolean added in community.general 3.2.0 | Запустить init даже если Варианты:
|
parallelism integer added in community.general 3.8.0 | Ограничить параллельные операции при применении Terraform плана. |
plan_file path | Путь к существующему файлу плана Terraform для применения. Если он не указан, Ansible создаст новый план TF и выполнит его. Обратите внимание, что этот параметр обязателен, если ‘state’ имеет значение ‘planned’. |
plugin_paths list / elements=path added in community.general 3.0.0 | Список путей, содержащих исполняемые файлы плагинов Terraform. Исполняемые файлы плагинов можно загрузить с https://releases.hashicorp.com/. При установке, поиск и автоматическая загрузка плагинов Terraform отключаются. Структура каталогов в пути к плагину может быть сложной. В документации Terraform https://learn.hashicorp.com/tutorials/terraform/automate-terraform#pre-installed-plugins показана простая структура каталогов с файлами, но на самом деле структура каталогов должна соответствовать той структуре, которую вы бы увидели, если бы Terraform автоматически загрузил плагины. См. примеры ниже для вывода дерева примера каталога плагинов. |
project_path path / required | Путь к корневому каталогу Terraform с vars.tf/main.tf/etc для использования. |
provider_upgrade boolean added in community.general 4.8.0 | Позволяет Terraform init обновлять провайдеры до версий, указанных в ограничениях версий проекта. Варианты:
|
purge_workspace boolean | Работает только с state = absent Если true, рабочее пространство будет удалено после действия «terraform destroy». Рабочее пространство ‘default’ удаляться не будет. Варианты:
|
state string | Целевое состояние заданного этапа/проекта Варианты:
|
state_file path | Путь к существующему файлу состояния Terraform, используемому при построении плана. Если это не указано, будет использоваться значение по умолчанию Этот параметр игнорируется, когда указан параметр plan. |
targets list / elements=string | Список конкретных ресурсов, которые нужно нацелить в этом плане/приложении. Выбранные здесь ресурсы также автоматически включат все зависимости. По умолчанию: |
variables dictionary | Группа пар ключ-значение для переопределения переменных шаблона или переменных в файлах переменных. По умолчанию разрешены только строковые и числовые значения, которые передаются без кавычек. Поддерживаются сложные структуры переменных (списки, словари, числа и булевы значения) для отражения синтаксиса переменных terraform, когда Целые числа или числа с плавающей точкой Ansible отображаются как числа Terraform. Строки Ansible отображаются как строки Terraform. Словари Ansible отображаются как объекты Terraform. Списки Ansible отображаются как списки Terraform. Булевы значения Ansible отображаются как булевы значения Terraform. Примечание Пароли, переданные в качестве переменных, будут видны в выводе журнала. Убедитесь, что вы используете |
variables_files aliases: variables_file list / elements=path | Путь к файлу переменных для Terraform, чтобы заполнить конфигурации TF. Можно принять список путей к нескольким файлам переменных. |
workspace string | Рабочий стол terraform для работы. Это устанавливает переменную среды По умолчанию: |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Может работать в режиме |
diff_mode | Поддержка: полная добавлен в community.general 8.3.0 | Вернёт подробности о том, что изменилось (или, возможно, должно измениться в |
Примечания
Примечание
- Чтобы просто запустить
terraform plan, используйте режим check.
Примеры
- name: Basic deploy of a service
community.general.terraform:
project_path: '{{ project_dir }}'
state: present
- name: Define the backend configuration at init
community.general.terraform:
project_path: 'project/'
state: "{{ state }}"
force_init: true
backend_config:
region: "eu-west-1"
bucket: "some-bucket"
key: "random.tfstate"
- name: Define the backend configuration with one or more files at init
community.general.terraform:
project_path: 'project/'
state: "{{ state }}"
force_init: true
backend_config_files:
- /path/to/backend_config_file_1
- /path/to/backend_config_file_2
- name: Disable plugin discovery and auto-download by setting plugin_paths
community.general.terraform:
project_path: 'project/'
state: "{{ state }}"
force_init: true
plugin_paths:
- /path/to/plugins_dir_1
- /path/to/plugins_dir_2
- name: Complex variables example
community.general.terraform:
project_path: '{{ project_dir }}'
state: present
complex_vars: true
variables:
vm_name: "{{ inventory_hostname }}"
vm_vcpus: 2
vm_mem: 2048
vm_additional_disks:
- label: "Third Disk"
size: 40
thin_provisioned: true
unit_number: 2
- label: "Fourth Disk"
size: 22
thin_provisioned: true
unit_number: 3
force_init: true
### Example directory structure for plugin_paths example
# $ tree /path/to/plugins_dir_1
# /path/to/plugins_dir_1/
# └── registry.terraform.io
# └── hashicorp
# └── vsphere
# ├── 1.24.0
# │ └── linux_amd64
# │ └── terraform-provider-vsphere_v1.24.0_x4
# └── 1.26.0
# └── linux_amd64
# └── terraform-provider-vsphere_v1.26.0_x4
Значения возврата
Общие значения возврата документированы здесь, следующие — поля, уникальные для данного модуля:
Ключ | Описание |
|---|---|
command строка | Полная Возвращаемое значение: всегда Пример: |
outputs сложный тип | Словарь всех выходных данных TF по их назначенным именам. Используйте Возвращаемое значение: при успехе Пример: |
|
sensitive логическое |
Указано ли Terraform это значение как конфиденциальное Возвращаемое значение: всегда |
|
type строка |
Тип значения (строка, целое число и т. д.) Возвращаемое значение: всегда |
|
value строка |
Значение выходного параметра, интерполированное Terraform Возвращаемое значение: всегда |
stdout строка | Полный Возвращаемое значение: всегда Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/terraform_module.html