要实现将清单中的所有主机打印为列表,并拒绝打印运行playbook的主机IP,可以使用Ansible的条件判断和Ansible Facts。
以下是一个示例的解决方案:
---
- hosts: all
gather_facts: true
tasks:
- name: Print host list
debug:
msg: "{{ groups['all'] | difference([ansible_hostname]) }}"
在上述示例中,我们使用了Ansible的debug模块来打印主机列表。groups['all']
表示清单中的所有主机。ansible_hostname
是运行playbook的主机的主机名。我们使用 difference()
函数来从主机列表中排除运行playbook的主机。
运行上述playbook后,将只打印出除了运行playbook的主机之外的所有主机的列表。