Ansible 无法访问 group_vars
Ansible unable to access group_vars
我无法访问我的 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 看到的关于主机及其解析的变量的内容:
$ 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"
我无法访问我的 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 看到的关于主机及其解析的变量的内容:
$ 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"