我该如何首先使用Gitlab的管道在GCP上初始化Terraform的后端状态存储桶,然后然后其余的基础架构初始化?我发现this,但不确定Gitlab的管道意味着什么。
答案 0 :(得分:0)
这始终是一个难题。我的帖子不会直接回答您的问题,但是会提供我对该主题的看法。 (太久不能发表评论了)
有点像要求使用相同的CI工具来管理拥有CI工具的服务器(例如:gitlab服务器自行管理)。
如果使用gitlab CI创建存储库,则将无法保留状态,因为对于此特定任务您将没有远程状态来存储它。这意味着您将拥有一个带有tf但没有状态的不一致资源。
如果要将其与CI集成,我建议在ci内使用gcloud cli,检查gcs是否存在以及是否不创建它。
如果您真的想使用terraform,也许只对特定资源使用带远程后端的terraform云免费层。像这样,您拥有由tf管理的所有资源,并且所有资源都带有tfstate。
答案 1 :(得分:0)
您现在可以使用另一个GitLab 13.0 (May 2020)
选项,该选项不涉及GCP。GitLab HTTP Terraform状态后端
Terraform的用户知道设置状态文件(配置到实际资源的映射,还可以跟踪其他元数据)的痛苦。
该过程包括启动一个新的Terraform项目,以及设置一个第三方后端来存储状态文件,该状态文件可靠,安全且位于git repo之外。
许多用户希望以一种更简单的方式来设置其状态文件存储,而不涉及其他服务或设置。
从GitLab 13.0开始,GitLab可用作Terraform的HTTP后端,从而无需为每个新项目分别设置状态存储。
GitLab HTTP Terraform状态后端允许以最少的配置获得无缝的体验,并且能够将状态文件存储在GitLab实例控制的位置。
可以使用Terraform的HTTP后端,利用GitLab进行身份验证来访问它们。
用户可以轻松迁移到GitLab HTTP Terraform后端,同时还可以从其本地终端访问它。
GitLab HTTP Terraform状态后端支持:
- 每个项目有多个命名状态文件
它可用于GitLab自助管理安装和GitLab.com上。
请参见documentation和issue。
此外,GitLab 13.4(在2020年9月)将在可预见的未来中为该提供程序提供支持:
拥有GitLab Terraform提供程序的所有权
我们最近received maintainer rights to the GitLab Terraform provider并计划enhance it in upcoming releases。
在过去的一个月中,我们合并了21个请求请求并关闭了31个问题,其中包括一些长期未解决的错误和缺少的功能,例如supporting instance clusters。您可以read more about the GitLab Terraform provider在Terraform文档中。
请参见Documentation和Issue。