Ansible невозможно получить доступ к group_vars - PullRequest
0 голосов
/ 24 апреля 2020

У меня нет доступа к моим group_vars.

Мой текущий каталог, где у меня есть файл инвентаря

[ansible@akashd1c inventory]$ pwd
/home/ansible/inventory

создан каталог group_vars в инвентаре

[ansible@akashd1c inventory]$ ls
group_vars  inventory

созданный файл labservers внутри group_vars

[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

1 Ответ

3 голосов
/ 24 апреля 2020

Ваша группа в инвентаре: 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...