38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| # Автоматическое обновление playbook'ов при добавлении новых ролей
 | |
| # Автор: Сергей Антропов
 | |
| # Сайт: https://devops.org.ru
 | |
| 
 | |
| set -euo pipefail
 | |
| 
 | |
| echo "🔍 Обнаружение новых ролей..."
 | |
| 
 | |
| # Получаем список всех ролей
 | |
| ROLES=$(find roles/ -name 'main.yml' -path '*/tasks/*' | sed 's|roles/||; s|/tasks/main.yml||' | sed 's|^/||' | grep -v '^$' | tr '\n' ' ')
 | |
| 
 | |
| echo "📋 Найденные роли: $ROLES"
 | |
| 
 | |
| 
 | |
| # Обновляем roles/deploy.yml
 | |
| echo "📝 Обновление roles/deploy.yml..."
 | |
| cat > roles/deploy.yml << EOF
 | |
| ---
 | |
| # Playbook для развертывания на продакшн серверах
 | |
| # Автор: Сергей Антропов
 | |
| # Сайт: https://devops.org.ru
 | |
| 
 | |
| EOF
 | |
| 
 | |
| # Добавляем каждую роль как отдельный playbook блок
 | |
| for role in $ROLES; do
 | |
|     cat >> roles/deploy.yml << EOF
 | |
| - name: Установка роли $role
 | |
|   hosts: all
 | |
|   become: true
 | |
|   roles:
 | |
|     - $role
 | |
| EOF
 | |
| done
 | |
| 
 | |
| echo "✅ Playbook'и обновлены"
 |