Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何迭代ansible注册值?_Python_Json_Ansible - Fatal编程技术网

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])}”无论如何,谢谢:)