-
- Необязательно. Познакомьтесь с LightHouse.
- Создайте два пустых публичных репозитория в любом своём проекте: vector-role и lighthouse-role.
- Добавьте публичную часть своего ключа к своему профилю на GitHub.
Ваша цель — разбить ваш playbook на отдельные roles.
Задача — сделать roles для ClickHouse, Vector и LightHouse и написать playbook для использования этих ролей.
Ожидаемый результат — существуют три ваших репозитория: два с roles и один с playbook.
Что нужно сделать
-
Создайте в старой версии playbook файл
requirements.yml
и заполните его содержимым:--- - src: git@github.com:AlexeySetevoi/ansible-clickhouse.git scm: git version: "1.13" name: clickhouse
-
При помощи
ansible-galaxy
скачайте себе эту роль. -
Создайте новый каталог с ролью при помощи
ansible-galaxy role init vector-role
. -
На основе tasks из старого playbook заполните новую role. Разнесите переменные между
vars
иdefault
. -
Перенести нужные шаблоны конфигов в
templates
. -
Опишите в
README.md
обе роли и их параметры. Пример качественной документации ansible role по ссылке. -
Повторите шаги 3–6 для LightHouse. Помните, что одна роль должна настраивать один продукт.
-
Выложите все roles в репозитории. Проставьте теги, используя семантическую нумерацию. Добавьте roles в
requirements.yml
в playbook. -
Переработайте playbook на использование roles. Не забудьте про зависимости LightHouse и возможности совмещения
roles
сtasks
. -
Выложите playbook в репозиторий.
-
В ответе дайте ссылки на оба репозитория с roles и одну ссылку на репозиторий с playbook.
см. код.
В Terraform создаются машины на базе CentOS 7 в Yandex Cloud, в cloud-init сразу создаются соответствующие пользователи и устанавливается epel для машины с Lighthouse. Файл inventory для Ansible прокидывается через шаблон .tftpl
.
Команды для запуска Terraform стандартные: terraform init
-> terraform plan
-> terraform apply
Используется удалённый state, если он не нужен, закомментируйте строки 13-24 в файле providers.tf
Не забудьте вставить свои значения в файл personal.auto.tfvars.example
и переименовать его, убрав .example
Ключ SSH для подключения к хостам используется лежащий по адресу ~/.ssh/id_ed25519(.pub)
. Если у вас другой - создайте новый командой ssh-keygen -t ed25519
или замените его в файлах main.tf
и ansible.tf
Описание инфрастуктуры, сформированное в terraform-docs