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

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

Серверы с Debian 13 и Proxmox VE 9.0

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

Выделенный сервер  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 или выделенный сервер с нужной ОС за пару кликов.

Выделенный сервер  VPS

Комментарии (15)


  1. say_TT_plz
    29.10.2025 11:12

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

    gpg ключ добавили, а sources.list нет


    1. tkrylova2200
      29.10.2025 11:12

      sources.list есть , спасибо )


  1. M_AJ
    29.10.2025 11:12

    Одна из плюшек Проксмокса при установке его на железо в том, что он умеет легко ставиться на ZFS и потом загружаться с него. Ваш вариант этого не позволяет. Хотя не совсем понятно, зачем устанавливать его на выделенный сервер из панели, и почему не сделать этого через виртуальную консоль, установка там простая и быстрая.


    1. tkrylova2200
      29.10.2025 11:12

      обычно у нас прокс берут на 2x2tb nvme , а какой конфиг подойдёт по zfs ?


      1. M_AJ
        29.10.2025 11:12

        а какой конфиг подойдёт по zfs

        Не очень понял вопрос, честно говоря :) Подойдет то любой, в том смысле, что он спокойно встанет на 2x2tb NVME в зеркале, другой вопрос какую производительность получится выжать из ZFS и устроит ли она. Ну и конечно насколько человеку нужны её фишки, например репликация.


        1. tkrylova2200
          29.10.2025 11:12

          спасибо , рассмотрим диплой на zfs в скором времени.


  1. SmileyK
    29.10.2025 11:12

    а что мешает разворачивать из дистрибутива который дает сам proxmox ?


    1. tkrylova2200
      29.10.2025 11:12

      так и делаем , это один из вариантов установки , первый - поставить из дистрибутива самого proxmox , второй поставить поверх deb13.


      1. SmileyK
        29.10.2025 11:12

        а как не попасть на второй вариант при заказе ? О_о


        1. tkrylova2200
          29.10.2025 11:12

          При заказе выбирайте OS > Proxmox


        1. tkrylova2200
          29.10.2025 11:12


  1. taxonein
    29.10.2025 11:12

    У проксмокса частенько выходят довольно важные обновления, а как часто у вас обновляется образ который используется для разворачивания клиентам?


    1. tkrylova2200
      29.10.2025 11:12

      Ставим теги версии на OS нашей админской панели , как только выходит новая версия , обновляем .


  1. jslow1998
    29.10.2025 11:12

    Всё по-человечески объяснено, читается легко, а информации - море. Спасибо за честный взгляд изнутри.


    1. tkrylova2200
      29.10.2025 11:12

      спасибо , попробуем ещё аналогичный панели взять в диплой .