- Создана полноценная роль deploy в roles/deploy/ - Перенесена логика развертывания из site.yml в роль - Обновлен site.yml для использования роли deploy - Добавлена поддержка условного развертывания по группам Структура роли deploy: - tasks/main.yml - основные задачи - tasks/etcd.yml - развертывание ETCD - tasks/patroni.yml - развертывание Patroni - tasks/haproxy.yml - развертывание HAProxy - tasks/apps.yml - развертывание приложений - tasks/dind-stack.yml - развертывание DinD стека - templates/haproxy.cfg.j2 - конфигурация HAProxy - templates/docker-compose.yml.j2 - конфигурация DinD стека - handlers/main.yml - обработчики сервисов - defaults/main.yml - переменные по умолчанию - vars/main.yml - переменные роли - meta/main.yml - метаданные роли - README.md - документация роли Обновления в site.yml: - Упрощен до базовой установки common tools - Добавлена роль deploy с условным развертыванием - Поддержка развертывания по группам (etcd, patroni, haproxy, apps) Новые команды: - make role info NAME=deploy - информация о роли - make role deploy - развертывание ролей с inventory Преимущества: - Модульная архитектура с разделением ответственности - Условное развертывание по группам хостов - Переиспользуемые компоненты (ETCD, Patroni, HAProxy) - Шаблоны для конфигурации сервисов - Обработчики для перезапуска сервисов - Подробная документация роли Автор: Сергей Антропов Сайт: https://devops.org.ru
50 lines
1.2 KiB
YAML
50 lines
1.2 KiB
YAML
---
|
|
# Основной playbook для универсальной лаборатории
|
|
# Автор: Сергей Антропов
|
|
# Сайт: https://devops.org.ru
|
|
|
|
- name: Base deps
|
|
hosts: all
|
|
become: true
|
|
tasks:
|
|
- name: Update apt cache (Debian)
|
|
apt:
|
|
update_cache: true
|
|
when: ansible_os_family == 'Debian'
|
|
changed_when: false
|
|
|
|
- name: Update yum cache (RHEL)
|
|
yum:
|
|
update_cache: true
|
|
when: ansible_os_family == 'RedHat'
|
|
changed_when: false
|
|
|
|
- name: Common tools
|
|
package:
|
|
name:
|
|
- curl
|
|
- jq
|
|
- ca-certificates
|
|
- iproute2
|
|
- iputils-ping
|
|
- procps
|
|
- net-tools
|
|
- sudo
|
|
- vim
|
|
- wget
|
|
- unzip
|
|
state: present
|
|
|
|
# Развертывание инфраструктуры через роль deploy
|
|
- name: Deploy infrastructure
|
|
hosts: all
|
|
become: true
|
|
roles:
|
|
- role: deploy
|
|
vars:
|
|
deploy_enabled: true
|
|
etcd_enabled: "{{ 'etcd' in group_names }}"
|
|
patroni_enabled: "{{ 'patroni' in group_names }}"
|
|
haproxy_enabled: "{{ 'haproxy' in group_names }}"
|
|
apps_enabled: "{{ 'apps' in group_names }}"
|