29.10.2025

Осенние будни DevOps: Debian 13 и Proxmox VE 9.0 в продакшене HOSTKEY

server one
HOSTKEY

Автор: Никита Зубарев, Руководитель отдела DevOps компании HOSTKEY

В начале августа этого года вышла Debian 13 «Trixie», и буквально на следующий день к нам посыпались заявки от клиентов — все хотят новую версию. Обновление существующих систем ложилось на самих клиентов, но вот быстрый деплой новой версии дистрибутива на заказываемых вновь машинах — это наша головная боль. Мы, конечно же, не сидели сложа руки до этого: шаблоны начали готовить, как только замаячил релиз нового дистрибутива, но провозились по итогу всё окончание лета и начало осени. Также тесно с Debian у нас связан Proxmox, девятая версия которого тесно завязана с новой версией Debian и также вышла в это же время, а значит, обновлять в нашем каталоге ОС и ПО нужно и его.

Серверы с Debian 13 и Proxmox VE 9.0
Закажите VPS или выделенный сервер с нужной ОС за пару кликов.

Что интересного в релизах?

Пробежимся по changelog нового релиза обеих новинок. В Debian 13 большая часть изменений — стандартная эволюция, но несколько моментов в нем «зацепили»:

  • Ядро Linux 6.12 — больше драйверов, свежие патчи безопасности;
  • Переработанная логика EFI-разделов в инсталляторе — вот это уже интереснее. Наш текущий HKM-деплой завязан на «старое» поведение, придется допиливать скрипты;
  • HTTP Boot в инсталляторе — судя по описанию, это альтернатива PXE-загрузке через HTTP/HTTPS. Теоретически должно быть проще с файрволлами и быстрее работать.

Proxmox 9 выбирают из-за следующих нововведений:

  • Снимки виртуальных машин на хранилищах LVM с «толстым» выделением ресурсов (preview-технология);
  • Правила высокой доступности (HA) для привязки узлов и ресурсов;
  • Фабрики для стека программно-определяемых сетей (SDN);
  • Модернизированный мобильный веб-интерфейс;
  • ZFS поддерживает добавление новых устройств в существующие пулы RAIDZ с минимальным временем простоя;
  • Обновление до AppArmor 4.

Составление плана работ

Задачи на ближайшие недели сформировались сами собой:

  1. Debian 13 в Foreman

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

  2. Proxmox VE 9.0 как панель управления

    Proxmox 9 уже доступен, и клиенты просят его добавить в маркетплейс. Схема стандартная: чистый Debian 13 + Proxmox поверх как веб-интерфейс для управления виртуализацией. Ansible-плейбук для восьмой версии есть, нужно адаптировать под девятку.

Что такое HKM-установка (и зачем мы это делаем)

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

Вкратце, для упрощения собственной жизни и ускорения сдачи серверов клиентам мы создали собственный LiveCD на основе Rocky Linux и сразу решили проблему поддержки разных ОС для разных материнских плат. Получается, мы поддерживаем одну ОС, а остальные системы устанавливаются путём разархивирования архива скриптом и записи его на диск.

То есть для того чтобы «релизнуть» Debian 13, нам достаточно усилий junior-инженера и пары часов его времени. Процесс простой: берём виртуальную машину, ставим с ISO Debian 13, грузимся с LiveCD — и всё готово. Подробнее «кухню с золотыми образами» опишем в следующих статьях.

Правда, есть нюанс: раз установка идет через отдельную ОС, то возможные конфликты с железом всплывут только при первой загрузке уже установленной системы. Зато куда проще добавлять поддержку нового оборудования. Например, нет необходимости разбираться с udeb-пакетами для Debian/Ubuntu или пересобирать инсталлятор при каждом обновлении драйверов.

Debian 13 в Foreman

Расскажем, что мы сделали для укрощения Debian 13 в нашей инфраструктуре поэтапно.

Подготовка chroot

Выполняем следующие этапы друг за другом. Первым идет создание точки монтирования:

mkdir /mnt/debian
cd /mnt/

Далее активация LVM:

vgchange -ay

Потом монтирование файловых систем:

mount /dev/mapper/debian-root /mnt/debian
mount /dev/sda1 /mnt/debian/boot
mount -t proc proc /mnt/debian/proc
mount -t sysfs sys /mnt/debian/sys
mount --bind /tmp /mnt/debian/tmp
mount --bind /dev /mnt/debian/dev
mount --bind /dev/pts /mnt/debian/dev/pts

Не забываем настроить интерфейсы:

cat >etc/network/interfaces <<'EOF'
auto lo
iface lo inet loopback

auto ens1
iface ens1 inet manual

auto vmbr0
iface vmbr0 inet dhcp
    bridge-ports ens1
    bridge-stp off
    bridge-fd 0
EOF

Копируем настройки DNS:

cp -v /etc/resolv.conf /mnt/debian/etc/resolv.conf

И в финале выполняем вход в chroot окружение:

chroot /mnt/debian /usr/bin/env -i HOME=/root TERM="$TERM" /bin/bash --login

Настройка системы в chroot

Здесь порядок действий был следующий:Обновление системы.

nano /etc/apt/sources.list

Очистка конфигурации и удаление специфичных для машины настроек.

rm -rf /etc/fstab
nano /etc/issue
rm -f /etc/ssh/ssh_host_*
rm -rf /boot/*
rm -f /etc/network/interfaces
rm -rf /etc/network/interfaces.d/

При необходимости можно было обновить и версию ядра, но мы оставляем это на совести пользователей и поставляем системы с «релизной» версией. Но сделать это можно было следующими командами:

ls /lib/modules (проверяем версию ядра)
apt-get install --reinstall linux-image-<ваша_версия>
update-initramfs -c -k <ваша_версия>
grub-install /dev/sdan

Настройка SSH

Редактирование конфигурации SSH:

nano /etc/ssh/sshd_config
nano /etc/ssh/ssh_config

Устанавливаем следующие параметры:

PasswordAuthentication yes
PermitRootLogin yes

Размонтирование и архивирование

Выход из chroot:

exit

Размонтирование файловых систем:

cd debian
umount ./proc
umount ./sys
umount ./dev/pts
umount ./dev
umount ./tmp

Создание архива:

tar -czvf debian_trixie.tar.gz .

Затем заливаем образ в репозиторий, регистрируем ОС в Foreman и Invapi (это наша панель управления оборудованием для клиентов). После этого операционная система автоматически появится на сайте.

Так выглядит новая ОС в Foreman. Об архитектуре всего этого хозяйства мы рассказывали в статье “Foreman в изоляции: как мы построили отказоустойчивую и безопасную систему для массового деплоя ОС”:

Перед релизом проводим smoke-тестирование и передаём сборку в QA для проверки на различных конфигурациях железа и типах виртуальных машин.

С базовым образом Debian 13 разобрались. Теперь переходим к доработке Ansible-плейбука для установки Proxmox VE 9.0 поверх этой системы.

Proxmox VE 9.0 как панель: доработка текущего Ansible-плейбука

Официальная документация рекомендует устанавливать Proxmox VE поверх чистой Debian Trixie. При этом советуют использовать экспертный режим установщика, чтобы сразу прописать статический IP. Из пакетов нужен минимум: стандартные утилиты и SSH-сервер. Графическое окружение не требуется — Proxmox привезет с собой все нужные компоненты для QEMU и LXC.

Важный момент: такой способ не сработает, если вы используете экспериментальный systemd-boot с включенным Secure Boot.

Добавляем репозиторий Proxmox

 - name: Add the Proxmox VE repository key debian 13
											ansible.builtin.get_url:
											url: "https://enterprise.proxmox.com/debian/proxmox-release-{{ ansible_distribution_release }}.gpg"
											dest: "/etc/apt/trusted.gpg.d/proxmox-release-{{ ansible_distribution_release }}.gpg"
											checksum: sha512:8678f2327c49276615288d7ca11e7d296bc8a2b96946fe565a9c81e533f9b15a5dbbad210a0ad5cd46d361ff1d3c4bac55844bc296beefa4f88b86e44e69fa51
											when: ansible_distribution == "Debian" and ansible_distribution_release == "trixie"

Ставим ядро Proxmox:

  - name: Install ProxmoxVE kernel debian 13
  ansible.builtin.apt:
	name: proxmox-default-kernel
	state: present
  retries: 3
  when: ansible_distribution == "Debian" and ansible_distribution_release == "trixie"

И чистим стандартное:

- name: Remove the Debian Kernel debian 13
  ansible.builtin.shell: apt remove linux-image-amd64 'linux-image-6.12*' -y
  environment:
	DEBIAN_FRONTEND: noninteractive
  when: ansible_distribution == "Debian" and ansible_distribution_release == "trixie"

Обновляем загрузчик:

- name: Update and check grub2
  ansible.builtin.command: update-grub
 - name: Remove the os-prober Package
  ansible.builtin.apt:
	name: os-prober
	state: absent

Комментируем enterprise-репозиторий:

Для версий до 13-го Debian:

- name: Comment  Proxmox enterprise repo file for apt update working for pre 13 debian
  ansible.builtin.replace:
	path: /etc/apt/sources.list.d/pve-enterprise.list
	regexp: '^([^#].*)$'
    replace: '# \1'
  when: ansible_distribution == "Debian" and ansible_distribution_release != "trixie"

Для Debian 13 (Trixie):

- name: Comment  Proxmox enterprise repo file for apt update working for debian 13
  ansible.builtin.replace:
	path: /etc/apt/sources.list.d/pve-enterprise.sources
	regexp: '^([^#].*)$'
	replace: '# \1'
  when: ansible_distribution == "Debian" and ansible_distribution_release == "trixie"

После отработки плейбука не забудьте проверить домен третьего уровня и SSL-сертификат. Для теста подойдет простой запуск задачи на Debian 13.

ISO или Debian + плейбук: почему последнее?

Официально разработчики Proxmox VE советуют ставить его с ISO-образа на чистое железо (скачать можно здесь), но иногда есть смысл накатить его поверх уже работающей Debian Trixie — например, когда нужна нестандартная разметка дисков. Такие кейсы встречаются часто, и именно это является аргументом для установки через плейбук.

Основное отличие в процессе: при установке через плейбук сначала разворачиваешь Debian 13, а потом уже запускаешь автоматизацию. Это добавляет время, но дает больше контроля над конфигурацией системы на старте.

У нас золотой образ уже содержит всю нужную разметку и базовые настройки, поэтому накатить Proxmox плейбуком — дело 5–10 минут. Для массового деплоя это удобнее, чем каждый раз прожигать ISO и вручную использовать инсталлятор.

При этом никто не запрещает пользователю скачать официальный ISO-образ Proxmox, подключить сервер и загрузиться с него, выполнив затем необходимую разбивку диска и установку системы.

Подводим итоги

С внедрением HKM-установки выход новой ветки ОС или очередной системы инсталляции больше не превращается в ночной кошмар (хотя раньше, признаться, доводило до мыслей об увольнении — даже в рамках текущей системы бывали такие моменты). Теперь это обычная рутина, которая случается раз в несколько месяцев и которую можно спокойно поручить новичку.

По мере роста числа локаций и заказов мы ежедневно дорабатываем систему деплоя: разбираем логи неудачных установок, тестируем новые материнские платы и серверные платформы в разных режимах. Постепенно добавляем новые возможности — более гибкую разбивку дисков, передачу SSH-ключей, настройку ОС и сетевых адресов, уведомления клиентов об установках и многое другое. Система полностью готова к развитию и масштабированию.

Сейчас наблюдаем высокий спрос на Proxmox. Наша задача — оперативно сдавать новые установки, поддерживать разнообразное железо и не нарушать SLA по срокам запуска серверов. Также планируем расширять линейку бесплатных гипервизоров — напишите в комментариях, что из популярного стоит добавить? XEN, Hyper-V, OpenNebula, а может, OpenStack?

Вердикт от автора

Платформа развивается, регулярно выходят обновления. Если нужно держать десяток виртуалок — Proxmox можно ставить без раздумий. Правда, не стоит обольщаться, что неподготовленный пользователь соберёт HA-кластер на Ceph с Open vSwitch за пару часов, даже с ChatGPT под рукой.

Что касается обновления с версии 8 — это нужно тестировать, но, на мой взгляд, проще и надёжнее мигрировать текущие VM на свежий сервер.

Для тех, кто всё-таки решит попробовать Proxmox, — читайте официальную документацию. В следующей статье мы покажем, как с ним работать на пользовательском уровне.

Серверы с Debian 13 и Proxmox VE 9.0
Закажите VPS или выделенный сервер с нужной ОС за пару кликов.

Другие статьи

22.10.2025

Чек-лист: 5 признаков, что вашему бизнесу пора переезжать с облака на выделенный сервер

Платите за облако, но всё делаете сами? При бюджете от 5 000 ₽ выделенный сервер выгоднее. Смотрите чек-лист и тесты cloud vs bare metal.

29.09.2025

Что делать, если ваш ноутбук сломался? Как Kasm превратит даже старый планшет в рабочую станцию

Когда технические сбои прерывают работу, Kasm Workspaces становится спасением, превращая устаревшие устройства в полноценные рабочие станции через браузер. В статье рассматривается, как платформа решает проблемы сломанных ноутбуков и дефицита оборудования, сравниваются версии (Community, Starter, Enterprise, Cloud), анализируются требования к ресурсам и результаты тестирования на VPS.

24.09.2025

Замена Google Meet в условиях блокировок: Jitsi Meet и другие альтернативы для бизнеса

Когда Google Meet внезапно начал «тормозить» в России, мы оказались перед выбором: Zoom, Яндекс Телемост, NextCloud или self-hosted решения. После тестов мы остановились на Jitsi Meet на VPS и проверили его в боевых условиях. Делимся опытом и подводными камнями.

18.09.2025

Мониторинг SSL-сертификатов в oVirt Engine: как мы научились спать спокойно благодаря Go и Prometheus

Как избежать простоев и сбоев из-за просроченных SSL-сертификатов? Мы в HOSTKEY разработали простой, но надёжный инструмент на Go для oVirt Engine, интегрированный с Prometheus и Grafana. Теперь система сама предупреждает о проблемах — задолго до их возникновения.

05.09.2025

Обзор NetFlow-коллектора с визуализацией Akvorado: от развертывания до практического использования

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

Upload