我创建了两个 Terraform 模块,每个模块都创建了一个简单的 AWS 实例,然后使用 Ansible playbook 在其上配置了一些软件。在模块目录中运行 terraform apply 时,每个模块都可以正常工作。
如何在 shell 脚本中组合这两个模块来创建两个实例、运行一些测试,然后销毁资源。
在我看来,shell 脚本应该是这样的:
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 是否支持引用另一个目录来获取要运行的文件?
答案1
您可以使用 terraform 来定位目录中的某个模块。因此,如果您知道我需要两个模块
module "one" {}
module "two" {}
你可以运行terraform apply -target module.one -target module.two
它可以用不同的输入来获取同一个模块。