在循环时将Ansible Debug MSG显示为列表



如何在使用调试时显示可见的寄存器调试日志作为列表。现在当它循环时它返回"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 %}

相关内容

  • 没有找到相关文章

最新更新