4.9 KiB
Выполнение домашнего задания по теме "8.4. Работа с Roles".
Q/A
Задание 1
Подготовка к выполнению
- (Необязательно) Познакомьтесь с
lighthouse- Создайте два пустых публичных репозитория в любом своём проекте: vector-role и lighthouse-role.
- Добавьте публичную часть своего ключа к своему профилю в github.
Заведены новые репозитории:
Задание 2
Основная часть
Наша основная цель - разбить наш playbook на отдельные roles. Задача: сделать roles для clickhouse, vector и lighthouse и написать playbook для использования этих ролей. Ожидаемый результат: существуют три ваших репозитория: два с roles и один с playbook.
Создать в старой версии playbook файл
requirements.ymlи заполнить его следующим содержимым:--- - src: git@github.com:AlexeySetevoi/ansible-clickhouse.git scm: git version: "1.11.0" name: clickhouse
Создан файл requirements.yml.
- При помощи
ansible-galaxyскачать себе эту роль.
ansible-galaxy install -r requirements.yml
Starting galaxy role install process
- extracting clickhouse to ~/.ansible/roles/clickhouse
- clickhouse (1.13) was installed successfully
Warning: Внутри роли используются тэги always, которые нужно игнорировать (--skip-tags always),
если данная роль не будет запускаться в рамках playbook.
- Создать новый каталог с ролью при помощи
ansible-galaxy role init vector-role.
ansible-galaxy role init vector-role
- Role vector-role was created successfully
- На основе tasks из старого playbook заполните новую role. Разнесите переменные между
varsиdefault.
В default перенесены все текущие переменные (версия, путь до директории с конфигурацией, конфигурация),
так как эти переменные могут быть изменены для каждого отдельно взятого playbook.
Получается, что vars на данный момент останется пустым, так как нет таких переменных,
которые необходимы только внутри роли без возможности изменить их в playbook.
- Перенести нужные шаблоны конфигов в
templates.
В templates будут унесены два шаблона:
vector.config.j2vector.service.j2
- Описать в
README.mdобе роли и их параметры.
Описание добавлена в рамках репозитория с ролью: readme.md
- Повторите шаги 3-6 для lighthouse. Помните, что одна роль должна настраивать один продукт.
Новая роль создана и расположена в репозитории Dannecron/netology-devops-ansible-lighthouse.
Плюс, добавлена новая зависимость в requirements.yml:
- src: git@github.com:Dannecron/netology-devops-ansible-lighthouse.git
scm: git
version: "1.0.1"
name: lighthouse
- Выложите все roles в репозитории. Проставьте тэги, используя семантическую нумерацию. Добавьте roles в
requirements.ymlв playbook.- Переработайте playbook на использование roles. Не забудьте про зависимости lighthouse и возможности совмещения
rolesсtasks.- Выложите playbook в репозиторий.
Playbook был переработан на использование ролей.