【发布时间】:2017-02-23 08:18:15
【问题描述】:
我正在尝试将本地环境变量传递给 Jenkins 构建的字符串参数。目前,构建是从 Github webhook 触发的,并且每次推送到 repo 时都会运行,但如果相关字符串参数未正确填充,则构建将失败。
默认参数值是空白,我要传递的值每小时更新一次,所以这个字段必须动态更新。
非常感谢任何支持。
【问题讨论】:
标签: string jenkins parameter-passing terraform
我正在尝试将本地环境变量传递给 Jenkins 构建的字符串参数。目前,构建是从 Github webhook 触发的,并且每次推送到 repo 时都会运行,但如果相关字符串参数未正确填充,则构建将失败。
默认参数值是空白,我要传递的值每小时更新一次,所以这个字段必须动态更新。
非常感谢任何支持。
【问题讨论】:
标签: string jenkins parameter-passing terraform
我建议您制作一个脚本,将 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
【讨论】: