gpt4 book ai didi

azure - 将输出从 terraform 传递到 Azure Devops Pipeline,并在 azure 后端存储中使用状态文件

转载 作者:行者123 更新时间:2023-12-03 18:37:04 25 4
gpt4 key购买 nike

我似乎无法检索 Terraform 的公共(public) IP 地址输出,以用于 AzureDevops 中构建管道的下一步。

Terraform 状态拉取工作并输出到 json 文件,无法对输出进行 grep。

Terraform state show [options] ADDRESS 不支持 azure 后端,因此无法使用或 grep 或过滤输出

还尝试存储为文件并读取值。

resource "local_file" "foo" {
content = "foo!"
filename = "${path.module}/foo.bar"
}

data "azurerm_public_ip" "buildserver-pip" {
name = "${azurerm_public_ip.buildserver-pip.name}"
resource_group_name = "${azurerm_virtual_machine.buildserver.resource_group_name}"
}

output "public_ip_address" {
value = "${data.azurerm_public_ip.buildserver-pip.ip_address}"
}

期望公共(public) IP 地址被传递出去,以便下一步可以在 ansible playbook、bash 或 python 脚本中使用

最佳答案

基于上面的 @JleruOHeP 答案,以下解决方案将自动为 terraform 脚本提供的每个输出创建一个变量

  1. 在您的版本中创建一个 PowerShell 步骤并插入以下内联 PowerShell:
$json = Get-Content $env:jsonPath | Out-String | ConvertFrom-Json

foreach($prop in $json.psobject.properties) {
Write-Host("##vso[task.setvariable variable=$($prop.Name);]$($prop.Value.value)")
}
  • 确保您已提供环境变量 jsonPath,如下所示:
  • supply environment variable

    关于azure - 将输出从 terraform 传递到 Azure Devops Pipeline,并在 azure 后端存储中使用状态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57463677/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com