地形工作区 > 我们可以忽略错误吗?



我最近使用Terraform任务完成了我的第一个Azure devops管道。我阅读了关于terraform工作空间的教程,并尝试将其应用于发布管道。

  1. 在第一阶段:我有一个TF任务,它创建了一个工作区"dev",我确认它运行良好
  2. 在第二阶段:同一个任务和我创建了一个工作区"测试">

但是,当我运行第二个版本时,TF返回一个错误,指出工作区"dev"(或"test"(已经存在,这是真实和正常的。因此,在Azure Devops中,我勾选了"错误时继续"框。

正如你可能猜到的,我的所有版本都有效,但由于现有的工作区,我收到了警告。当我运行命令时,你有忽略错误的忍者技巧吗

terraform workspace new dev

也许它存在一个隐藏输出错误的参数。

我通常不希望在常规Terraform管道中看到工作区的创建。

相反,工作区要么在最初设置配置时建立一次(在正在进行的例行更新中保持不变(,要么工作区用于临时开发工作,因此可以通过直接运行terraform workspace new命令在开发人员的工作环境中手动创建。

在自动化中运行Terraform时,管道通常会从运行terraform init开始,然后运行其他命令,如terraform planterraform apply。如果需要选择非默认工作区,可以在运行任何命令之前设置环境变量TF_WORKSPACE,然后Terraform将使用该工作区进行所有操作。如上所述,在设置管道之前,您应该先建立一次工作区,这样管道就会只使用已经存在的工作区,或者如果不存在就会生成错误,提示您执行一次性设置步骤来创建它。

Terraform目前还没有"如果不存在就创建"选项,但有一个GitHub问题打开,供选择或如果不存在则创建

https://github.com/hashicorp/terraform/issues/16191

在同一条线索上,有没有提到一些变通方法

一种解决方法是

terraform workspace select $env_name || terraform workspace new $env_name

因此它将选择现有的工作空间,否则它将创建

相关内容

最新更新