/ansible

Configuration Management Repo

Primary LanguageHTML

Репозиторий с плэйбуками и ролями для ansible.

Применение плэйбука: ansible-playbook -i inventory.yml servicename-playbook.yml или для установки отдельных ролей: ansible-playbook -i inventory.yml servicename-playbook.yml --tags=TAGS, где TAGS - тэги из servicename-playbook.yml.

Пример применения ролей можно увидеть в репозитории

inventory.yml

Файл содержит список групп и хостов, для которых будут применены плэйбуки. В [скобках] название группы. Ниже список хостов в этой группе. При применениии плэйбука роли будут применены к соответствующим хостам.

В начале файла описание способа подключения к хостам. В "{{таких скобках}}" описаны переменные. В данном случае vault_ansible_sudo_pass - пароль на sudo. Писать пароли открытым текстом небезопасно. Поэтому используется инструмент ansible-vault. В зашифрованном виде пароли хранятся в *_vars/*/vault.

servicename-playbook.yml

Плэйбук. В нём описаны хосты и роли, применяемые к этим хостам. В качестве hosts можно указывать как отдельный хост, так и группу из inventory.yml. Каждая роль в плйэбуке должна быть описана в отдельном модуле. Если у хоста несколько ролей - нужно описать установку этих ролей отдельными блоками в плэйбуке.

vars/

В каталогах host_vars и group_vars хранятся файлы с переменными, используемыми при деплое софта. Любые параметры должны меняться только в переменных. Роли редактируются только при острой необходимости, когда других рабочих способов не существует.

roles/

Директория с ролями. Большинство ролей взято с гитхаба с небольшими изменениями под инфраструктуру банка. Каждая роль лежит в своей директории. В большинстве случаев изменять роли не имеет смысла - они уже отлажены и работают. У каждой роли есть директория с переменными - defaults. Познакомиться с переменными для роли можно в файлах из этой директории. Сами переменные задаем глобавльно в host_vars и group_vars.

В директории host_vars есть субдиректории с именами хостов. В субдиректориях должны находиться файлы vault, в которых содержатся зашифрованные чувствительные данные, типа паролей