Если я сбегу ansible-playbook playbooks/snapshot.yml -l my.host.net
Я хочу сослаться на VMID
переменная, которая предварительно установлена для этого идентификатора виртуальной машины хоста (например, 4321).
я обнаружил вопрос который должен был ответить на этот вопрос, однако когда я добавляю my.host.net.yml
(ниже) к host_vars
каталог в моем проекте, я получаю сообщение об ошибке ...'VMID' is undefined
при запуске playbook. Либо ansible не читает автоматически host_vars/my.host.net.yml
или у меня что-то напортачило.
---
- hosts: all
gather_facts: false
tasks:
- name: print a host variable
debug:
msg: "hostvar VMID is {{ VMID }}"
host_vars / my.host.net.yml
---
VMID: 4321
Обновление - Добавлена структура каталогов:
ansible
├── ansible.cfg
├── group_vars
├── host_vars
│ └── my.host.net.yml
├── inventories
├── playbooks
│ └── snapshot.yml
├── roles
└── tests
Для всех, кто сталкивался с этим, я поместил символические ссылки в свой playbooks
каталог. При настройке ansible я не понимал, что размещение playbooks в другом каталоге вызовет эти проблемы. Я уверен, что не хочу, чтобы сотни сценариев загромождали доступный корень, поэтому это работает. Я мог бы сделать то же самое с group_vars
как это в моих пьесах как vars_files: ../group_vars/
но пока это кажется нормальным.
ansible
├── ansible.cfg
├── group_vars
├── host_vars
│ └── my.host.net.yml
├── inventories
├── templates
├── host_vars
├── playbooks
│ ├── snapshot.yml
│ ├── templates -> ../templates
| └── host_vars -> ../host_vars
├── roles
└── tests