Используем 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