Подготовка серверов для установки компонентов системы

Подготовка серверов для установки компонентов системы 5А

Процесс подготовки серверов для установки компонентов системы 5А происходит в несколько этапов:

  1. Настройка SSH-ключей.

  2. Установка и настройка Docker.

  3. Проверка работы systemd.

  4. Проверка наличия crontab.

  5. Установка и настройка FRR для сетевого агента.

ℹ️

Все рекомендации по настройке применимы к операционной системе Debian и дистрибутивам, основанным на ней (Ubuntu, Astra Linux).

Настройка SSH-ключей

По умолчанию вход на целевые серверы требует данных о логине и пароле. Для работы компонентов системы 5А требуется настройка беспарольного входа на серверы с помощью SSH-ключа.

В зависимости от наличия SSH-ключа и способу подключения к целевому серверу выполните следующие действия:

Вариант 1. У вас ещё нет SSH-ключа

  • Если вы выполняете установку с сервера развертывания и подключаетесь к целевому серверу:

    1. Создайте SSH-ключ на сервере развертывания:

       # Создайте SSH-ключ:
       ssh-keygen -t rsa -b 4096
       
       # Проверьте наличие созданного ключа:
       ls -l ~/.ssh/
    2. Скопируйте публичный ключ на целевой сервер, указав в команде ниже следующие значения:

      ssh-copy-id user@server_ip
    3. Проверьте, что вход на целевой сервер выполняется без пароля:

      ssh user@server_ip
  • Если вы работаете непосредственно на целевом сервере (например, через консоль):

    ⚠️

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

    1. Создайте SSH-ключ на вашей локальной машине:

       # Создайте SSH-ключ:
       ssh-keygen -t rsa -b 4096
       
       # Проверьте наличие созданного ключа:
       ls -l ~/.ssh/
    2. Скопируйте содержимое публичного ключа (~/.ssh/id_rsa.pub) с локальной машины.

    3. На целевом сервере выполните команды:

       cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
       cp ~/.ssh/id_rsa .
       chmod 644 ./id_rsa

Вариант 2. У вас уже есть SSH-ключ

  • Если вы выполняете установку с сервера развертывания и подключаетесь к целевому серверу:

    1. Убедитесь, что у вас есть публичный и приватный файлы ключа.

      • Приватный ключ: ~/.ssh/id_rsa (или id_ed25519)
      • Публичный ключ: ~/.ssh/id_rsa.pub
    2. Скопируйте публичный ключ на целевой сервер, указав в команде ниже следующие значения:

      ssh-copy-id -i ~/.ssh/id_rsa.pub user@server_ip
  • Если вы работаете непосредственно на целевом сервере (например, через консоль):

    1. Получите публичный ключ с вашей локальной машины (например, через USB, буфер обмена, email и т.п.).

    2. На целевом сервере выполните команды:

       mkdir -p ~/.ssh
       chmod 700 ~/.ssh
       # Вставьте публичный ключ в authorized_keys
       nano ~/.ssh/authorized_keys
       chmod 600 ~/.ssh/authorized_keys

Установка и настройка Docker

Для выполнения стандартной установки Docker на целевом сервере выполните следующие шаги:

  1. Обновите пакеты системы:

    sudo apt update
  2. Установите необходимые зависимости:

    sudo apt install gnupg apt-transport-https ca-certificates curl -y
  3. Импортируйте официальный GPG-ключ Docker для проверки пакетов:

    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
  4. Добавьте репозиторий Docker в список источников APT, заменив "bookworm" на вашу версию Debian:

    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. Обновите список пакетов:

    sudo apt update
  6. Установите Docker Engine и вспомогательные пакеты:

    sudo apt install docker-ce docker-ce-cli containerd.io
  7. Проверьте успешность установки, посмотрев версию Docker:

    docker --version
  8. Добавьте текущего пользователя в группу docker и примените это изменение в текущей сессии:

    sudo usermod -aG docker $USER
    newgrp docker

Проверка работы systemd

Если на целевых серверах используется одна из рекомендуемых ОС, то systemd в них уже установлен и настроен по умолчанию при стандартной установке. Поэтому на данном этапе требуется выполнить проверку следующих моментов:

  • Проверьте, что systemd используется как init-система. Для этого выполните команду:

    ps -p 1 -o comm=

    В корректном случае ожидается вывод systemd. Если вывод init или sysvinit — значит, что systemd не используется как init-система.

  • Проверьте, что система не загружена в режиме без systemd. Такое может быть, если система загружена с параметром ядра init=/bin/bash или в rescue/emergency режиме — в таком случае systemd может не управлять службами. Для проверки уровня запуска выполните команду:

    systemctl get-default

    В корректном случае ожидается вывод:

    graphical.target   # (редко на сервере)
    multi-user.target  # ← стандарт для серверов

    Если вывод rescue.target или emergency.target, то ОС работает в аварийном режиме. Для возврата в обычный режим выполните команды:

    sudo systemctl set-default multi-user.target
    sudo reboot

Проверка наличия crontab

Система 5А использует cron для планирования регулярных задач (например, сбор метрик и т.д.). Убедитесь, что на всех целевых хостах установлена и доступна утилита crontab. Для этого выполните команду:

crontab -l
  • Если команда успешно выполняется (даже если выводит "no crontab for user"), то crontab установлен и работоспособен.

  • Если команда возвращает ошибку вида "command not found" или "crontab: command not found", необходимо установить пакет cron или cronie в зависимости от дистрибутива:

    sudo apt update
    sudo apt install cron

    После установки убедитесь, что служба cron запущена:

    sudo systemctl enable cron
    sudo systemctl start cron

Установка и настройка FRR

Для корректной работы сетевых агентов в разделе Сеть и поддержки протоколов BGP, OSPF и VRRP выполните следующие шаги:

  1. Добавьте репозиторий FRR и установите пакеты:

    curl -s https://deb.frrouting.org/frr/keys.gpg | sudo tee /usr/share/keyrings/frrouting.gpg > /dev/null
     
    # Добавление репозитория в sources.list.d
    echo deb '[signed-by=/usr/share/keyrings/frrouting.gpg]' https://deb.frrouting.org/frr bookworm frr-stable | sudo tee -a /etc/apt/sources.list.d/frr.list
     
    # Обновление списка пакетов и установка FRR
    sudo apt update
    sudo apt install frr frr-pythontools
  2. Включите демонов, необходимых для работы протоколов BGP, OSPF и VRRP:

    • Отредактируйте файл /etc/frr/daemons:
    sudo nano /etc/frr/daemons # Или используйте другой редактор, например, vim
    • Измените строки:
    bgpd=yes
    ospfd=yes
    vrrpd=yes
    bfdd=yes
  3. Проверьте наличие файла FRR-конфигурации и настройте права:

    sudo touch /etc/frr/frr.conf
    sudo chown -R frr:frr /etc/frr
    sudo chmod 640 /etc/frr/*.conf
  4. Запустите FRR или перезапустите его для применения изменений:

    sudo systemctl enable frr  # Включение автозапуска при загрузке системы
    sudo systemctl start frr   # Запуск сервиса
    sudo systemctl restart frr # Перезапуск сервиса, если нужно применить изменения
  5. Проверьте корректность конфигурации для vtysh:

    sudo vtysh
     
    # Внутри vtysh проверьте состояние протоколов
    show ip route
    show ip bgp summary
    show ip ospf neighbor
    show vrrp
    exit