VMmanager

Подготовка шаблона ОС Linux

Формат шаблона зависит от типа виртуализации в кластере:

  • KVM — архив .xz с образом диска ОС в формате RAW;
  • LXD — архив tar.gz с содержимым файловой системы и файлом метаданных.

Требования к шаблону

Разметка диска и установка ОС

Используйте разметку диска GPT. Для первого раздела диска укажите тип BIOS boot и размер 2 Мб. Для второго раздела диска укажите тип Linux filesystem и минимально возможный размер (например, 4 ГБ). Установите ОС на второй раздел в минимальной конфигурации.

Для пространства подкачки рекомендуется не выделять отдельный раздел, а создать swap-файл объёмом 512 Мб.

Установка дополнительного ПО

QEMU Guest Agent

ПО QEMU Guest Agent необходимо для взаимодействия платформы с ВМ. Порядок установки:

  1. Установите пакеты ПО:

    ОС CentOS, AlmaLinux
    yum -y install qemu-guest-agent
    ОС Debian, Ubuntu, Astra Linux
    apt -y install qemu-guest-agent
  2. Добавьте QEMU Guest Agent в автозагрузку:

    systemctl enable --now qemu-guest-agent
  3. Проверьте статус QEMU Guest Agent:

    systemctl status qemu-guest-agent
  4. Проверьте статус службы SELinux:

    sestatus

    Если статус отличается от disable:

    1. Отключите SELinux. Для этого замените в файле /etc/selinux/config строку

      SELINUX=enforcing

      на

      SELINUX=disabled
    2. Перезагрузите ОС.
  5. Если в файле /etc/sysconfig/qemu-ga есть строка вида

    BLACKLIST_RPC=guest-file-open,guest-file-close,guest-file-read,guest-file-write,guest-file-seek,guest-file-flush,guest-exec,guest-exec-status


    1. Закомментируйте или удалите эту строку.
    2. Перезапустите QEMU Guest Agent:

      systemctl restart qemu-guest-agent

SPICE

Если к ВМ, созданным из шаблона, нужно будет подключаться по SPICE, установите пакеты ПО spice-vdagent и spice-webdavd:

Debian, Ubuntu, Astra Linux
apt -y install spice-vdagent spice-webdavd
CentOS, AlmaLinux
yum -y install spice-vdagent

Для шаблона с ОС CentOS добавьте запуск ПО в автозагрузку: 

systemctl enable spice-vdagent

Системные утилиты

Проверьте наличие утилит curl и vim:

curl -V
vim --version

Если какая-то из утилит не установлена, установите её: 

Debian, Ubuntu, Astra Linux
apt -y install curl vim
CentOS, AlmaLinux
yum -y install curl vim

Настройка SSH

Разрешите подключение по SSH с учётной записью суперпользователя и аутентификацией по паролю. Для этого укажите в файле /etc/ssh/sshd_config параметры

PermitRootLogin yes
PasswordAuthentication yes

Очистка истории команд

После установки и настройки всех пакетов ПО очистите историю команд:

rm /root/.bash_history
history -c 

Шаблон для KVM-кластера

Чтобы подготовить шаблон:

  1. Создайте виртуальную машину (ВМ) с нужной версией ОС.
  2. Настройте ОС и установите необходимые пакеты ПО. 
  3. Остановите ВМ.
  4. Определите в каком формате сохранён диск ВМ:

    qemu-img info <disk_path> | grep "file format"
    Пояснения к команде
  5. Скопируйте файл диска ВМ в отдельную директорию. Если диск сохранён не в формате RAW, конвертируйте его в формат RAW:

    qemu-img convert -f <disk_format> -O raw <disk_path> <image_path>
    Пояснения к команде
  6. Оптимизируйте файл образа с помощью утилиты virt-sparsify:

    LIBGUESTFS_BACKEND=direct virt-sparsify --in-place <image_path>
    Пояснения к команде
  7. Очистите образ от персональной информации с помощью утилиты virt-sysprep:

    LIBGUESTFS_BACKEND=direct virt-sysprep --format=raw --operations <sysprep_ops> --add <image_path> --root-password random
    Пояснения к команде
  8. Чтобы у ВМ, создаваемых из шаблона, был уникальный параметр machine-id, выполните команду: 

    LIBGUESTFS_BACKEND=direct virt-sysprep --format=raw --operations machine-id --add <image_path> --root-password random
    Пояснения к команде
  9. Создайте архив с образом в формате .xz:

    xz <image_path>
    Пояснения к команде
  10. Скопируйте архив в директорию репозитория.
  11. Добавьте информацию о шаблоне в файл описания репозитория metadata.json. Подробнее см. в статье Репозитории шаблонов ОС.

Шаблон для LXD-кластера

Чтобы подготовить шаблон:

  1. Создайте директорию /rootfs и скопируйте туда содержимое файловой системы. Для шаблона ОС на основе Debian вы можете использовать утилиту debootstrap, для шаблона ОС на основе Red Hat Linux — утилиту yumbootstrap.
  2. Внесите необходимые изменения в файлы ОС.
  3. Создайте файл метаданных metadata.yaml с обязательными параметрами:
    1. architecture — архитектура процессора. Например, x86_64 или amd64;
    2. creation_date — время создания шаблона в Unix time.

      Пример файла metadata.yaml
      architecture: amd64
      creation_date: 1600761137

      Подробнее о формате файла см. в официальной документации LXD.

  4. Создайте архив tar.gz с директорией /rootfs и файлом metadata.yaml.
  5. Скопируйте архив в директорию репозитория.
  6. Добавьте информацию о шаблоне в файл описания репозитория metadata.json. Подробнее см. в статье Репозитории шаблонов ОС.