К основному содержанию
команда

rollback-deploy — команда для Claude Code: откат деплоя

Проводит откат деплоя к прошлой версии: проверки, работа с базой и мониторинг после переключения.

Установить в Claude Code · Через claude-code-templates Все способы и платформы ↓
npx claude-code-templates@latest --command deployment/rollback-deploy
Открыть на GitHub

Что делает rollback-deploy

Команда ведёт агента по шагам отката: сначала оценивает масштаб сбоя и решает, откатывать или чинить вперёд, потом собирает текущее состояние — версию, теги в git, статус контейнеров и подов. Дальше идёт сам откат: kubectl rollout undo, docker service update --rollback или переключение симлинка на прошлый релиз.

Аргументы задают режим: --previous берёт предыдущую версию, --emergency включает аварийный протокол, --validate-first прогоняет проверки до переключения, --with-db добавляет работу с миграциями. Инструменты у команды ограничены Read, Edit и Bash.

Отдельный блок посвящён базе. Если с прошлого релиза накатили миграции, откат схемы может стереть данные, поэтому команда советует сначала снять бэкап и взвесить forward fix. Проверьте, есть ли у вас доступ к kubectl и к истории тегов: без них шаги отката упираются в заглушки вида «Version detection needed».

Какие задачи решает

  • откатить прод на прошлый релиз, когда новая версия ломает сервис
  • решить, чинить вперёд или откатываться, по состоянию системы
  • снять бэкап базы перед откатом миграций
  • переключить трафик через балансировщик или maintenance-режим
  • проверить здоровье эндпоинтов и время ответа после отката

Примеры запросов агенту

  • Откати деплой на предыдущую версию: /rollback-deploy --previous
  • Аварийный откат, сервис лежит: /rollback-deploy --emergency
  • Откатись к v1.2.9 вместе с миграциями: /rollback-deploy v1.2.9 --with-db

Как установить rollback-deploy

1Через claude-code-templates

npx claude-code-templates@latest --command deployment/rollback-deploy

2Вручную: положить файлы

.claude/commands/rollback-deploy.md

Вызов — /rollback-deploy. Для всех проектов — ~/.claude/commands/

Вопросы о rollback-deploy

Как установить rollback-deploy в Claude?

Запустите npx claude-code-templates@latest --command deployment/rollback-deploy, файл появится по пути .claude/commands/rollback-deploy.md.

Что делает rollback-deploy?

Проводит откат деплоя к прошлой версии: оценивает сбой, проверяет состояние, откатывает контейнеры или Kubernetes, при необходимости трогает базу и валидирует здоровье сервиса после переключения.

Что нужно проверить до отката базы?

Есть ли миграции между версиями и снят ли бэкап. Откат схемы может привести к потере данных, поэтому команда советует сначала рассмотреть forward fix.

Исходный текст

rollback-deploy.md · MIT
---
allowed-tools: Read, Edit, Bash
argument-hint: "[target-version] | --previous | --emergency | --validate-first | --with-db"
description: Rollback deployment to previous version with safety checks, database considerations, and monitoring
---

# Deployment Rollback

Rollback deployment to previous version: $ARGUMENTS

## Current Deployment State

- Current version: !`curl -s https://api.example.com/version 2>/dev/null || kubectl get deployments -o wide 2>/dev/null | head -3 || echo "Version detection needed"`
- Available versions: !`git tag --sort=-version:refname | head -5`
- Container status: !`docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" 2>/dev/null | head -5 || echo "No containers"`
- K8s deployments: !`kubectl get deployments 2>/dev/null || echo "No K8s access"`
- Health status: !`curl -sf https://api.example.com/health 2>/dev/null && echo "✅ Healthy" || echo "❌ Unhealthy"`

## Emergency Rollback Protocol

Systematic rollback procedure: $ARGUMENTS

1. **Incident Assessment and Decision**
   - Assess the severity and impact of the current deployment issues
   - Determine if rollback is necessary or if forward fix is better
   - Identify affected systems, users, and business functions
   - Consider data integrity and consistency implications
   - Document the decision rationale and timeline

2. **Emergency Response Setup**
   ```bash
   # Activate incident response team
   # Set up communication channels
   # Notify stakeholders immediately
   
   # Example emergency notification
   echo "🚨 ROLLBACK INITIATED
   Issue: Critical performance degradation after v1.3.0 deployment
   Action: Rolling back to v1.2.9
   ETA: 15 minutes
   Impact: Temporary service interruption possible
   Status channel: #incident-rollback-202401"
   ```

3. **Pre-Rollback Safety Checks**
   ```bash
   # Verify current production version
   curl -s https://api.example.com/version
   kubectl get deployments -o wide
   
   # Check system status
   curl -s https://api.example.com/health | jq .
   
   # Identify target rollback version
   git tag --sort=-version:refname | head -5
   
   # Verify rollback target exists and is deployable
   git show v1.2.9 --stat
   ```

4. **Database Considerations**
   ```bash
   # Check for database migrations since last version
   ./check-migrations.sh v1.2.9 v1.3.0
   
   # If migrations exist, plan database rollback
   # WARNING: Database rollbacks can cause data loss
   # Consider forward fix instead if migrations are present
   
   # Create database backup before rollback
   ./backup-database.sh "pre-rollback-$(date +%Y%m%d-%H%M%S)"
   ```

5. **Traffic Management Preparation**
   ```bash
   # Prepare to redirect traffic
   # Option 1: Maintenance page
   ./enable-maintenance-mode.sh
   
   # Option 2: Load balancer management
   ./drain-traffic.sh --gradual
   
   # Option 3: Circuit breaker activation
   ./activate-circuit-breaker.sh
   ```

6. **Container/Kubernetes Rollback**
   ```bash
   # Kubernetes rollback
   kubectl rollout history deployment/app-deployment
   kubectl rollout undo deployment/app-deployment
   
   # Or rollback to specific revision
   kubectl rollout undo deployment/app-deployment --to-revision=3
   
   # Monitor rollback progress
   kubectl rollout status deployment/app-deployment --timeout=300s
   
   # Verify pods are running
   kubectl get pods -l app=your-app
   ```

7. **Docker Swarm Rollback**
   ```bash
   # List service history
   docker service ps app-service --no-trunc
   
   # Rollback to previous version
   docker service update --rollback app-service
   
   # Or update to specific image
   docker service update --image app:v1.2.9 app-service
   
   # Monitor rollback
   docker service ps app-service
   ```

8. **Traditional Deployment Rollback**
   ```bash
   # Blue-Green deployment rollback
   ./switch-to-blue.sh  # or green, depending on current
   
   # Rolling deployment rollback
   ./deploy-version.sh v1.2.9 --rolling
   
   # Symlink-based rollback
   ln -sfn /releases/v1.2.9 /current
   sudo systemctl restart app-service
   ```

9. **Load Balancer and CDN Updates**
   ```bash
   # Update load balancer to point to old version
   aws elbv2 modify-target-group --target-group-arn $TG_ARN --targets Id=old-instance
   
   # Clear CDN cache if needed
   aws cloudfront create-invalidation --distribution-id $DIST_ID --paths \"/*\"
   
   # Update DNS if necessary (last resort, has propagation delay)
   # aws route53 change-resource-record-sets ...
   ```

10. **Configuration Rollback**
    ```bash\n    # Rollback configuration files\n    git checkout v1.2.9 -- config/\n    \n    # Restart services with old configuration\n    sudo systemctl restart nginx\n    sudo systemctl restart app-service\n    \n    # Rollback environment variables\n    ./restore-env-vars.sh v1.2.9\n    \n    # Update feature flags\n    ./update-feature-flags.sh --disable-new-features\n    ```\n\n11. **Database Rollback (if necessary)**\n    ```sql\n    -- EXTREME CAUTION: Can cause data loss\n    \n    -- Check migration status\n    SELECT * FROM schema_migrations ORDER BY version DESC LIMIT 5;\n    \n    -- Rollback specific migrations (framework dependent)\n    -- Rails: rake db:migrate:down VERSION=20240115120000\n    -- Django: python manage.py migrate app_name 0001\n    -- Node.js: npm run migrate:down\n    \n    -- Verify database state\n    SHOW TABLES;\n    DESCRIBE critical_table;\n    ```\n\n12. **Service Health Validation**\n    ```bash\n    # Health check script\n    #!/bin/bash\n    \n    echo \"Validating rollback...\"\n    \n    # Check application health\n    if curl -f -s https://api.example.com/health > /dev/null; then\n        echo \"✅ Health check passed\"\n    else\n        echo \"❌ Health check failed\"\n        exit 1\n    fi\n    \n    # Check critical endpoints\n    endpoints=(\n        \"/api/users/me\"\n        \"/api/auth/status\"\n        \"/api/data/latest\"\n    )\n    \n    for endpoint in \"${endpoints[@]}\"; do\n        if curl -f -s \"https://api.example.com$endpoint\" > /dev/null; then\n            echo \"✅ $endpoint working\"\n        else\n            echo \"❌ $endpoint failed\"\n        fi\n    done\n    ```\n\n13. **Performance and Metrics Validation**\n    ```bash\n    # Check response times\n    curl -w \"Response time: %{time_total}s\\n\" -s -o /dev/null https://api.example.com/\n    \n    # Monitor error rates\n    tail -f /var/log/app/error.log | head -20\n    \n    # Check system resources\n    top -bn1 | head -10\n    free -h\n    df -h\n    \n    # Validate database connectivity\n    mysql -u app -p -e \"SELECT 1;\"\n    ```\n\n14. **Traffic Restoration**\n    ```bash\n    # Gradually restore traffic\n    ./restore-traffic.sh --gradual\n    \n    # Disable maintenance mode\n    ./disable-maintenance-mode.sh\n    \n    # Re-enable circuit breakers\n    ./deactivate-circuit-breaker.sh\n    \n    # Monitor traffic patterns\n    ./monitor-traffic.sh --duration 300\n    ```\n\n15. **Monitoring and Alerting**\n    ```bash\n    # Enable enhanced monitoring during rollback\n    ./enable-enhanced-monitoring.sh\n    \n    # Watch key metrics\n    watch -n 10 'curl -s https://api.example.com/metrics | jq .'\n    \n    # Monitor logs in real-time\n    tail -f /var/log/app/*.log | grep -E \"ERROR|WARN|EXCEPTION\"\n    \n    # Check application metrics\n    # - Response times\n    # - Error rates\n    # - User sessions\n    # - Database performance\n    ```\n\n16. **User Communication**\n    ```markdown\n    ## Service Update - Rollback Completed\n    \n    **Status:** ✅ Service Restored\n    **Time:** 2024-01-15 15:45 UTC\n    **Duration:** 12 minutes of degraded performance\n    \n    **What Happened:**\n    We identified performance issues with our latest release and \n    performed a rollback to ensure optimal service quality.\n    \n    **Current Status:**\n    - All services operating normally\n    - Performance metrics back to baseline\n    - No data loss occurred\n    \n    **Next Steps:**\n    We're investigating the root cause and will provide updates \n    on our status page.\n    ```\n\n17. **Post-Rollback Validation**\n    ```bash\n    # Extended monitoring period\n    ./monitor-extended.sh --duration 3600  # 1 hour\n    \n    # Run integration tests\n    npm run test:integration:production\n    \n    # Check user-reported issues\n    ./check-support-tickets.sh --since \"1 hour ago\"\n    \n    # Validate business metrics\n    ./check-business-metrics.sh\n    ```\n\n18. **Documentation and Reporting**\n    ```markdown\n    # Rollback Incident Report\n    \n    **Incident ID:** INC-2024-0115-001\n    **Rollback Version:** v1.2.9 (from v1.3.0)\n    **Start Time:** 2024-01-15 15:30 UTC\n    **End Time:** 2024-01-15 15:42 UTC\n    **Total Duration:** 12 minutes\n    \n    **Timeline:**\n    - 15:25 - Performance degradation detected\n    - 15:30 - Rollback decision made\n    - 15:32 - Traffic drained\n    - 15:35 - Rollback initiated\n    - 15:38 - Rollback completed\n    - 15:42 - Traffic fully restored\n    \n    **Impact:**\n    - 12 minutes of degraded performance\n    - ~5% of users experienced slow responses\n    - No data loss or corruption\n    - No security implications\n    \n    **Root Cause:**\n    Memory leak in new feature causing performance degradation\n    \n    **Lessons Learned:**\n    - Need better performance testing in staging\n    - Improve monitoring for memory usage\n    - Consider canary deployments for major releases\n    ```\n\n19. **Cleanup and Follow-up**\n    ```bash\n    # Clean up failed deployment artifacts\n    docker image rm app:v1.3.0\n    \n    # Update deployment status\n    ./update-deployment-status.sh \"rollback-completed\"\n    \n    # Reset feature flags if needed\n    ./reset-feature-flags.sh\n    \n    # Schedule post-incident review\n    ./schedule-postmortem.sh --date \"2024-01-16 10:00\"\n    ```\n\n20. **Prevention and Improvement**\n    - Analyze what went wrong with the deployment\n    - Improve testing and validation procedures\n    - Enhance monitoring and alerting\n    - Update rollback procedures based on learnings\n    - Consider implementing canary deployments\n\n**Rollback Decision Matrix:**\n\n| Issue Severity | Data Impact | Time to Fix | Decision |\n|---------------|-------------|-------------|----------|\n| Critical | None | > 30 min | Rollback |\n| High | Minor | > 60 min | Rollback |\n| Medium | None | > 2 hours | Consider rollback |\n| Low | None | Any | Forward fix |\n\n**Emergency Rollback Script Template:**\n```bash\n#!/bin/bash\nset -e\n\n# Emergency rollback script\nPREVIOUS_VERSION=\"${1:-v1.2.9}\"\nCURRENT_VERSION=$(curl -s https://api.example.com/version)\n\necho \"🚨 EMERGENCY ROLLBACK\"\necho \"From: $CURRENT_VERSION\"\necho \"To: $PREVIOUS_VERSION\"\necho \"\"\n\n# Confirm rollback\nread -p \"Proceed with rollback? (yes/no): \" confirm\nif [ \"$confirm\" != \"yes\" ]; then\n    echo \"Rollback cancelled\"\n    exit 1\nfi\n\n# Execute rollback\necho \"Starting rollback...\"\nkubectl set image deployment/app-deployment app=app:$PREVIOUS_VERSION\nkubectl rollout status deployment/app-deployment --timeout=300s\n\n# Validate\necho \"Validating rollback...\"\nsleep 30\ncurl -f https://api.example.com/health\n\necho \"✅ Rollback completed successfully\"\n```\n\nRemember: Rollbacks should be a last resort. Always consider forward fixes first, especially when database migrations are involved.

© davila7 · MIT · davila7/claude-code-templates

Похожие слэш-команды

Все слэш-команды по теме «DevOps и инфраструктура» →
render-deploy Render Разбирает код проекта, собирает render.yaml и ведёт к деплою на Render. Нужен, когда приложение пора выложить в облако. CX Codex +1 559установок devops-engineer VoltAgent Community Субагент помогает разбирать и настраивать инфраструктуру, CI/CD, контейнеры и развёртывание. Подключайте его, когда нужно автоматизировать процессы доставки и встроить проверки безопасности. 7 392установок ci-cd-best-practices Mindrally Скилл задаёт правила построения CI/CD-конвейеров, стратегий развёртывания и тестов. Пригодится при настройке автоматической доставки кода через GitLab CI, GitHub Actions или Kubernetes. CX Codex +1 1 200установок devops mrgoonie Скилл для деплоя и управления инфраструктурой: Cloudflare Workers, Docker, GCP, Kubernetes. Пригодится, когда агенту нужно развернуть сервис или разобрать кластер. CX Codex +1 987установок config-scan jwynia Скилл проверяет конфигурационные файлы, Docker, Kubernetes и Terraform на небезопасные настройки. Пригодится перед выкаткой в прод. CX Codex +1 337установок gem-devops-guidelines официальный github Скилл с правилами для аудита и настройки CI/CD, Docker, Kubernetes, релизов и отката. Помогает проверить production readiness и пайплайны мобильных сборок в GitHub Copilot. 35установок

Из того же набора205

Весь набор →
add-to-changelog Добавляет запись в CHANGELOG.md по формату Keep a Changelog: версия, тип изменения, текст. Пригодится, когда релиз близко, а раздел в файле всё ещё пустой. 277установок dependency-mapper Строит граф зависимостей кода и задач, ищет циклы и считает критический путь. Пригодится перед планированием спринта или рефакторингом. 274установок rag-engineer Скилл для проектирования RAG-систем: разбивка документов, эмбеддинги, гибридный поиск и переранжирование. Пригодится, когда ответы модели упираются в качество выборки. 273установок business-scenario-explorer Слэш-команда строит несколько сценариев развития бизнеса — базовый, оптимистичный, пессимистичный и срывной — и сводит их в матрицу решений. 273установок webapp-testing Слэш-команда гоняет локальное веб-приложение в реальном браузере через Playwright: клики, формы, скриншоты, логи консоли. 259установок matplotlib Скилл для Claude по библиотеке matplotlib: строит линейные графики, скаттеры, гистограммы, тепловые карты и 3D-фигуры с экспортом в PNG, PDF и SVG. 257установок pptx-official Скилл для Claude, который берёт на себя чтение, правку и создание презентаций .pptx. Пригодится, когда файл нужно открыть, разобрать или собрать с нуля. 257установок langgraph Скилл для Claude, который помогает собирать агентов на LangGraph: состояние, ветвления, чекпоинтеры и цикл ReAct. 257установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой