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 }
我希望它可以为您节省我在整个过程中来回花费的几个小时 :)
我在 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 }
我希望它可以为您节省我在整个过程中来回花费的几个小时 :)