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'и обновлены"
|