План действий: адаптация сервера к новой аппаратной конфигурации

Дата: 2026-02-07
Контекст: Замена материнской платы, процессора и ОЗУ на хост-сервере Denkart.
Связанный документ: Проверка совместимости после замены железа

План выполнять по порядку. После каждого этапа — краткая проверка перед переходом к следующему.


Этап 0. Подготовка (до первого включения)

# Действие Примечание
0.1 Убедиться, что в BIOS включена виртуализация (Intel VT-x / AMD-V) Иначе LXD будет работать с ограничениями или нестабильно
0.2 Режим загрузки: UEFI (как было) или Legacy — согласовать с текущими разделами Ранее использовался EFI (/dev/sdb1)
0.3 Подключить диски в те же порты SATA/разъёмы, если возможно Снижает шанс смены имён устройств (sda/sdb/sdc)
0.4 Иметь под рукой: загрузочную флешку с Ubuntu (на случай проблем), доступ к роутеру Keenetic

Этап 1. Первая загрузка и базовая диагностика

# Действие Команда / проверка
1.1 Включить сервер, дождаться загрузки ОС Вход по SSH или консоль
1.2 Проверить архитектуру и ядро uname -m → x86_64; uname -r
1.3 Зафиксировать новый CPU и объём RAM lscpu, free -h
1.4 Проверить виртуализацию grep -E 'vmx|svm' /proc/cpuinfo — должна быть хотя бы одна строка
1.5 Если виртуализация отключена Перезагрузка → BIOS → включить VT-x/AMD-V → сохранить и загрузиться снова

Критерий перехода: Сервер загружается, архитектура x86_64, виртуализация включена.


Этап 2. Диски и монтирование

# Действие Команда / проверка
2.1 Посмотреть текущую схему дисков lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,UUID
2.2 Проверить, что смонтированы / и /D df -h / /D
2.3 Открыть fstab cat /etc/fstab
2.4 Если в fstab используются только /dev/sdX и порядок дисков изменился (например, корень «переехал» на другой букве) Вариант А: заменить в fstab на UUID (взять из lsblk). Вариант Б: исправить буквы устройств в fstab под текущие имена. После правок: sudo mount -a и перезагрузка для проверки
2.5 Записать для документации: какое устройство — корень, какое — /D Например: корень — /dev/sdb2, /D — /dev/sdc

Критерий перехода: После перезагрузки / и /D монтируются корректно.


Этап 3. Сеть: интерфейс и IP

# Действие Команда / проверка
3.1 Узнать имя основного сетевого интерфейса и IP ip -br a
3.2 Если IP не 192.168.1.112 На роутере Keenetic: зарезервировать новый MAC за 192.168.1.112 (узнать MAC: ip link show). Либо на хосте настроить статический IP 192.168.1.112 в netplan
3.3 Если имя интерфейса не enp4s0 Запомнить новое имя — понадобится для этапов 4 и 6
3.4 Проверить доступность по сети С другого ПК: ping 192.168.1.112, при необходимости SSH

Критерий перехода: Хост имеет IP 192.168.1.112 и доступен в сети.


Этап 4. LXD и контейнеры

# Действие Команда / проверка
4.1 Проверить, что LXD запущен systemctl is-active snap.lxd.daemon или аналог для snap
4.2 Список контейнеров lxc list
4.3 Запустить нужные контейнеры, если остановлены lxc start BBB-CONT22-1 docs-denkart 1c-server-new postgresql-1c-new nginx-reverse-proxy (и другие по необходимости)
4.4 Проверить сеть LXD lxc network show lxdbr0
4.5 Проверить доступность приложений из контейнеров (локально) Например: curl -s -o /dev/null -w "%{http_code}" http://10.218.14.37 (BBB), документация и т.д.

Критерий перехода: LXD работает, контейнеры в состоянии RUNNING, сервисы внутри отвечают.


Этап 5. Маршрутизация (iptables) и доступ извне

# Действие Команда / проверка
5.1 Узнать актуальное имя интерфейса (если ещё не сделано) ip -br a
5.2 Применить правила iptables. Если интерфейс не enp4s0 sudo IPTABLES_INTERFACE=<имя> /home/cdto/DENKART/config/iptables/port-forwarding-rules.sh (подставить имя, например enp1s0)
5.3 Если интерфейс по-прежнему enp4s0 sudo /home/cdto/DENKART/config/iptables/port-forwarding-rules.sh
5.4 Проверить HTTP/HTTPS с хоста curl -I http://192.168.1.112, curl -I https://192.168.1.112
5.5 Проверить проброс портов с роутера С внешней сети или с телефона (мобильный интернет): доступ к доменам/портам (80, 443, 1541, 1545 и т.д.). При смене MAC — убедиться, что на роутере порты пробрасываются на 192.168.1.112

Критерий перехода: С хоста и извне доступны веб-сервисы и нужные порты.


Этап 6. Мониторинг

# Действие Команда / проверка
6.1 Prometheus curl -s http://192.168.1.112:9091/-/healthy
6.2 Grafana Открыть в браузере http://192.168.1.112:3000
6.3 Node Exporter curl -s http://192.168.1.112:9100/metrics | head -5
6.4 При необходимости перезапустить контейнеры/сервисы мониторинга По текущей схеме развёртывания (Docker/systemd и т.д.)

Критерий перехода: Мониторинг отвечает на 192.168.1.112.


Этап 7. Сохранить конфигурацию iptables (опционально)

# Действие Примечание
7.1 Если имя интерфейса изменилось и использовалась переменная IPTABLES_INTERFACE Либо добавить в systemd-юнит/скрипт автозапуска установку IPTABLES_INTERFACE=<новое_имя>, либо один раз прописать новое имя по умолчанию в config/iptables/port-forwarding-rules.sh (переменная INTERFACE)
7.2 Если правила iptables должны применяться при каждой загрузке Убедиться, что есть юнит/скрипт, который выполняется после поднятия сети и вызывает скрипт с нужным интерфейсом

Этап 8. Обновление документации

# Действие Документ / место
8.1 Вписать фактические CPU и RAM host-server-passport.md — таблица «Аппаратные характеристики»
8.2 При смене имени интерфейса — обновить упоминания enp4s0 Паспорт, README, при необходимости port-forwarding-rules.sh (по умолчанию в INTERFACE)
8.3 При смене схемы дисков — обновить устройства для / и /D host-server-passport.md, disk-architecture.md, requirements.md
8.4 Заполнить блок «Результаты проверки» hardware-replacement-compatibility-check.md
8.5 Убрать пометки «уточнить» / «до замены» в паспорте и требованиях После внесения фактических значений

Критерий перехода: В документации отражены актуальные CPU, RAM, интерфейс и диски.


Сводная последовательность

0. Подготовка (BIOS, диски, доступ к роутеру)
    1. Первая загрузка, CPU/RAM, виртуализация
    2. Диски и fstab
    3. Сеть (интерфейс, IP 192.168.1.112)
    4. LXD и контейнеры
    5. iptables и доступ извне
    6. Мониторинг
    7. Закрепить iptables при загрузке (при необходимости)
    8. Обновить документацию

Быстрые команды для копирования (на хосте)

# Диагностика
uname -m && uname -r
lscpu | grep -E 'Model name|CPU\(s\)'
free -h
grep -E 'vmx|svm' /proc/cpuinfo | head -1
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,UUID
ip -br a
cat /etc/fstab

# LXD
lxc list
lxc network show lxdbr0

# iptables (если интерфейс, например, enp1s0)
sudo IPTABLES_INTERFACE=enp1s0 /home/cdto/DENKART/config/iptables/port-forwarding-rules.sh

# Проверка доступности
curl -s -o /dev/null -w "%{http_code}" http://192.168.1.112
curl -s http://192.168.1.112:9091/-/healthy

Связанные документы