Подготовка сервера CentOS Stream 9
Процесс подготовки серверов для установки компонентов системы 5А происходит в несколько этапов:
- Настройка SSH-ключей.
- Настройка сетевого экрана (Firewall).
- Установка и настройка Docker.
- Проверка работы systemd.
- Проверка наличия crontab.
- Установка и настройка FRR.
- Установка keepalived для VRRP.
- Дополнительные настройки для CentOS Stream 9.
- Типичные проблемы и их решение.
- Финальная проверка перед развёртыванием приложения.
Для каких задач используются компоненты
- SSH-ключи — обеспечивают безопасное беспарольное соединение между серверами, необходимое для автоматизации развертывания и управления компонентами балансировщика.
- Docker — используется для контейнеризации компонентов системы 5А. Это обеспечивает изоляцию, простоту обновления и единообразие окружения на всех поддерживаемых ОС.
- systemd — служит init-системой для управления сервисами (Docker, FRR), их автозапуском и контролем состояния.
- crontab — планировщик задач, используемый для выполнения регулярных операций (ротация логов, проверки состояния, обновления маршрутов).
- FRR (Free Range Routing) — обеспечивает динамическую маршрутизацию по протоколам BGP, OSPF, VRRP, BFD. Эти протоколы необходимы для отказоустойчивой связности сетевых агентов балансировщика.
1. Настройка SSH-ключей
Для обеспечения безопасного и беспарольного доступа между серверами необходимо настроить SSH-ключи.
CentOS Stream 9
- Установите пакет
openssh-clients:sudo dnf install openssh-clients -y - Создайте SSH-ключ:
ssh-keygen -t rsa -b 4096 - Скопируйте публичный ключ:
ssh-copy-id user@server_ip - Проверьте подключение:
ssh user@server_ip
2. Настройка сетевого экрана (Firewall)
Перед установкой компонентов системы 5А необходимо открыть порты на всех серверах в соответствии с требованиями, описанными в документе «Требования к серверам» (раздел «Настройка сетевого экрана», Таблицы 1 и 2). Убедитесь, что разрешены как входящие, так и исходящие соединения согласно матрице взаимодействий.
Для CentOS Stream 9 примеры открытия портов приведены в разделе 8 данного документа.
Если вы используете firewalld, после настройки всех правил не забудьте выполнить sudo firewall-cmd --reload.
3. Установка и настройка Docker
CentOS Stream 9
- Установите утилиту
dnf config-manager, если она не установлена:sudo dnf install dnf-plugins-core -y - Добавьте официальный репозиторий Docker:
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - Установите Docker Engine:
sudo dnf install docker-ce docker-ce-cli containerd.io -y - Запустите Docker и добавьте его в автозагрузку:
sudo systemctl enable --now docker - Добавьте пользователя в группу
docker:sudo usermod -aG docker $USERВажно: После выполнения
usermodвыйдите из системы и зайдите снова, или выполнитеnewgrp dockerдля текущей сессии. - Проверьте версию Docker:
docker --version
4. Проверка работы systemd
На всех целевых ОС в качестве init-системы используется systemd. Для проверки его работоспособности выполните следующие команды на каждом сервере:
-
Убедитесь, что systemd является init-системой. Выполните команду:
ps -p 1 -o comm=Ожидаемый вывод:
systemd. Если выводinitилиsysvinit, значит, systemd не используется. -
Убедитесь, что система загружена не в аварийном режиме. Выполните команду:
systemctl get-defaultОжидаемый вывод:
multi-user.targetилиgraphical.target. Если выводrescue.targetилиemergency.target, верните систему в обычный режим:sudo systemctl set-default multi-user.target sudo reboot
5. Проверка наличия crontab
Для планирования регулярных задач система 5А использует cron. Убедитесь, что утилита crontab установлена и доступна.
CentOS Stream 9
- Проверьте доступность
crontab:sudo crontab -l - Если команда не найдена, установите пакет
cronie:sudo dnf install cronie -y - Запустите службу crond:
sudo systemctl enable --now crond
6. Установка и настройка FRR
CentOS Stream 9
- Установите репозиторий EPEL:
sudo dnf install epel-release -y - Добавьте официальный репозиторий FRR для RHEL 9:
sudo dnf install https://rpm.frrouting.org/repo/frr-10-repo.el9.noarch.rpm -y - Установите FRR:
sudo dnf install frr frr-pythontools -y - Включите необходимых демонов в файле
/etc/frr/daemons:Установите:sudo nano /etc/frr/daemonszebra=yes bgpd=yes ospfd=yes vrrpd=yes bfdd=yes - Создайте файлы конфигурации и настройте права:
sudo touch /etc/frr/frr.conf sudo touch /etc/frr/vtysh.conf sudo chown -R frr:frr /etc/frr sudo bash -c 'chmod 640 /etc/frr/*.conf' - Запустите FRR:
sudo systemctl enable --now frr - Проверьте через
vtysh:Внутриsudo vtyshvtyshвыполните:show running-config show ip route show ip bgp summary show ip ospf neighbor show vrrp exit
Альтернативный способ (сборка из исходников) – если установка из репозиториев невозможна, используйте инструкцию для Astra SE 1.8, адаптировав установку зависимостей через dnf.
7. Установка keepalived для VRRP
Для обеспечения отказоустойчивости VIP-адресов по протоколу VRRP необходимо установить keepalived на каждый агент балансировки.
Минимальная версия: keepalived ≥ 2.2 (требуется для поддержки VRRPv3 с дробным интервалом анонсов, unicast-режима и корректной работы nopreempt).
Проверка версии после установки:
keepalived --version
# Ожидается: 2.2.x или новееУстановка (CentOS Stream 9):
sudo dnf install -y keepalivedСервис keepalived не нужно запускать или включать в автозагрузку вручную. Его конфигурацией и жизненным циклом управляет агент системы «Балансировщик 5А».
8. Дополнительные настройки для CentOS Stream 9
Настройка SELinux
SELinux включён по умолчанию и может блокировать работу компонентов 5А. Для упрощения настройки рекомендуется отключить SELinux:
- Временно отключите:
sudo setenforce 0 - Постоянно отключите:
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config - Перезагрузите систему:
sudo reboot
Настройка firewalld
Общее требование: Перед открытием портов ознакомьтесь с полным списком необходимых портов в документе «Требования к серверам» (Таблицы 1 и 2). Ниже приведены примеры для основных портов системы и портов FRR.
Откройте порты, необходимые для работы FRR (BGP 179/tcp, OSPF 89/tcp, VRRP 112/tcp), а также базовые порты системы 5А (веб-интерфейс, API, БД):
# Порты для FRR
sudo firewall-cmd --permanent --add-port=179/tcp
sudo firewall-cmd --permanent --add-port=89/tcp
sudo firewall-cmd --permanent --add-port=112/tcp
# Основные порты системы 5А (пример, полный список см. в требованиях)
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo firewall-cmd --permanent --add-port=5432/tcp
# Применить изменения
sudo firewall-cmd --reload
# Проверить открытые порты
sudo firewall-cmd --list-ports9. Типичные проблемы и их решение
| Проблема | Решение |
|---|---|
vtysh: Can't open configuration file | Не создан vtysh.conf или неправильные права. Выполните шаг 6 (создание файлов и настройка прав: sudo touch /etc/frr/frr.conf /etc/frr/vtysh.conf && sudo chown -R frr:frr /etc/frr && sudo bash -c 'chmod 640 /etc/frr/*.conf'). |
FRR не стартует (systemctl status frr показывает ошибку) | Проверьте, что в /etc/frr/daemons включены только нужные демоны: zebra=yes, bgpd=yes, ospfd=yes, vrrpd=yes, bfdd=yes. Остальные оставьте no. Также проверьте синтаксис frr.conf. |
Ошибка прав на /etc/frr/*.conf | Выполните sudo chown -R frr:frr /etc/frr && sudo bash -c 'chmod 640 /etc/frr/*.conf' (шаг 6). |
10. Финальная проверка перед развёртыванием приложения
Убедитесь, что на каждом сервере выполнены следующие условия:
- Docker работает:
docker info(без ошибок, пользователь в группеdocker, раздел 3). - FRR запущен:
systemctl status frr(активен, нет ошибок - раздел 6). - SSH-ключи созданы и настроены (раздел 1).
- systemd используется как init (раздел 4).
- crontab доступен (раздел 5).
- Порты открыты в соответствии с требованиями: проверьте, что на всех серверах разрешены входящие соединения на порты из Таблицы 1 документа «Требования к серверам». Для быстрой проверки можно использовать команду:
(список портов замените на актуальный для вашей конфигурации).
sudo ss -tulpn | grep -E ':(443|9000|5432|50051|9090)'
Только после успешной проверки всех пунктов приступайте к установке компонентов Балансировщика 5А.