当我以这种方式运行剧本时runrole.yml
:
ansible-playbook -i '192.168.0.7,' runrole.yml -e "ROLE=allwindows" -e "TARGETIP=192.168.0.7" -e "ansible_port=5986" --ask-vault-pass
runrole.yml
有:
- hosts: '{{TARGETIP}}'
roles:
- { role: '{{ROLE}}' }
它可以工作(即它针对 192.168.0.7 运行),但它失败了,因为我没有提供所有额外的参数
ansible_user: Administrator
ansible_password: SecretPasswordGoesHere
ansible_connection: winrm
我希望 Ansible 使用在group-vars/allwindows.yml
.
如果我将清单文件添加到组[allwindows]
主机中,它将起作用192.168.0.7
:
[allwindows]
host1
...
hostN
192.168.0.7
并使用:
ansible-playbook runrole.yml -e "ROLE=allwindows" -e "TARGETIP=192.168.0.7" -e "ansible_port=5986" --ask-vault-pass
它工作正常,因为它检测到192.168.0.7
属于一个 group allwindows
。在某些情况下,我想在不接触库存文件的情况下对主机运行角色。如何在不修改清单文件的情况下指定包含组allwindows
以使用所有变量?group_vars/allwindows.yml