我创建了一个文件,
./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: [email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).",
"unreachable": true
您可以看到它正在尝试连接ecarroll@
而不是连接centos@
。如果我使用全局库存,Ansible 可以-m
使用吗?./group_vars/
答案1
您还可以将目录添加
group_vars/
到host_vars/
您的 playbook 目录中。该ansible-playbook
命令默认在当前工作目录中查找这些目录。其他 Ansible 命令(例如ansible
,ansible-console
等)只会寻找group_vars/
并且host_vars/
在库存目录中如果您希望其他命令从 playbook 目录加载组和主机变量,则必须--playbook-dir
在命令行上提供该选项。如果您从 playbook 目录和 inventory 目录加载 inventory 文件,playbook 目录中的变量将覆盖 inventory 目录中设置的变量。
因此,您必须向命令本身提供这些变量,您可以使用
ansible -m setup 10.1.38.15 -e ansible_user=centos
或者,
ansible -u centos -m setup 10.1.38.15