0

我有一个案例,将变量标记为机密在发布任务中失去了价值,请允许我进一步详细说明。

请在下面找到 Terraform 服务主体的屏幕截图

在此处输入图像描述

上述一个作为变量在管道中可用。

以他们是秘密和锁定的场景为例。

在此处输入图像描述

现在,运行管道,它报告未设置所需的变量。

在此处输入图像描述

我添加了一个步骤来回显这些变量,只是为了看看我是否能看到它们,这里是 Release 任务: 在此处输入图像描述

我“假设” *** 表示实际的回声,所以他们在回声语句中用词。

无法理解为什么行为不同:

  1. 在纯文本中,它们在管道中可用
  2. 当标记为机密时,它们不可用。

如何使它们在管道中可用?

更新

做这样的事情:

Terraform plan -out main.plan -var "ARM_SUBSCRIPTION_ID=$(TF_VAR_ARM_SUBSCRIPTION_ID)" "ARM_CLIENT_ID=$(TF_VAR_ARM_CLIENT_ID)" "ARM_CLIENT_SECRET=$(TF_VAR_ARM_CLIENT_SECRET)" "ARM_TENANT_ID=$(TF_VAR_ARM_TENANT_ID)" It reports: 2019-03-07T00:21:19.7692360Z ##[command]"terraform" plan -out main.plan -var "ARM_SUBSCRIPTION_ID=***" "ARM_CLIENT_ID=***" "ARM_CLIENT_SECRET=***" "ARM_TENANT_ID=***" -input=false -no-color 

得到错误

2019-03-07T00:21:19.8504985Z Too many command line arguments. Configuration path expected. 
4

1 回答 1

1

因此,要跟进这一点,如果将变量设为机密,则无法直接从任何脚本访问它。我要做的是我需要解密的任务是转到任务的环境变量部分并输入以下内容。

在此处输入图像描述

这样做是解密变量并设置一个同名的变量,以便 Terraform 等工具可以访问它。

于 2019-03-27T16:14:34.300 回答