将 salt minion id 从平面文件传递到 Jenkins 管道
Passing salt minion id to Jenkins pipeline from a flat file
我正在那里寻找一些想法。我有一组 Jenkins 管道作业。目标机器/Minion 名称作为参数传递到作业中,作业 运行 正常。我被要求通过一个文件来驱动它。 。IE。所有 minion id 或目标机器都列在一个平面文件中,我希望 Jenkins 在循环中选择机器名称并执行管道。管道在后台运行盐状态文件。任何想法,如何实现这一目标。
如果您有包含 minions 列表的文件 minions.txt
,例如
minion_01
minion_02
minion_03
当您使用 -L
/--list
选项时,salt
可以按列表定位小兵。
您可以致电test.ping
通过以下命令在这些小兵上:
salt --list `awk -vORS=, '{ print }' minions.txt | sed 's/,$/\n/'` test.ping
ORS
是 awk
中的输出记录分隔符,您要求 awk
逐行打印文件,但使用 ,
作为分隔符输出行。 sed
删除最后一个条目。
最后,您可以使用 sh """ ... """
将其包装在 Jenkins 中
我正在那里寻找一些想法。我有一组 Jenkins 管道作业。目标机器/Minion 名称作为参数传递到作业中,作业 运行 正常。我被要求通过一个文件来驱动它。 。IE。所有 minion id 或目标机器都列在一个平面文件中,我希望 Jenkins 在循环中选择机器名称并执行管道。管道在后台运行盐状态文件。任何想法,如何实现这一目标。
如果您有包含 minions 列表的文件 minions.txt
,例如
minion_01
minion_02
minion_03
当您使用 -L
/--list
选项时,salt
可以按列表定位小兵。
您可以致电test.ping
通过以下命令在这些小兵上:
salt --list `awk -vORS=, '{ print }' minions.txt | sed 's/,$/\n/'` test.ping
ORS
是 awk
中的输出记录分隔符,您要求 awk
逐行打印文件,但使用 ,
作为分隔符输出行。 sed
删除最后一个条目。
最后,您可以使用 sh """ ... """