如何将变量映射从yaml文件传递到jenkins文件中的变量,或者只打印在文本文件中。
对于Ex:
我有test.yaml文件,它包含:
processor-create:
{
service: true
ingress: true
path: /tmp/data
},
processo-update:
{
service: false
ingress: false
path: /tmp/data
}
我将提供输入service_name:processor-create作为管道中的参数,它必须在test.yaml中查找该服务,然后无论变量具有“processor-create”它应该分配给变量还是打印到另一个文本文件中,以便我将在下一阶段将该文件作为ansible脚本的额外变量文件传递,谢谢。
你确定这是一个有效的yaml文件吗?对我来说,正确的语法必须是:
processo-update:
ingress: false
path: /tmp/data
service: false
processor-create:
ingress: true
path: /tmp/data
service: true
解析yml你可以使用snakeyaml,类似于:
@Grab('org.yaml:snakeyaml:1.17')
import org.yaml.snakeyaml.Yaml
Yaml parser = new Yaml()
map = parser.load( new File('text.yml').text )
println map[args[0]]
阅读这篇文章更详细的例子:https://groovy-lang.gitlab.io/101-scripts/basico/config_script-en.html