Enhance Docker setup and scripts by adding default environment variables for BGP configuration, improving the update process with safe and quick update options, and implementing testing capabilities in the prefix loader script. Update start.sh to include permission checks and network connectivity validation during ExaBGP startup.
Build and Push Docker Image / build (push) Successful in 3m18s
Build and Push Docker Image / build (push) Successful in 3m18s
This commit is contained in:
+40
-2
@@ -40,8 +40,18 @@ echo "Prefixes file content:"
|
||||
cat /app/data/prefixes.txt
|
||||
echo "---"
|
||||
|
||||
# Проверка прав доступа к файлам
|
||||
echo "Checking file permissions:"
|
||||
ls -la /app/data/
|
||||
ls -la /app/scripts/
|
||||
echo "---"
|
||||
|
||||
# Генерация конфигурации из переменных окружения
|
||||
echo "Generating ExaBGP configuration from environment variables..."
|
||||
echo "Environment variables:"
|
||||
env | grep BGP_ || echo "No BGP_ variables found"
|
||||
echo "---"
|
||||
|
||||
python3 /app/scripts/generate_config.py
|
||||
|
||||
# Проверка конфигурации
|
||||
@@ -51,13 +61,29 @@ cat /app/exabgp.conf
|
||||
echo "---"
|
||||
exabgp --validate /app/exabgp.conf
|
||||
|
||||
# Тестовый запуск скрипта загрузки префиксов
|
||||
echo "Testing prefix loader script..."
|
||||
python3 /app/scripts/load_prefixes.py --test 2>&1 || echo "Prefix loader test failed (this is normal)"
|
||||
echo "---"
|
||||
|
||||
# Проверка сетевого подключения
|
||||
echo "Checking network connectivity..."
|
||||
NEIGHBOR_IP=${BGP_NEIGHBOR_IP:-192.168.1.1}
|
||||
if ping -c 1 $NEIGHBOR_IP > /dev/null 2>&1; then
|
||||
echo "Network connectivity to $NEIGHBOR_IP: OK"
|
||||
else
|
||||
echo "Warning: Cannot reach $NEIGHBOR_IP. BGP session may not establish."
|
||||
fi
|
||||
|
||||
# Запуск ExaBGP в фоновом режиме с логированием
|
||||
echo "Starting ExaBGP..."
|
||||
LOG_LEVEL=${BGP_LOG_LEVEL:-INFO}
|
||||
exabgp --log.level $LOG_LEVEL /app/exabgp.conf > /app/logs/exabgp.log 2>&1 &
|
||||
|
||||
# Запуск с подробным логированием в режиме демона
|
||||
exabgp --log.level $LOG_LEVEL --daemon /app/exabgp.conf > /app/logs/exabgp.log 2>&1 &
|
||||
EXABGP_PID=$!
|
||||
|
||||
# Сохранение PID
|
||||
EXABGP_PID=$!
|
||||
echo $EXABGP_PID > /app/logs/exabgp.pid
|
||||
|
||||
# Ожидание запуска
|
||||
@@ -66,8 +92,15 @@ sleep 5
|
||||
# Проверка статуса
|
||||
if kill -0 $EXABGP_PID 2>/dev/null; then
|
||||
echo "ExaBGP started successfully with PID: $EXABGP_PID"
|
||||
echo "Recent logs:"
|
||||
tail -10 /app/logs/exabgp.log
|
||||
else
|
||||
echo "Failed to start ExaBGP"
|
||||
echo "Full logs:"
|
||||
cat /app/logs/exabgp.log
|
||||
echo "---"
|
||||
echo "Process status:"
|
||||
ps aux | grep exabgp || echo "No exabgp process found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -84,4 +117,9 @@ cleanup() {
|
||||
trap cleanup SIGTERM SIGINT
|
||||
|
||||
# Ожидание завершения
|
||||
echo "Waiting for ExaBGP to run..."
|
||||
echo "Process status:"
|
||||
ps aux | grep exabgp || echo "No exabgp process found"
|
||||
echo "---"
|
||||
|
||||
wait $EXABGP_PID
|
||||
Reference in New Issue
Block a user