所以,我必须在ansible
中运行一个具有多个答案的命令,例如 :运行命令列出所有名称和其他详细信息用户。结果会说,
Carry 2/10
Barry 19/7
Harry 7/7
Jerry 11/4
Terry 7/12
Marie 13/10
我已将此结果保存到剧本任务中的变量名称
register: names
答案 0 :(得分:0)
您可以使用:with_lines: "{{ names }}"
每次{{ item }}
var获取一行时,就可以运行你喜欢的任何东西(为了开始我会检查该行是否为空)。
我还建议您查看ansible regex filters以便操作这些字符串。
您也可以使用with_items: "{{ names.stdout_lines }}"
作为ansible-documantation说
答案 1 :(得分:-1)
如果你想使用你用注册创建的列表变量的不同输入来运行相同的命令,你可以使用with_items进行迭代:
- name: doing something cool
cmd: my_awesome_cmd {{ item }}
with_items:
names
您可以在此处查看文档。 https://docs.ansible.com/ansible/devel/plugins/lookup/items.html
如果你想为每个输入做不同的事情,你也可以依赖于你可以使用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] }}
...
您始终可以使用调试打印出变量的输出,这样您就可以更好地查看结构,并直接获取您正在寻找的内容。 http://docs.ansible.com/ansible/latest/debug_module.html