Рубрики
Uncategorized

Другой подход, работающий с переменными Ansible

При использовании папок для организации Ansible Projects обычно используем подпапку host_vars для хранения … Tagged с DevOps, Ansible, SRE.

При использовании папок для организации Ansible Projects обычно используем host_vars Подпапка для хранения переменных, которые принадлежат хостам, объявленным в наших файлах инвентаризации, заканчивая чем -то подобным в наших руках:

.
├── group_vars
├── hosts
├── host_vars
│   └── host-01.yml
├── roles
│   └── webservers
│       ├── files
│       ├── tasks
│       │   └── main.yml
│       └── templates
└── webservers.yml

Здесь мы используем Хозяева Файл как наш инвентарь, который имеет только один хост, Хост-01 и хранение всех его переменных на host_vars/host-01.yml файл.

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

Со временем все переменные от всех субъектов (например, разные роли) хранятся в одном месте, поэтому это может стать довольно грязным.

Вторая проблема в том, что когда вы используете Ansible Vault Чтобы зашифровать файлы, которые содержат конфиденциальную информацию, например, пароли, у вас есть рабочий процесс, похожий на это:

  • Запустить git тянутся
  • Отредактируйте свой файл с помощью Ansible-Vault Edit $ {file}
  • Совершить свои изменения
  • Запустить git push

Но при таком подходе вы должны, что даже не меняете ничего чувствительного, связанного с облоком.

Чтобы решить эти две проблемы, вместо этого вы можете сделать папку внутри host_vars с именем вашего хоста и внутри него файлами yaml, содержащих ваши переменные. Ansible автоматически объединит их при вызове. Затем используйте хранилище только для файлов, которые имеют конфиденциальную информацию (например, мы предполагаем, что для файла host_vars/host-01/password.yml ). Вот пример:

.
├── group_vars
├── hosts
├── host_vars
│   └── host-01
│       ├── main.yml
│       └── passwords.yml
├── roles
│   └── webservers
│       ├── files
│       ├── tasks
│       │   └── main.yml
│       └── templates
└── webservers.yml

Вы можете иметь столько файлов YAML, которые вы хотите в папке, и, кстати, вам не нужно называть «main.yml».

Абрасос!

Оригинал: «https://dev.to/stefanomartins/a-better-way-to-work-with-ansible-variables-4m1o»