Что такое Deployment target unreachable?
Ошибка Deployment target unreachable
возникает, когда CI/CD пайплайн не может подключиться к целевому серверу или кластеру для выполнения деплоя.
Причины возникновения
- Проблемы с сетевым подключением
- Недоступность целевого сервера
- Проблемы с аутентификацией
- Ошибки в конфигурации подключения
- Проблемы с firewall или security groups
- Ошибки в DNS разрешении
Как исправить ошибку
1. Настрой проверку доступности
1# .github/workflows/connectivity-check.yml
2name: Connectivity Check
3on: [push]
4
5jobs:
6 check-target:
7 runs-on: ubuntu-latest
8 steps:
9 - uses: actions/checkout@v3
10
11 - name: Check target availability
12 run: |
13 # Проверка доступности целевого сервера
14 if ping -c 3 ${{ secrets.TARGET_HOST }}; then
15 echo "Target is reachable"
16 else
17 echo "Target is unreachable"
18 exit 1
19 fi
20
21 - name: Check port availability
22 run: |
23 # Проверка доступности портов
24 nc -z ${{ secrets.TARGET_HOST }} 22 || exit 1
25 nc -z ${{ secrets.TARGET_HOST }} 80 || exit 1
26 echo "All required ports are open"
27
28 deploy:
29 runs-on: ubuntu-latest
30 needs: check-target
31 steps:
32 - uses: actions/checkout@v3
33 - name: Deploy
34 run: |
35 ssh ${{ secrets.SSH_USER }}@${{ secrets.TARGET_HOST }} \
36 "docker pull myapp:latest && docker-compose up -d"
2. Настрой автоматическое восстановление
1#!/bin/bash
2# target_recovery.sh
3
4TARGET_HOST="$1"
5MAX_RETRIES=5
6
7echo "Checking target availability: $TARGET_HOST"
8
9for i in {1..$MAX_RETRIES}; do
10 if ping -c 1 "$TARGET_HOST" > /dev/null 2>&1; then
11 echo "Target is reachable on attempt $i"
12 exit 0
13 else
14 echo "Target unreachable on attempt $i"
15 sleep 30
16 fi
17done
18
19echo "Target remains unreachable after $MAX_RETRIES attempts"
20exit 1
Лучшие практики
- Проверяй доступность перед деплоем
- Настрой мониторинг целевых серверов
- Используй health checks
- Настрой автоматическое восстановление