Files
bgp-server/DEPLOY.md
T
2025-07-11 19:24:43 +07:00

7.1 KiB

Развертывание BGP сервера на Ubuntu 24.04

Клонирование репозитория

1. Клонирование с веткой bird

# Клонирование репозитория с веткой bird
git clone -b bird <repository-url> bgp-server

# Переход в директорию проекта
cd bgp-server

2. Альтернативные способы клонирования

Если ветка bird существует:

# Клонирование с указанием ветки
git clone -b bird https://github.com/username/bgp-server.git

# Или клонирование и переключение на ветку
git clone https://github.com/username/bgp-server.git
cd bgp-server
git checkout bird

Если нужно создать ветку bird:

# Клонирование основного репозитория
git clone https://github.com/username/bgp-server.git
cd bgp-server

# Создание и переключение на ветку bird
git checkout -b bird

# Добавление всех файлов
git add .

# Коммит изменений
git commit -m "Initial BGP server implementation"

# Отправка ветки на сервер
git push origin bird

3. Проверка клонирования

# Проверка текущей ветки
git branch

# Проверка содержимого
ls -la

# Проверка статуса git
git status

Установка на сервере

1. Подготовка системы

# Обновление системы
sudo apt update && sudo apt upgrade -y

# Установка необходимых пакетов
sudo apt install -y python3 python3-pip git curl wget

2. Клонирование и установка

# Клонирование репозитория (замените на ваш URL)
git clone -b bird https://github.com/username/bgp-server.git
cd bgp-server

# Проверка файлов
ls -la

# Сделать скрипт установки исполняемым
chmod +x install.sh

# Запуск установки
sudo ./install.sh

3. Настройка после установки

# Настройка IP адреса и ASN
sudo nano /etc/bird/bird.conf
# Измените:
# router id YOUR_SERVER_IP;
# local as YOUR_ASN;

# Настройка префиксов
sudo nano /opt/bgp-server/data/prefixes.txt
# Добавьте ваши префиксы

# Загрузка префиксов
python3 /opt/bgp-server/scripts/load_prefixes.py

# Проверка статуса
python3 /opt/bgp-server/scripts/monitor.py

Примеры команд для разных репозиториев

GitHub

git clone -b bird https://github.com/username/bgp-server.git

GitLab

git clone -b bird https://gitlab.com/username/bgp-server.git

Bitbucket

git clone -b bird https://bitbucket.org/username/bgp-server.git

SSH (если настроен ключ)

git clone -b bird git@github.com:username/bgp-server.git

Автоматическое развертывание

Скрипт автоматического развертывания

Создайте файл deploy.sh:

#!/bin/bash

# Автоматическое развертывание BGP сервера
REPO_URL="https://github.com/username/bgp-server.git"
BRANCH="bird"
INSTALL_DIR="/opt/bgp-server-deploy"

echo "Начинаем развертывание BGP сервера..."

# Создание директории
sudo mkdir -p $INSTALL_DIR
cd $INSTALL_DIR

# Клонирование репозитория
echo "Клонирование репозитория..."
git clone -b $BRANCH $REPO_URL .

# Проверка успешности клонирования
if [ $? -eq 0 ]; then
    echo "Репозиторий успешно клонирован"
    
    # Запуск установки
    chmod +x install.sh
    sudo ./install.sh
else
    echo "Ошибка при клонировании репозитория"
    exit 1
fi

Использование скрипта развертывания

# Создание скрипта
nano deploy.sh

# Сделать исполняемым
chmod +x deploy.sh

# Запуск
./deploy.sh

Проверка установки

1. Проверка сервисов

# Статус BIRD сервисов
sudo systemctl status bird bird6

# Проверка портов
sudo netstat -tlnp | grep :179

# Проверка процессов
ps aux | grep bird

2. Проверка конфигурации

# Проверка синтаксиса конфигурации
sudo birdc -p /etc/bird/bird.conf
sudo bird6c -p /etc/bird/bird6.conf

# Проверка протоколов
sudo birdc show protocols

3. Проверка префиксов

# Загрузка префиксов
python3 /opt/bgp-server/scripts/load_prefixes.py

# Проверка маршрутов
sudo birdc show routes

Troubleshooting

Проблема: Не удается клонировать репозиторий

# Проверка подключения к интернету
ping -c 3 github.com

# Проверка git
git --version

# Очистка кэша git
git config --global credential.helper cache

Проблема: Ветка bird не найдена

# Просмотр доступных веток
git branch -r

# Клонирование без указания ветки
git clone https://github.com/username/bgp-server.git
cd bgp-server

# Создание локальной ветки
git checkout -b bird origin/main

Проблема: Нет прав доступа

# Настройка SSH ключей (если используете SSH)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
cat ~/.ssh/id_rsa.pub
# Добавьте ключ в настройки GitHub/GitLab

# Или используйте HTTPS с токеном
git clone https://username:token@github.com/username/bgp-server.git

Обновление репозитория

Обновление кода

# Переход в директорию проекта
cd /path/to/bgp-server

# Получение обновлений
git fetch origin

# Переключение на ветку bird
git checkout bird

# Обновление кода
git pull origin bird

# Перезапуск сервисов (если нужно)
sudo systemctl restart bird bird6

Автоматическое обновление

Создайте cron задачу для автоматического обновления:

# Редактирование crontab
crontab -e

# Добавление задачи (обновление каждый день в 2:00)
0 2 * * * cd /opt/bgp-server && git pull origin bird && sudo systemctl restart bird bird6

Готово! Теперь у вас есть полные инструкции по клонированию и развертыванию BGP сервера. 🚀