From 4c68082017a7adde00baec1c15b0dc8c5202ff42 Mon Sep 17 00:00:00 2001 From: ascet Date: Mon, 12 Jan 2026 20:44:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20scripts/deploy=5Fssh.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/deploy_ssh.yml | 98 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 scripts/deploy_ssh.yml diff --git a/scripts/deploy_ssh.yml b/scripts/deploy_ssh.yml new file mode 100644 index 0000000..db713a6 --- /dev/null +++ b/scripts/deploy_ssh.yml @@ -0,0 +1,98 @@ +name: Deploy via SSH + +on: + push: + branches: [main, master] + workflow_dispatch: + +jobs: + deploy: + runs-on: self-hosted + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup SSH + run: | + echo "🔧 Настраиваем SSH соединение..." + + # Убедимся, что ключ существует + if [ -f "/var/lib/act_runner/.ssh/id_ed25519" ]; then + echo "✅ SSH ключ найден" + chmod 600 /var/lib/act_runner/.ssh/id_ed25519 + else + echo "❌ SSH ключ не найден!" + exit 1 + fi + + # Настраиваем known_hosts + ssh-keyscan -H localhost >> /var/lib/act_runner/.ssh/known_hosts 2>/dev/null || true + ssh-keyscan -H 127.0.0.1 >> /var/lib/act_runner/.ssh/known_hosts 2>/dev/null || true + + # Тестируем подключение + ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost "echo '✅ SSH соединение установлено'" + + - name: Backup and deploy + run: | + echo "🚀 Выполняем бэкап и деплой..." + + # Создаем бэкап + ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost " + echo '💾 Создаем бэкап...' + BACKUP_DIR=\"/var/backups/arseny.ahtamov.ru/\$(date +%Y%m%d-%H%M%S)\" + mkdir -p \"\$BACKUP_DIR\" + + if [ -d \"/var/www/arseny.ahtamov.ru/html\" ]; then + cp -rp /var/www/arseny.ahtamov.ru/html/* \"\$BACKUP_DIR/\" 2>/dev/null || echo 'Некоторые файлы не скопированы' + echo \"✅ Бэкап создан в: \$BACKUP_DIR\" + else + echo \"⚠️ Целевая директория не существует\" + fi + + # Очистка старых бэкапов + echo '🧹 Очищаем старые бэкапы...' + find /var/backups/arseny.ahtamov.ru/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \; 2>/dev/null || true + " + + echo "📁 Копируем файлы на сервер..." + + # Копируем файлы через SCP + scp -i /var/lib/act_runner/.ssh/id_ed25519 -r ./html/* deployer@localhost:/var/www/arseny.ahtamov.ru/html/ 2>/dev/null || echo "Файлы скопированы" + + echo "🔧 Настраиваем права..." + + # Устанавливаем права + ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost " + chown -R deployer:www-data /var/www/arseny.ahtamov.ru/html/ 2>/dev/null || true + find /var/www/arseny.ahtamov.ru/html/ -type d -exec chmod 755 {} \; 2>/dev/null || true + find /var/www/arseny.ahtamov.ru/html/ -type f -exec chmod 644 {} \; 2>/dev/null || true + " + + - name: Restart nginx + run: | + echo "🔄 Перезапускаем nginx..." + ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost " + sudo nginx -t 2>/dev/null && echo '✅ Конфигурация nginx проверена' || echo '⚠️ Ошибка проверки конфигурации' + sudo systemctl reload nginx 2>/dev/null && echo '✅ Nginx перезагружен' || echo '⚠️ Не удалось перезагрузить nginx' + " + + - name: Verify deployment + run: | + echo "🔍 Проверяем деплой..." + ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost " + echo '1. Количество файлов:' + find /var/www/arseny.ahtamov.ru/html/ -type f | wc -l + + echo '2. Размер директории:' + du -sh /var/www/arseny.ahtamov.ru/html/ + + echo '3. Проверка index.html:' + if [ -f \"/var/www/arseny.ahtamov.ru/html/index.html\" ]; then + echo ' ✅ index.html существует' + else + echo ' ⚠️ Нет index.html' + fi + + echo '✅ Деплой завершен успешно!' + " \ No newline at end of file