Azure DevOps在生成主机之间传递动态分配的变量

时间:2019-02-26 09:40:37

标签: azure-devops azure-pipelines build-agent

我在vs2017-win2016构建代理上使用Azure DevOps来使用Terraform设置某些基础结构。

我想知道是否可以将动态分配的IP地址的主机的Terraform输出传递给 第二个作业正在运行其他构建代理。

我能够在第一个Job中传递它们以构建变量 BASTION_PRIV_IP = x.x.x.x BASTION_PUB_IP = 1.1.1.1

但是无法使这些变量似乎在运行ubuntu-16.04的第二个构建代理程序中被消耗 我可以传递任何静态定义的参数,例如我在作业开始之前定义的Azure资源组名称,它只是 动态分配的。

1 个答案:

答案 0 :(得分:4)

使用基于YAML的版本时,这很容易做到。 重要的是要知道变量默认情况下仅在当前作业的范围内可用。 但是,您可以将变量设置为作业的输出变量。 然后可以将此输出变量映射到第二个作业中的变量(请注意,您需要将第一个作业设置为第二个作业的依赖项。)

请参见以下链接,以获取有关如何使其正常工作的示例

https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch#set-a-multi-job-output-variable

在可视化设计器类型的构建中它也可能可行,但是我无法在我做的快速测试中使它起作用,也许您可​​以从链接的示例中得到启发。