From 19505f0624c3a998eb1acc2f2931067f8d7e36f9 Mon Sep 17 00:00:00 2001 From: ascet Date: Mon, 12 Jan 2026 20:40:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20.gitea/workflows/deploy=5Fssh.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy_ssh.yml | 89 +++++++++++++-------------------- 1 file changed, 35 insertions(+), 54 deletions(-) diff --git a/.gitea/workflows/deploy_ssh.yml b/.gitea/workflows/deploy_ssh.yml index 42357b9..db713a6 100644 --- a/.gitea/workflows/deploy_ssh.yml +++ b/.gitea/workflows/deploy_ssh.yml @@ -17,89 +17,70 @@ jobs: run: | echo "🔧 Настраиваем SSH соединение..." - # Создаем директорию для SSH - mkdir -p ~/.ssh - chmod 700 ~/.ssh - - # Копируем приватный ключ act_runner - cp /var/lib/act_runner/.ssh/id_ed25519 ~/.ssh/ - chmod 600 ~/.ssh/id_ed25519 + # Убедимся, что ключ существует + 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 >> ~/.ssh/known_hosts - ssh-keyscan -H 127.0.0.1 >> ~/.ssh/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 ~/.ssh/id_ed25519 deployer@localhost "echo '✅ SSH соединение установлено'" + ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost "echo '✅ SSH соединение установлено'" - - name: Backup current site + - name: Backup and deploy run: | - echo "💾 Создаем бэкап..." - ssh -i ~/.ssh/id_ed25519 deployer@localhost " + 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)\" - echo \"Создаем бэкап в: \$BACKUP_DIR\" - 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 created: \$(date)\" > \"\$BACKUP_DIR/BACKUP_INFO.txt\" - echo \"From: /var/www/arseny.ahtamov.ru/html\" >> \"\$BACKUP_DIR/BACKUP_INFO.txt\" - echo \"✅ Бэкап создан в: \$BACKUP_DIR\" - echo \"📊 Файлов в бэкапе: \$(find \"\$BACKUP_DIR\" -type f | wc -l)\" else echo \"⚠️ Целевая директория не существует\" fi - " - - - name: Clean old backups - run: | - echo "🧹 Очищаем старые бэкапы..." - ssh -i ~/.ssh/id_ed25519 deployer@localhost " - # Удаляем бэкапы старше 7 дней - find /var/backups/arseny.ahtamov.ru/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \; 2>/dev/null || true - echo 'Текущие бэкапы:' - ls -la /var/backups/arseny.ahtamov.ru/ 2>/dev/null || echo 'Директория бэкапов пуста' + # Очистка старых бэкапов + echo '🧹 Очищаем старые бэкапы...' + find /var/backups/arseny.ahtamov.ru/ -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \; 2>/dev/null || true " - - name: Deploy files - run: | - echo "🚀 Начинаем деплой..." - - # Создаем временный каталог для файлов - mkdir -p /tmp/deploy_artifacts - cp -r ./html/* /tmp/deploy_artifacts/ 2>/dev/null || echo "Нет файлов для копирования" + echo "📁 Копируем файлы на сервер..." # Копируем файлы через SCP - scp -i ~/.ssh/id_ed25519 -r /tmp/deploy_artifacts/* deployer@localhost:/var/www/arseny.ahtamov.ru/html/ 2>/dev/null || echo "Некоторые файлы не скопированы" + scp -i /var/lib/act_runner/.ssh/id_ed25519 -r ./html/* deployer@localhost:/var/www/arseny.ahtamov.ru/html/ 2>/dev/null || echo "Файлы скопированы" - # Альтернативный вариант через rsync - # rsync -avz -e "ssh -i ~/.ssh/id_ed25519" ./html/ deployer@localhost:/var/www/arseny.ahtamov.ru/html/ + echo "🔧 Настраиваем права..." - echo "✅ Файлы скопированы" - - - name: Set permissions and restart nginx - run: | - echo "🔧 Устанавливаем права и перезапускаем nginx..." - ssh -i ~/.ssh/id_ed25519 deployer@localhost " - # Устанавливаем права - chown -R deployer:www-data /var/www/arseny.ahtamov.ru/html/ 2>/dev/null || 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 - - # Перезапускаем nginx через sudo - echo '🔄 Перезагружаем nginx...' - sudo nginx -t 2>&1 && echo '✅ Конфигурация nginx проверена' || echo '⚠️ Ошибка проверки конфигурации' - sudo systemctl reload nginx 2>&1 && echo '✅ Nginx перезагружен' || echo '⚠️ Не удалось перезагрузить nginx' + " + + - 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 ~/.ssh/id_ed25519 deployer@localhost " + ssh -i /var/lib/act_runner/.ssh/id_ed25519 deployer@localhost " echo '1. Количество файлов:' find /var/www/arseny.ahtamov.ru/html/ -type f | wc -l