Применение плэйбука: ansible-playbook -i inventory.yml servicename-playbook.yml
или для установки отдельных ролей:
ansible-playbook -i inventory.yml servicename-playbook.yml --tags=TAGS
, где TAGS - тэги из servicename-playbook.yml
.
Пример применения ролей можно увидеть в репозитории
Файл содержит список групп и хостов, для которых будут применены плэйбуки. В [скобках] название группы. Ниже список хостов в этой группе. При применениии плэйбука роли будут применены к соответствующим хостам.
В начале файла описание способа подключения к хостам. В "{{таких скобках}}" описаны переменные. В данном случае vault_ansible_sudo_pass
- пароль на sudo. Писать пароли открытым текстом небезопасно. Поэтому используется инструмент ansible-vault. В зашифрованном виде пароли хранятся в *_vars/*/vault
.
Плэйбук. В нём описаны хосты и роли, применяемые к этим хостам. В качестве hosts
можно указывать как отдельный хост, так и группу из inventory.yml
.
Каждая роль в плйэбуке должна быть описана в отдельном модуле. Если у хоста несколько ролей - нужно описать установку этих ролей отдельными блоками в плэйбуке.
В каталогах host_vars и group_vars хранятся файлы с переменными, используемыми при деплое софта. Любые параметры должны меняться только в переменных. Роли редактируются только при острой необходимости, когда других рабочих способов не существует.
Директория с ролями. Большинство ролей взято с гитхаба с небольшими изменениями под инфраструктуру банка. Каждая роль лежит в своей директории. В большинстве случаев изменять роли не имеет смысла - они уже отлажены и работают. У каждой роли есть директория с переменными - defaults
. Познакомиться с переменными для роли можно в файлах из этой директории. Сами переменные задаем глобавльно в host_vars
и group_vars
.
В директории host_vars есть субдиректории с именами хостов. В субдиректориях должны находиться файлы vault, в которых содержатся зашифрованные чувствительные данные, типа паролей