如何在使用调试时显示可见的寄存器调试日志作为列表。现在当它循环时它返回"msg",但我想要一个如下所示的列表。
- name: Show created VM's
debug:
msg: "Created VM - {{ item.invocation.module_args.tags.hostname }}"
with_items: "{{ azure_nic.results }}"
loop_control:
label: "{{ item.invocation.module_args.tags.hostname }}"
创建如下输出:
TASK [Show created VM's] *****************************************************************************************************************************************************************************************************************************************************
task path: /home/ansible/azure_ansible/azure_playbook.yaml:120
ok: [localhost] => (item=image-201) => {
"msg": "Created VM - image-201"
}
ok: [localhost] => (item=image-202) => {
"msg": "Created VM - image-202"
}
但是我希望输出在如下所示的列表中:
"msg":
- "Created VM - image-201"
- "Created VM - image-202"
使用Jinja模板,例如
- name: Show created VM's
debug:
msg: |
{% for item in azure_nic.results %}
- Created VM - {{ item.invocation.module_args.tags.hostname }}
{% endfor %}
Q:">是否有一种方法可以将n解释为新行并显示在输出中?">
:是的。有。使用一个解释新行的回调,例如
shell> ANSIBLE_STDOUT_CALLBACK=yaml ansible-playbook playbook.yml
msg: |-
- Created VM - image-201
- Created VM - image-202
你看到的是JSON,可能是默认回调
的结果shell> ANSIBLE_STDOUT_CALLBACK=default ansible-playbook playbook.yml
{
"msg": "- Created VM - image-201n- Created VM - image-202n"
}
作为旁注。可以使用Python格式,例如
- name: Show created VM's
debug:
msg: "{{ '{}'.format(_msg) }}"
vars:
_msg: |
{% for item in azure_nic.results %}
- Created VM - {{ item.invocation.module_args.tags.hostname }}
{% endfor %}