如何测试除试验和错误之外的terraform模板

Sah*_*has 3 terraform

我正在使用Terraform创建云资源.在配置之后,预期每个资源都处于特定的期望状态.例如,当我创建Google Cloud Bucket时,我希望自动应用某些权限.所以,我的计划包含了必要的代码,但我想确保无论在申请之前这都是有效的.有没有可以帮助的测试工具/库?

BMW*_*BMW 5

是的,我之前有同样的想法.目前,当我应用新的terraform更改时,我会使用多种方法来降低风险.

他们无法保证100%成功terraform apply,但会在您应用之前​​解决大多数问题.

  1. 验证terraform配置文件.

Terraform具有启动验证功能.但是通过子文件夹不够聪明.我创建了一个小shell函数并添加了CI/CD管道以便之前自动运行它terraform apply.

validate() {
  modules=$(find . -type f -name "*.tf" -exec dirname {} \;|sort -u)
  for m in ${modules}
  do
    (terraform validate "$m" && echo "? $m") || exit 1
  done
}
Run Code Online (Sandbox Code Playgroud)

当然,terraform fmt在你提交改变之前做的也不错.

  1. 地形计划

@Martin Atkins已经解释过了,terraform.io有关于这个命令的详细信息.

  1. 运行自动化测试厨房.

这是测试Terraform配置的测试Kitchen插件

https://github.com/newcontext-oss/kitchen-terraform

这是一个集成测试.测试将在单独的VPC中运行,与您添加的测试用例一样多.在CI/CD管道中添加自动化测试,以便在每次向主分支引发合并请求时触发自动化测试.只有在通过测试后才应用更改.