Python 如何迭代ansible注册值?
因此,我必须在Python 如何迭代ansible注册值?,python,json,ansible,Python,Json,Ansible,因此,我必须在ansible中运行一个命令,该命令将有多个答案,例如:运行一个命令列出所有用户的姓名和其他详细信息。结果会有人说 Carry 2/10 Barry 19/7 Harry 7/7 Jerry 11/4 Terry 7/12 Marie 13/10 我已将此结果保存到playbook任务中名为name的变量中 register: names 在遍历这些名称时,如何一次遍历一个名称并运行特定命令 当ansible接受json时,我必须将此字符串
ansible
中运行一个命令,该命令将有多个答案,例如:运行一个命令列出所有用户的姓名和其他详细信息。结果会有人说
Carry 2/10
Barry 19/7
Harry 7/7
Jerry 11/4
Terry 7/12
Marie 13/10
我已将此结果保存到playbook任务中名为name的变量中
register: names
- 在遍历这些名称时,如何一次遍历一个名称并运行特定命令
- 当ansible接受json时,我必须将此字符串转换为json文件吗
和{{{names}}行迭代这些行。
这样,每次{{item}}
var获得一行,您可以在该行上运行任何您喜欢的操作(对于start,我将检查该行是否为空)。
我还建议您查看,以便可以操纵这些字符串
您也可以对_items使用
“{names.stdout_lines}}”
如所述,如果您想使用您为使用register创建的列表变量所拥有的不同输入来运行相同的命令,您可以使用对_items执行以下操作:
- name: doing something cool
cmd: my_awesome_cmd {{ item }}
with_items:
names
你可以看看这里的文件。
如果您想对每个输入执行不同的操作,还可以使用register作为列表:
- name: doing something cool with carry
cmd: my_awesome_cmd {{ names[0] }}
- name: doing something cool with barry
cmd: my_awesome_cmd {{ names[1] }}
- name: doing something cool with harry
cmd: my_awesome_cmd {{ names[2] }}
...
您可以始终使用debug打印变量的输出,这样您就可以更好地查看结构并准确地获取所需内容。
您好,如果我想使用“名称”注册值的另一列?问题中的数字。我尝试使用我们在矩阵中命名元素时使用的逻辑,但它不起作用。有什么想法吗?我得看看你变量的输出,你能试着把它贴在这里吗?使用我建议的调试功能。我设法找到了答案!变量的输出是一个字符串,我尝试使用split(“”)函数将其拆分为wrt空格,就像在python中一样,现在我可以迭代了。我使用了我在这个问题上收到的两个答案的组合-debug:msg=“{{(names.stdout_lines[3].split()[3])}”无论如何,谢谢:)