Используем ansible-vault в плэйбуках и ролях



Зачастую при работе с Ansible требуется использовать различные аутентификационные данные. Хранить их в plain text – не самая лучшая идея. Для хранения таких данных в зашифрованном виде следует использовать ansible-vault.


Рассмотрим пример использования ansible-vault для хранения имени пользователя и пароля для подключения по ssh в том случае, когда у нас нет ключа на сервере.


Создаём vars файл


ansible-vault create vars.yml
New Vault password:
Confirm New Vault password:


заполняем данные


ansible_ssh_user: root
ansible_ssh_pass: mypasswd


Смотрим содержимое файла


$ more vars.yml 
$ANSIBLE_VAULT;1.1;AES256
34616461393939363333636466396266313363333765616661306661313662306566373039383032
3331643864656235613039303034646338396433316466660a646433663563353330653662353034
31653163656132346462653432393733343865373833386439393865646239663336656335616132
3437306634656634340a646364346635343161363230313735363136313338616338663663643533
61366438373166376438333261306432343162653137353035323663616138663333623932323630
32336537646263613235366132396665373435323266633933373636633434396534333434363035
303537306466373236366561316534643330


Чтобы посмотреть или изменить данные


ansible-vault view vars.yml
ansible-vault edit vars.yml


Добавляем vars.yml в плейбук


- hosts: all
gather_facts: true
vars_files:
- vars.yml
tasks:
- debug: var=[ansible_kernel,ansible_distribution,ansible_dns,ansible_date_time.tz,ansible_date_time]


Исполняем плейбук


ansible-playbook -i my.inv get_info.yml --ask-vault-pass 
Vault password:


Использование для group_vars и host_vars


Когда нам нужны разные данные для разных групп и хостов, мы также создаём файлы переменных согласно требуемой конфигурации с помощью ansible-vault, как было показано выше:


group_vars/
linux.yml # названия фалов соответвуют названию групп
db.yml # в inventory
host_vars/
primary_mysql.yml # названия файлов соответвуют названию хостов
primary_web.yml # в inventory


Есть вопрос? Напишите в комментариях!


Добавить комментарий

Автору будет очень приятно получить обратную связь.

Комментариев 0