Terraform Azure Pipeline 未获取工作空间

Terraform Azure Pipeline is not getting the workspace

我在 Azure Devops 中创建了一个使用 terraform 模块的管道。我已经能够 运行 我的管道,但我在检测创建的​​工作区时遇到问题。

流水线任务描述如下:

bash 脚本创建工作区以防它不存在,这里你可以看到脚本:

#!/bin/bash

echo "*************************************************************"
echo "*              Create or select workspace                   *"
echo "*************************************************************"

if [ $(terraform workspace list | grep -c "") -eq 0 ] ; then
  echo "** Create new workspace  **"
  terraform workspace new "" -no-color
else
  echo "** Switch to workspace  **"
  terraform workspace select "" -no-color
fi

我确定工作区已创建,但 Terraform 后续任务未获取工作区。

您可以看到正在设置 default 而不是 development。这是在 terraform plan 任务

2021-03-12T18:13:48.0424826Z [1m  # azurerm_resource_group.k8s[0m will be created[0m[0m
2021-03-12T18:13:48.0426216Z [0m  [32m+[0m[0m resource "azurerm_resource_group" "k8s" {
2021-03-12T18:13:48.0427763Z       [32m+[0m [0m[1m[0mid[0m[0m       = (known after apply)
2021-03-12T18:13:48.0428525Z       [32m+[0m [0m[1m[0mlocation[0m[0m = "eastus"
2021-03-12T18:13:48.0429278Z       [32m+[0m [0m[1m[0mname[0m[0m     = "default-k8s"
2021-03-12T18:13:48.0430000Z       [32m+[0m [0m[1m[0mtags[0m[0m     = {
2021-03-12T18:13:48.0430713Z           [32m+[0m [0m"environment" = "default"
2021-03-12T18:13:48.0431181Z         }
2021-03-12T18:13:48.0431534Z     }

以前有人遇到过这个问题吗?如果有,关于让 terraform 任务检测在 bash 脚本中创建的工作区有什么建议吗?

我在 bash 脚本部分遗漏了一个关键细节。这是我希望执行脚本的工作目录。

您可以在“高级”部分中看到它。如果没有该路径,脚本将 运行 放在错误的位置。

因此我有 development 工作区和资源组 development-k8s.

2021-03-12T19:40:13.7898170Z [1m  # azurerm_resource_group.k8s[0m will be created[0m[0m
2021-03-12T19:40:13.7898875Z [0m  [32m+[0m[0m resource "azurerm_resource_group" "k8s" {
2021-03-12T19:40:13.7928911Z       [32m+[0m [0m[1m[0mid[0m[0m       = (known after apply)
2021-03-12T19:40:13.7930291Z       [32m+[0m [0m[1m[0mlocation[0m[0m = "eastus"
2021-03-12T19:40:13.7954850Z       [32m+[0m [0m[1m[0mname[0m[0m     = "development-k8s"
2021-03-12T19:40:13.7955573Z       [32m+[0m [0m[1m[0mtags[0m[0m     = {
2021-03-12T19:40:13.7956351Z           [32m+[0m [0m"environment" = "development"
2021-03-12T19:40:13.7956951Z         }
2021-03-12T19:40:13.7957351Z     } 

我希望它可以为您节省我在整个过程中来回花费的几个小时 :)