我无法访问我的group_vars。
我拥有清单文件的当前目录
[ansible@akashd1c inventory]$ pwd
/home/ansible/inventory
在清单中创建的group_vars目录
[ansible@akashd1c inventory]$ ls
group_vars inventory
在group_vars内部创建的labservers文件
[ansible@akashd1c group_vars]$ vi labservers
添加了变量内容
[ansible@akashd1c inventory]$ cat group_vars/labservers
opt_dir: /opt
使用ping测试---效果很好
[ansible@akashd1c inventory]$ ansible akashd2c.mylabserver.com -i inventory -m ping
akashd2c.mylabserver.com | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
现在正在使用变量运行-出现错误
[ansible@akashd1c inventory]$ ansible akashd2c.mylabserver.com -i inventory -a "ls -l {{opt_dir}}"
akashd2c.mylabserver.com | FAILED | rc=-1 >>
The task includes an option with an undefined variable. The error was: 'opt_dir' is undefined
我尝试更改ansible.cfg库存日志-仍然无法正常工作。
#inventory = /home/ansible/inventory/inventory
已更新文件为yml文件
[ansible@akashd1c group_vars]$ ls
labservers.yml
[ansible@akashd1c group_vars]$ cat labservers.yml
---
opt_dir: /opt
库存
[ansible@akashd1c inventory]$ cat inventory
akashd2c ansible_host=akashd2c.mylabserver.com
[labserver]
akashd2c.mylabserver.com
akashd3c.mylabserver.com
您库存中的组是labserver
,但group_vars
文件名是labservers.yml
,复数
更改一个或另一个以匹配
将来,您可以非常轻松地使用ansible-inventory -i ./inventory --list
来验证ansible对主机及其解析的var的看法:
$ echo 'opt_dir: /opt' > inventory/group_vars/labservers.yml
$ ansible-inventory -i ./inventory --list
{
"_meta": {
"hostvars": {
"akashd2c": {
"ansible_host": "akashd2c.mylabserver.com"
}
}
$ echo 'opt_dir: /opt' > inventory/group_vars/labserver.yml
$ ansible-inventory -i ./inventory --list
{
"_meta": {
"hostvars": {
"akashd2c": {
"ansible_host": "akashd2c.mylabserver.com"
},
"akashd2c.mylabserver.com": {
"opt_dir": "/opt"