- Создана полноценная роль 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
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | |
| # Задачи для развертывания DinD стека
 | |
| # Автор: Сергей Антропов
 | |
| # Сайт: https://devops.org.ru
 | |
| 
 | |
| - name: Create stack directory
 | |
|   file:
 | |
|     path: "{{ dind_stack_dir }}"
 | |
|     state: directory
 | |
|     mode: '0755'
 | |
| 
 | |
| - name: Generate docker-compose.yml
 | |
|   template:
 | |
|     src: docker-compose.yml.j2
 | |
|     dest: "{{ dind_stack_dir }}/{{ dind_compose_file }}"
 | |
|     mode: '0644'
 | |
| 
 | |
| - name: Deploy stack on DinD
 | |
|   community.docker.docker_compose_v2:
 | |
|     project_src: "{{ dind_stack_dir }}"
 | |
|     state: present
 | |
|     docker_host: "{{ docker_host }}"
 | |
|   vars:
 | |
|     docker_host: "tcp://{{ inventory_hostname }}:2375"
 | |
| 
 | |
| - name: Display stack status
 | |
|   community.docker.docker_container:
 | |
|     docker_host: "{{ docker_host }}"
 | |
|     name: "{{ item }}"
 | |
|     state: started
 | |
|   loop:
 | |
|     - "{{ dind_stack_dir }}_web_1"
 | |
|     - "{{ dind_stack_dir }}_cache_1"
 | |
|     - "{{ dind_stack_dir }}_db_1"
 | |
|   ignore_errors: true
 | |
|   register: stack_containers
 | |
| 
 | |
| - name: Show running containers
 | |
|   debug:
 | |
|     msg: "Running containers: {{ stack_containers.results | map(attribute='item') | list }}"
 |