- Создайте два пустых публичных репозитория в любом своём проекте: elastic-role и kibana-role.
- Скачайте role из репозитория с домашним заданием и перенесите его в свой репозиторий elastic-role.
- Скачайте дистрибутив java и положите его в директорию
playbook/files/
. - Установите molecule:
pip3 install molecule
- Добавьте публичную часть своего ключа к своему профилю в github.
Наша основная цель - разбить наш playbook на отдельные roles. Задача: сделать roles для elastic, kibana и написать playbook для использования этих ролей. Ожидаемый результат: существуют два ваших репозитория с roles и один репозиторий с playbook.
- Создать в старой версии playbook файл
requirements.yml
и заполнить его следующим содержимым:--- - src: [email protected]:netology-code/mnt-homeworks-ansible.git scm: git version: "1.0.1" name: java
- При помощи
ansible-galaxy
скачать себе эту роль. Запуститеmolecule test
, посмотрите на вывод команды. - Перейдите в каталог с ролью elastic-role и создайте сценарий тестирования по умолчаню при помощи
molecule init scenario --driver-name docker
. - Добавьте несколько разных дистрибутивов (centos:8, ubuntu:latest) для инстансов и протестируйте роль, исправьте найденные ошибки, если они есть.
- Создайте новый каталог с ролью при помощи
molecule init role --driver-name docker kibana-role
. Можете использовать другой драйвер, который более удобен вам. - На основе tasks из старого playbook заполните новую role. Разнесите переменные между
vars
иdefault
. Проведите тестирование на разных дистрибитивах (centos:7, centos:8, ubuntu). - Выложите все roles в репозитории. Проставьте тэги, используя семантическую нумерацию.
- Добавьте roles в
requirements.yml
в playbook. - Переработайте playbook на использование roles.
- Выложите playbook в репозиторий.
- В ответ приведите ссылки на оба репозитория с roles и одну ссылку на репозиторий с playbook.
- Проделайте схожие манипуляции для создания роли logstash.
- Создайте дополнительный набор tasks, который позволяет обновлять стек ELK.
- В ролях добавьте тестирование в раздел
verify.yml
. Данный раздел должен проверять, что elastic запущен и возвращает успешный статус по API, web-интерфейс kibana отвечает без кодов ошибки, logstash через командуlogstash -e 'input { stdin { } } output { stdout {} }'
. - Убедитесь в работоспособности своего стека. Возможно, потребуется тестировать все роли одновременно.
- Выложите свои roles в репозитории. В ответ приведите ссылки.
Выполненное домашнее задание пришлите ссылкой на .md-файл в вашем репозитории.