Повторное использование файла хранилища Ansible в разных группах

Я хочу расширить свой текущий проект Ansible, чтобы он также поддерживал серверы Linux. Для этого я хочу повторно использовать созданный файл хранилища, но я не могу найти решение без дублирования файла хранилища.

Вот как выглядит моя текущая структура Ansible

├── ansible.cfg
├── ansible_pw.sh
├── group_vars
│   └── windows
│       ├── vault.yml
│       └── main.yml
├── inventory.yml
├── main.yml
└── roles
    ├── wait_for_host
    │   └── tasks
    │       └── main.yml
    └── install_software
        └── tasks
            └── main.yml

inventory.yml

---
all:
  children:
    windows:
      hosts:
        win-server.mycompany.com

main.yml

---
- hosts: windows
  tasks:
    - block:
      - include_role: { name: wait_for_host }
      - include_role: { name: install_software }

Playbook запускается следующим образом:

ansible-playbook main.yml -i inventory.yml --vault-password-file ./ansible_pw.sh

Моя идея состоит в том, чтобы создать новый каталог group_vars/linux, содержащий все конкретные настройки, применимые только к серверам Linux.


person jansohn    schedule 29.04.2021    source источник


Ответы (1)


При написании этого вопроса я действительно нашел изящное решение. Все общие настройки (включая файл хранилища) можно сохранить в группе по умолчанию all (см. https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#default-groups), и все настройки Windows/Linux (например, ansible_connection) можно хранить в отдельных каталогах. :

group_vars
 ├── all
 │   ├── main.yml
 │   └── vault.yml
 ├── linux
 │   └── main.yml
 └── windows
     └── main.yml
person jansohn    schedule 29.04.2021
comment
Это именно то, как это сделать. Если у вас есть другие хосты, у которых должно быть собственное хранилище, вы также можете создать дополнительные группы, так как хост может входить в несколько групп. Я думаю, вы можете принять ваш ответ;) - person toydarian; 03.06.2021