Я новичок в Ansible и не могу понять, почему playbook не подбирает group_vars / и host_vars, которые я определил. Согласно документу:
Вы также можете добавить каталоги group_vars / и host_vars / в свой каталог playbook. Команда ansible -playbook по умолчанию ищет эти каталоги в текущем рабочем каталоге.
Моя книга воспроизведения, инвентарь и другая структура файлов довольно просты. Он должен соответствовать значению по умолчанию.
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)]