与通常的代码推送相比,在配置时将 Terraform 与 CI/CD 管道相结合是一个罕见的事件

Combining Terraform wth CI/CD pipelines when provisioning is a rare event compared to usual code pushes

您看到很多关于将 GitHub 操作与 Terraform 相结合的文章。这是有道理的,任何时候有人想在他们的基础设施中提供一些不同的东西,CI/CD 管道会增加其他手动过程的可见性和可重复性。

但有些文章听起来好像 Terraform 正在部署 任何 更改。例如,this 文章说“只要有对 src 目录的推送,它就会启动操作,让 Terraform 部署对您的网站所做的更改。”

但是,只有当您所做的更改与配置 基础架构相关时,这是否才有意义?如果对代码案例的大多数推送与供应新的基础设施无关,为什么您希望任何代码推送都触发 Terraform 作业?不是大多数代码都会推动诸如更改网站上的某些 CSS 或向后端节点脚本添加功能之类的事情。这些不需要配置新的基础设施,因为代码只是放在现有的基础设施上。

或者文章可能暗示该存储库仅专用于 Terraform。

在我的例子中,更改来自 terraform(仅)repos。这些回购协议将触发对基础设施的任何更改。在其余的实际应用程序代码中,它将始终为 Ansible-Jenkins。每次推送到 app-code 时部署 terraform 基础架构更改可能会降低应用程序的正常运行时间。在容器化应用程序的情况下,它将 Helm-kubernetes 执行应用程序位。