Я создал два модуля 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
Он может использовать один и тот же модуль с разными входами.