通过Jenkins ansible剧本将地图传给ansible



如何让jenkin-ansible playbook插件像在命令行上一样传递字符串列表?

ansible-playbook ... 
-e '{"package_urls": ["http...windows.exe", "http...linux.rpm", "http...babbage.steam"]}' 

在詹金斯身上,战术手册似乎为extraVars绘制了一张地图,而我的逃跑尝试还没有奏效

ansiblePlaybook (..., extraVars: [
package_urls: """["http...windows.exe", "http...linux.rpm", "http...babbage.steam"]""" )

导致以下缺少"one_answers"且未被识别为列表

... -e package_urls=["http...windows.exe", "http...linux.rpm", "http...babbage.steam"]

这样可以产生正确的命令行。playbook插件有一个额外的参数,可用于在命令行中传递各种文本。我通常将其用于"-vvv"详细程度的修改。

ansiblePlaybook ( ..., 
extras:  """-e '{"package_urls": ["http...windows.exe", "http...linux.rpm", "http...babbage.steam"]}'""")

所需的文本在不做任何修改的情况下传递到命令行,并且作业会拉入其列表。

这可能不是最佳方法,填充var文件或由剧本读取的json文件感觉像是一种更干净的方法

最新更新