Содержание
Tantor: Базовая архитектура стенда
(Этап 1) Проверка, подготовка.
Для инсталляции СУБД Tantor необходимо удостовериться, что версия операционной системы соответствует документации по развертыванию продукта.
Для практики нам понадобится 6 виртуальных сервера c предустановленной ОС ALSE 1.8 и сетевой связанностью.
Например имена хостов:
tplatform.example – сервер для палатформы Tantor (4 cpu / 8гб ram / 40гб HDD)
db1 db2 db3 – сервера для СУБД по (2 cpu / 2гб ram / 20гб HDD)
haproxy1 haproxy2 – для балансировщика по (2 cpu / 2гб ram / 20гб HDD)
Для платформы Tantor обязательно домен второго уровня, так как при установке дистрибутива в запросах инсталятора будет просить DNS имя, которое после установки будет использоваться адрестной строке браузера для доступа к графическому интерфейса
Если планируете проходить практику на своем стенде, то для создания ВМ платформы Tantor обязательно используем host-passthrough в настройках ВМ гипервизора (прямой доступ к аппаратным ресурсам процессора) с доступам к инструкциям sse и avx.
Иначе не заработает модуль Advanced analytics
Как проверить что все хорошо - на вывод команд в CLI на хосте tplatform
Обе инструкции должны выводить ответ:
lscpu | grep -i sse lscpu | grep -i avx
После создания ВМ подключаемся к серверам по ssh.
Пример в нашем практикуме через bastion хост:
ssh -i /<путь где лежит ключ>/<XX.key> tantor@<Внешний IP>
ssh -i /home/test/.shh/00.key -p 2222 tantor@62.62.62.62
Далее с bastion подключаемся на хосты tplatform, db1, db2, db3, haproxy1, haproxy2
!!! В рамках практикума подключение без пароля к хостам внутри стенда можно выполнять только с bastion, между узлами недоступно.
ssh tplatform ssh db1 ssh db2 ssh db1 ssh haproxy1 ssh haproxy2
Прибивка статики ip на хостах (!! На стендах практикума делать не нужно).
На этапе подготовки важно, чтобы IP на хостах не менялись, так как Платформа Tantor будет подключать агентов по IP На стендах практикума это уже сделано, но приводим пример как это настроить через CLI linux.
Убедиться, что используется interfaces или NetworkManager. NetworkManager – более современный менеджер сетей. Обычно он идет в комплекте с графическими окружениями Linux.
NetworkManager включен, он может игнорировать interfaces.
nmcli device status
Смотрим вывод в колонке STATE, если без управления, переходим в настройку interfaces
Если да, в таком случае настройки лучше делать через
nmcli
# (утилита терминале)
Установить статический IP на eth0
sudo nmcli con add type ethernet con-name "my-eth" ifname eth0 ipv4.method manual ipv4.addresses 10.2.0.11/24 ipv4.gateway 10.2.0.1 ipv4.dns "10.2.0.254" ipv4.dns-search "example.dn"
Активировать подключение
sudo nmcli con up "my-eth"
или
nmtui # (текстовый интерфейс) в песевдографике терминала.
Настройка interfaces.
Редактируем фал настроек сетевого интерфейса пример:
sudo nano /etc/network/interfaces
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.2.0.11 network 10.2.0.0 netmask 255.255.255.0 ## или 24 gateway 10.2.0.1 mtu 1420 dns-nameservers 10.2.0.254 dns-search example.dn ## суфикс как пример
source /etc/network/interfaces.d/*.cfg
Проверить синтаксис файла (опционально) без отключения loopback
sudo ifdown -a --exclude=lo && sudo ifup -a
Перезагрузка сервиса networking для применения конфигурации
sudo systemctl restart networking
Проверяем версии ОС Astra Linux и уровня защищенности на всех узлах.
cat /etc/astra_license cat /etc/astra/build_version
Режимы защищенности Astra Linux (0 - Орел, 1 - Воронеж, 2 - Смоленск) Проверить уровень защищенности ОС согласно требования заказчика:
sudo astra-modeswitch get sudo astra-modeswitch getname
если необходимо сменить уровень защищенности, при условии, что у заказчика имеется лицензия на Astra Linux server (1 - Воронеж или 2 - Смоленск).
sudo astra-modeswitch set 0 ## или 1 или 2 sudo reboot ## перезагрузить ОС
Просмотр подключенных репозиториев для получения или обновления пакетов и ОС.
grep -r ^deb /etc/apt/sources.list /etc/apt/sources.list.d
Для каждой версии ОС используются свои публичные интернет репозитории, читайте тех док к ОС.
https://docs.astralinux.ru/1.7/guide/compound/repo
https://docs.astralinux.ru/1.8/guide/compound/repo
стандартные путь сслылок на публичные репозитории для ОС описаны тут:
sudo nano /etc/apt/sources.list
или
sudo apt edit-sources
Как правило указаны frozen ветки /uu/* оперативного обновления для того, чтобы не произошло непреднамеренного обновление на самую последнюю версию ОС по ветке, которая может привести к не стабильной работе ПО Tantor.
для получения более свежего релиза пакетов достаточно сменить uu/1 на uu/2, сохранить.
В закрытом сегменте заказчика используются свои репозитории или ISO образы с личного кабинета Астра.
deb https://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.1/uu/2/extended-repository/ 1.8_x86-64 main non-free non-free-firmware contrib deb https://download.astralinux.ru/astra/frozen/1.8_x86-64/1.8.1/uu/2/main-repository/ 1.8_x86-64 main non-free non-free-firmware contrib
Затем выполнить обновление списка пакетов
sudo apt update
Если необходимо обновить всю ОС в зависимости от ситуации и требования заказчика.
sudo apt dist-upgrade
Проверяем на всех хостах, что все необходимые локали присутсвуют в системе.
locale -a ## смотрим какие уже скопмилированы sudo nano /etc/locale.gen ## убрать комментарий en_US.UTF-8 и ru_RU.utf8 sudo locale-gen
Проверим файл hosts и имена для каждого из хостов.
Вывод имени хоста
hostname -f
Изменить имя хоста, если необходимо на каждом сервере свое
sudo hostnamectl set-hostname <новое_имя_хоста>
Внести список хостов на каждом сервере и сохранить, если нет DNS сервера в сети. Но в целом это хорошая практика, если даже DNS сервер есть, его аварии не исключены.
sudo nano /etc/hosts
Пример:
10.2.0.2 tplatform.example tplatform
10.2.0.11 db1
10.2.0.12 db2
10.2.0.13 db3
10.2.0.21 haproxy1
10.2.0.22 haproxy2
Проверим
cat /etc/hosts
Установка утилит и пакетов.
На все хосты устанавливаем
sudo apt install htop iperf wget chrony nmap bash-completion -y
Зависимости нужны для Tantor СУБД на хостах db1 db2 db3
sudo apt install libllvm13 libpython3.11 libxsldb1.1 libz3-4 lsof apt-transport-https gnupg -y
При установке пакета СУБД Tantor их сам запросит и установит через сетевой репозиторий.
На хосте tplatform устанавливаем графику и браузер, а также Docker не менее 20.10.13 версии
sudo apt install docker.io docker-compose firefox xrdp fly-all-main -y
Проверить Docker версию на хосте tplatform
docker -v && docker-compose -v
Полный вывод
docker version docker-compose version
Cлужба синхронизации времени, Выполняем на всех хостах.
Ставим автозагрузку службы
sudo systemctl enable chrony
Проверка статуса
sudo systemctl status chrony sudo chronyc tracking ## проверка текущего состояния sudo chronyc sources -v ## список NTP-серверов sudo chronyc makestep ## немедленная корректировка времени
В Chrony список серверов задаётся в конфигурационном файле /etc/chrony/chrony.conf После редактирования перезапустит службу sudo systemctl restart chrony
timedatectl ## вывести текущий часовой пояс и время timedatectl list-timezones ## вывести варианты ЧП sudo timedatectl set-timezone <название_часового_пояса>
Проверка сетевой доступности портов
На узле СУБД утилита iperf запускается в режиме сервера (ключ -s), по умолчанию используется протокол TCP, выбран порт 5432 (ключ -p)
Пример проверки порта запускаем iperf в режиме сервера на хостах СУБД db1 db2 db3
iperf -s -p 5432
На tplatform запускается в режиме клиента (указывается узлы СУБД по очереди)
iperf -p 5432 -c db1 iperf -p 5432 -c db2 iperf -p 5432 -c db3
или через утилиту nmap:
-sT - проверка по протоколу TCP
-p - номер, проверяемого порта
<IP адрес> - адрес проверяемого узла
Пример, проверяем доступность порта db1, команду выполняем например с узла tplatform
sudo nmap -sT -p 5432 db1 sudo nmap -sT -p 5432 db2 sudo nmap -sT -p 5432 db3
Посмотреть табличку с портами на каждом хосте, когда все развернете.
ss -ntlup