使用tfenv确保本地和CI/CD执行环境的Terraform版本一致

犯了错

目前我负责的项目正在使用 Terraform 进行资源管理,并使用 CircleCI 进行持续集成和部署(CI/CD)。

有一天,由于需要在开发环境进行反映,我在本地执行了terraform apply而没有使用CircleCI。尽管apply本身成功了,但随后通过CircleCI执行terraform时却出现了错误。经过确认,原因是我在本地使用了比CircleCI所使用的terraform版本更新的版本来执行。根据terraform的规定,无法使用低于tfstate文件中定义的terraform版本的版本执行terraform apply。

通过升级CircleCI上的Terraform版本解决了这个问题。 解决方案可以是避免轻易地从本地执行terraform apply,但我认为最好是将本地和CircleCI上的Terraform版本保持一致。因此,可以使用tfenv来管理Terraform版本。

tfenv是什么?

tfenv是一个可以轻松切换Terraform版本的软件包管理器。更多详细信息,请参阅创建者的文章。

.terraform-version文件.

在tfenv中的特性之一是,将.terraform-version文件放在那里,然后使用文件中写明的版本。通过在存储库上进行管理,可以在本地和CI / CD执行环境中引入tfenv以统一terraform版本。

最后

这次我们介绍了tfenv。通过使用tfenv,让开发环境和执行环境的版本差异消失吧!

广告
将在 10 秒后关闭
bannerAds