По ссылке можно найти обновленное домашнее задание к занятию "Работа с Roles". В этом задании используется другой стек технологий, позволяющий заменить ELK, в связи с запретом на установку стека ELK из официальных источников. Все новые продукты являются аналогами старых, что позволяет не только безболезненно выполнить задания, но и познакомиться с возможными будущими заменами в стандартном ELK стеке внутри той компаниий, где вы будете работать. Желаем успехов в выполнении задания!
- Создайте два пустых публичных репозитория в любом своём проекте: kibana-role и filebeat-role.
- Добавьте публичную часть своего ключа к своему профилю в github.
Наша основная цель - разбить наш playbook на отдельные roles. Задача: сделать roles для elastic, kibana, filebeat и написать playbook для использования этих ролей. Ожидаемый результат: существуют два ваших репозитория с roles и один репозиторий с playbook.
-
Создать в старой версии playbook файл
requirements.yml
и заполнить его следующим содержимым:--- - src: [email protected]:netology-code/mnt-homeworks-ansible.git scm: git version: "2.1.4" name: elastic
-
При помощи
ansible-galaxy
скачать себе эту роль.
[root@localhost roles]# ansible-galaxy install -r requirements.yml --roles-path ./
- extracting elastic to /home/alaricode/test/roles/elastic
- elastic (2.0.0) was installed successfully
- Создать новый каталог с ролью при помощи
ansible-galaxy role init kibana-role
.
[root@localhost roles]# ansible-galaxy role init kibana-role
- Role kibana-role was created successfully
[root@localhost roles]# ls
elastic kibana-role requirements.yml
- На основе tasks из старого playbook заполните новую role. Разнесите переменные между
vars
иdefault
.
[root@localhost kibana-role]# nano defaults/main.yml
[root@localhost kibana-role]# nano vars/main.yml
- Перенести нужные шаблоны конфигов в
templates
.готово
- Создать новый каталог с ролью при помощи
ansible-galaxy role init filebeat-role
.
[root@localhost roles]# ls
elastic kibana-role requirements.yml
[root@localhost roles]# ansible-galaxy role init filebeat-role
- Role filebeat-role was created successfully
[root@localhost roles]# ls
elastic filebeat-role kibana-role requirements.yml
- На основе tasks из старого playbook заполните новую role. Разнесите переменные между
vars
иdefault
.
[root@localhost filebeat-role]# ls
defaults files handlers meta README.md tasks templates tests vars
- Перенести нужные шаблоны конфигов в
templates
.
[root@localhost test]# ls roles/kibana-role/templates/
kibana.sh.j2 kibana.yml.j2
[root@localhost test]# ls roles/filebeat-role/templates/
filebeat.sh.j2 filebeat.yml.j2
[root@localhost test]#
- Описать в
README.md
обе роли и их параметры.
-
Выложите все roles в репозитории. Проставьте тэги, используя семантическую нумерацию.
-
Добавьте roles в
requirements.yml
в playbook.
[requirements.yml](https://github.com/pnadezhdin/ansible-roles/blob/main/requirements.yml)
---
- src: [email protected]:netology-code/mnt-homeworks-ansible.git
scm: git
version: "2.1.4"
name: elastic
- src: [email protected]:run0ut/kibana-role.git
scm: git
version: "1.1.0"
name: kibana
- src: [email protected]:run0ut/filebeat-role.git
scm: git
version: "1.1.0"
name: filebeat
- name: Get IPs
hosts: all
pre_tasks:
- name: Hosts IP adreses
ansible.builtin.setup:
filter:
- default_ipv4
tags: always
- name: Install Elasticsearch
hosts: elasticsearch
roles:
- elastic
tags: elastic
- name: Install Kibana
hosts: kibana
roles:
- kibana
tags: kibana
- name: Install Filebeat
hosts: filebeat
roles:
- filebeat
tags: filebeat
- Переработайте playbook на использование roles.
requirements.yml
---
- name: Get ips
hosts: all
pre_tasks:
- name: Hosts IP adresses
ansible.builtin.setup:
filter:
- default_ipv4
tags: ipv4
- name: Install Elasticsearch
hosts: elasticsearch
roles:
- elastic
tags: elastic
- name: Install Kibana
hosts: kibana
roles:
- kibana
tags: kibana
- name: Install Filebeat
hosts: filebeat
roles:
- filebeat
tags: filebeat
-
Выложите playbook в репозиторий.
[playbook.yml](https://github.com/pnadezhdin/ansible-roles/blob/main/playbook.yml)
-
В ответ приведите ссылки на оба репозитория с roles и одну ссылку на репозиторий с playbook.
[kibana-role](https://github.com/pnadezhdin/kibana-role)
[filebeat-role](https://github.com/pnadezhdin/filebeat-role)
[playbook.yml](https://github.com/pnadezhdin/ansible-roles/blob/main/playbook.yml)
- Проделайте схожие манипуляции для создания роли logstash.
- Создайте дополнительный набор tasks, который позволяет обновлять стек ELK.
- Убедитесь в работоспособности своего стека: установите logstash на свой хост с elasticsearch, настройте конфиги logstash и filebeat так, чтобы они взаимодействовали друг с другом и elasticsearch корректно.
- Выложите logstash-role в репозиторий. В ответ приведите ссылку.
Выполненное домашнее задание пришлите ссылкой на .md-файл в вашем репозитории.