- Создана полноценная роль 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 }}"
 |