Ansible可以在不使用add_host模块的情况下匹配传递的主机参数。可以使用动态主机文件和组合变量来实现这一目的。下面是一个示例解决方法:
all:
hosts:
server1:
ansible_host: 192.168.0.1
server2:
ansible_host: 192.168.0.2
- name: Example playbook
hosts: all
gather_facts: false
tasks:
- name: Print host information
debug:
msg: "Hostname: {{ inventory_hostname }}, IP: {{ hostvars[inventory_hostname]['ansible_host'] }}"
在这个示例中,我们使用inventory_hostname变量获取当前主机的主机名,使用hostvars变量获取当前主机的ansible_host变量,即传递的主机参数。
ansible-playbook -i hosts.yml playbook.yml
运行上述命令后,Ansible将会匹配hosts.yml中的主机参数,并在执行playbook时使用这些参数。
通过这种方式,我们可以在不使用add_host模块的情况下,实现对传递的主机参数的匹配和使用。