【问题标题】:Populate Jenkins String Parameter Dynamically from Terraform Template从 Terraform 模板动态填充 Jenkins 字符串参数
【发布时间】:2017-02-23 08:18:15
【问题描述】:

我正在尝试将本地环境变量传递给 Jenkins 构建的字符串参数。目前,构建是从 Github webhook 触发的,并且每次推送到 repo 时都会运行,但如果相关字符串参数未正确填充,则构建将失败。

默认参数值是空白,我要传递的值每小时更新一次,所以这个字段必须动态更新。

非常感谢任何支持。

【问题讨论】:

    标签: string jenkins parameter-passing terraform


    【解决方案1】:

    我建议您制作一个脚本,将 terraform 状态文件中的 output 值转储到 ini 文件(或 yaml,或任何您可以操作的东西)中,一旦 terraform 发生更改并在期间加载该文件的内容詹金斯的工作。有很多考虑因素(如安全性、一致性),甚至还有terraform output 命令。

    本质上,脚本执行以下操作:

    #!/bin/sh
    
    json_lines=$(jq -r '.modules[] | select(.path == ["root"]) | .outputs | tojson' terraform.tfstate)
    
    for json_line in $json_lines; do
        ini_values=$(echo $json_line | jq -r '. | to_entries | map("\(.key)=\(.value.value|tostring)") | .[]')
    
        if [[ -n $ini_values ]]; then
            cat <<EOF  >> terraform_outputs.ini
    [terraform]
    $ini_values
    EOF
        fi
    done
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多