Ansible
將 -m 與全域清單一起使用時,Ansible 是否會檢查相關的 vars 文件?
我創建了一個文件,
./group_vars/all
有一條簡單的線
--- ansible_user: centos
我的庫存文件
/etc/ansible/inventory
有[centos] 10.1.38.15
但是,當我使用時,
ansible -m ping
我發現它正在嘗試與我的普通使用者建立聯繫。~/cp/ansible$ ansible -vvv centos -m ping .... stuff "msg": "Failed to connect to the host via ssh: ecarroll@10.1.38.15: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).", "unreachable": true
您可以看到它正在嘗試與
ecarroll@
而不是連接centos@
。如果我使用全域庫存, Ansible 是否-m
可以使用?./group_vars/
您還可以將
group_vars/
和host_vars/
目錄添加到您的 playbook 目錄。該ansible-playbook
命令預設在目前工作目錄中查找這些目錄。其他 Ansible 命令(例如 、ansible
等ansible-console
)**只會在清單目錄中查找group_vars/
和。host_vars/
**如果您希望其他命令從 playbook 目錄載入組和主機變數,則必須--playbook-dir
在命令行上提供該選項。如果您同時從 playbook 目錄和 inventory 目錄載入清單文件,則 playbook 目錄中的變數將覆蓋在 inventory 目錄中設置的變數。因此,您必須將這些變數提供給命令本身,您可以使用
ansible -m setup 10.1.38.15 -e ansible_user=centos
或者,
ansible -u centos -m setup 10.1.38.15