Ansible не выбирает group_vars и host_vars - PullRequest
0 голосов
/ 21 июня 2020

Я новичок в Ansible и не могу понять, почему playbook не подбирает group_vars / и host_vars, которые я определил. Согласно документу:

Вы также можете добавить каталоги group_vars / и host_vars / в свой каталог playbook. Команда ansible -playbook по умолчанию ищет эти каталоги в текущем рабочем каталоге.

Моя книга воспроизведения, инвентарь и другая структура файлов довольно просты. Он должен соответствовать значению по умолчанию.

enter image description here

Inventory file:

dummy

[spider]
s0ra
s0ra_slave

The playbook:

- name: base mix release upgrade Prod.
  hosts: spider
  gather_facts: false

  # vars_files:
  # - vars/s0ra_sup.yaml

  tasks:
    - name: check release bin
      stat:
        path: "{{ sh_lastrel }}"
      register: rel_bin

Когда я пытался запустить playbook с помощью ansible-playbook -i inventory.ini mix_upgrade.yaml, он жалуется:

PLAY [base mix release upgrade Prod.] **********************************************************************************

TASK [check release bin] ***********************************************************************************************
fatal: [s0ra]: FAILED! => {"msg": "The task includes an option with an undefined variable. 
The error was: 'sh_lastrel' is undefined\n\n
The error appears to be in 'xxx/ansible/mix_upgrade.yaml': line 19, column 7, but may\n
be elsewhere in the file depending on the exact syntax problem.\n\n
The offending line appears to be:\n\n\n
    - name: check release bin\n      ^ here\n"}

PLAY RECAP *************************************************************************************************************
s0ra                       : ok=0    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0

Но на самом деле sh_lastrel определяется как spider.yaml. Не знаю почему не загружается. Я попытался включить режим -v, но, похоже, отладочной информации нет. Приветствуются любые подсказки о причине или способах дальнейшей отладки.

Моя ansible версия выглядит так:

╰─ ansible --version                                                                                   ✔  22:01:57 
ansible 2.9.9
  config file = None
  configured module search path = ['/Users/kenchen/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/kenchen/.pyenv/versions/3.8.2/lib/python3.8/site-packages/ansible
  executable location = /Users/kenchen/.pyenv/versions/3.8.2/bin/ansible
  python version = 3.8.2 (default, May 18 2020, 00:02:00) [Clang 10.0.1 (clang-1001.0.46.4)]

1 Ответ

0 голосов
/ 21 июня 2020

Убедитесь, что group_vars/spider.yml доступен. Например,

shell> cat group_vars/spider.yml 
sh_lastrel: value of sh_lastrel defined in group_vars/spider.yml
shell> cat inventory.ini
dummy
[spider]
s0ra
s0ra_slave
shell> cat mix_upgrade.yaml 
- hosts: spider
  gather_facts: false
  tasks:
    - debug:
        var: sh_lastrel
shell> ansible-playbook -i inventory.ini mix_upgrade.yaml 

ok: [s0ra] => 
  sh_lastrel: value of sh_lastrel defined in group_vars/spider.yml
ok: [s0ra_slave] => 
  sh_lastrel: value of sh_lastrel defined in group_vars/spider.yml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...