Перейти к основному содержимому

Подготовка VM-шаблонов

Каждый пул рабочих столов клонируется из шаблона. Planeon никогда не собирает гостевую операционную систему с нуля — он клонирует уже существующую ВМ-шаблон Proxmox VE, а затем кастомизирует каждый клон (имя хоста, при необходимости — присоединение к домену, проверки готовности), прежде чем передать его пользователю. От качества этого шаблона зависит, насколько гладко пройдёт provisioning: шаблон без guest agent или VirtIO-драйверов — самая частая причина того, что рабочие столы никогда не доходят до статуса Ready.

В этом руководстве описана подготовка шаблона для Windows и для Linux, а также то, как убедиться, что он готов, прежде чем указывать его в пуле. Если вы ещё не создавали свой первый пул, см. быстрый старт.

Общие правила для любой ОС

Они применимы независимо от гостевой операционной системы:

  • Установите QEMU guest agent внутри гостевой системы. Planeon опирается на него для определения ОС, настройки имени хоста и проверок готовности во время provisioning — клон без агента никогда не дойдёт до статуса Ready.
  • Включите опцию QEMU Guest Agent на самой ВМ, на вкладке Options ВМ в интерфейсе Proxmox VE. Одной установки агента внутри гостевой системы недостаточно — Proxmox VE тоже должен знать, что с ним нужно общаться.
  • Используйте устройства VirtIO для диска и сети (контроллер VirtIO SCSI, сетевой адаптер VirtIO) вместо эмулируемого оборудования — это важно и для производительности, и для единообразия драйверов на всём парке клонов.
  • Сделайте уборку перед конвертацией в шаблон — удалите остатки установки и временные файлы и выполните описанные ниже шаги для вашей ОС, — чтобы каждый клон стартовал из одного и того же проверенного состояния.

Windows 10, Windows 11 и Windows Server

  1. Подключите ISO с драйверами VirtIO во время установки. Windows не включает драйверы VirtIO «из коробки», поэтому смонтируйте ISO с драйверами virtio-win вместе с установочным диском и загрузите драйверы VirtIO SCSI и сети, когда мастер установки их запросит — так Windows увидит диск и сетевой адаптер VirtIO уже на этапе установки.

  2. Установите QEMU guest agent. На ISO virtio-win есть папка guest-agent с MSI-инсталлятором qemu-ga; запустите его внутри гостевой системы и убедитесь, что служба QEMU Guest Agent запущена.

  3. Включите удалённый рабочий стол и разрешите его в брандмауэре. Включите Remote Desktop в настройках Windows и убедитесь, что правило брандмауэра для удалённого рабочего стола включено. Проверка готовности по умолчанию для Windows-рабочих столов в Planeon требует, чтобы служба удалённого рабочего стола была запущена, а RDP — это то, как большинство пользователей будут подключаться к рабочему столу на практике.

  4. Установите обновления Windows перед тем, как превращать ВМ в шаблон, — чтобы каждый клон стартовал уже обновлённым, а не устанавливал обновления при первой загрузке.

  5. Обобщите образ с помощью Sysprep. Из командной строки с правами администратора:

    %WINDIR%\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown

    Это убирает специфичное для машины состояние (SID, кэш драйверов) и выключает ВМ по завершении OOBE, так что каждый клон получает чистую, уникальную идентичность при первой загрузке. Provisioning в Planeon уже умеет дожидаться завершения этой первичной настройки на клонированных Windows-ВМ, прежде чем пометить их готовыми, — поэтому не пропускайте Sysprep ради экономии времени: необобщённый образ вместо этого приводит к конфликтам SID и идентичности между клонами.

  6. Сконвертируйте ВМ в шаблон в Proxmox VE. Как только ВМ выключится сама после Sysprep, щёлкните по ней правой кнопкой в интерфейсе Proxmox VE и выберите Convert to Template.

Linux

  1. Установите и включите QEMU guest agent менеджером пакетов вашего дистрибутива, например:

    sudo apt-get install -y qemu-guest-agent
    sudo systemctl enable --now qemu-guest-agent
  2. Установите и включите xrdp, чтобы рабочий стол был доступен по RDP так же, как и Windows-рабочие столы:

    sudo apt-get install -y xrdp
    sudo systemctl enable --now xrdp

    Для работы xrdp нужна установленная графическая среда — установите её, если в базовом образе её ещё нет.

  3. Cloud-init — опционально. Если вы уже готовите Linux-ВМ с использованием диска Cloud-Init для сети или настройки пользователей, можете продолжать его использовать — путь клонирования и кастомизации Planeon его не требует, но и не конфликтует с ним.

  4. Очистите идентичность машины перед превращением в шаблон, чтобы ни один клон не унаследовал ту же идентичность, что и шаблон:

    sudo truncate -s 0 /etc/machine-id
    sudo rm -f /etc/ssh/ssh_host_*

    SSH host keys обычно пересоздаются при первой загрузке сами (большинство дистрибутивов делают это автоматически, когда ключи отсутствуют, а служба SSH запускается); если в вашем дистрибутиве это не так, переконфигурируйте пакет openssh-server вручную.

  5. Выключите ВМ и сконвертируйте её в шаблон в Proxmox VE — щёлкните по ней правой кнопкой в интерфейсе Proxmox VE и выберите Convert to Template.

Проверьте, что шаблон готов

Две проверки перед тем, как указывать шаблон в пуле:

  1. Guest agent отвечает. Пока ВМ ещё работает как обычная ВМ (до того, как вы её сконвертируете), откройте её в интерфейсе Proxmox VE и посмотрите на вкладку Summary — как только агент установлен, включён и запущен, там появится IP-адрес. Если IP-адреса нет — агент ещё не отвечает; вернитесь к шагам по guest agent выше.
  2. Инвентарь Planeon показывает её как пригодную. После того как вы сконвертировали ВМ в шаблон в Proxmox VE, откройте Шаблоны → Зарегистрировать в веб-консоли Planeon и посмотрите на список Шаблонная ВМ PVE — там показываются только ВМ, которые сам Proxmox VE пометил как шаблоны. Если ваша ВМ там появилась — она пригодна для регистрации и использования в пуле.