Назад | Перейти на главную страницу

Terraform - как использовать несколько модулей для создания временных ресурсов

Я создал два модуля Terraform, каждый из которых создает простой экземпляр AWS, а затем инициализирует на нем некоторое программное обеспечение с помощью Ansible playbook. Каждый модуль работает правильно при запуске terraform apply в каталоге модулей.

Как бы вы скомбинировали эти два модуля в сценарии оболочки, чтобы создать оба экземпляра, запустить несколько тестов, а затем уничтожить ресурсы.

На мой взгляд, сценарий оболочки был бы таким:

terraform apply --reference=module1-dir --state=module1-state
terraform apply --reference=module2-dir --state=module2-state
<run some other scripts ...>
terraform destroy --reference=module1-dir --state=module1-state
terraform destroy --reference=module2-dir --state=module2-state

Это правильный способ сделать это? Поддерживает ли Terraform ссылку на другой каталог для извлечения файлов для запуска?

Вы можете использовать terraform для нацеливания на определенный модуль в каталоге. Итак, если вы знаете, мне нужны два модуля

module "one" {}
module "two" {}

Вы можете запустить terraform apply -target module.one -target module.two

Он может использовать один и тот же модуль с разными входами.