Download PDF
Download page Подготовка шаблона ОС Linux.
Подготовка шаблона ОС Linux
Формат шаблона зависит от типа виртуализации в кластере:
- KVM — архив .xz с образом диска ОС в формате RAW;
- LXD — архив tar.gz с содержимым файловой системы и файлом метаданных.
Требования к шаблону
Разметка диска и установка ОС
Используйте разметку диска GPT. Для первого раздела диска укажите тип BIOS boot и размер 2 Мб. Для второго раздела диска укажите тип Linux filesystem и минимально возможный размер (например, 4 ГБ). Установите ОС на второй раздел в минимальной конфигурации.
Для пространства подкачки рекомендуется не выделять отдельный раздел, а создать swap-файл объёмом 512 Мб.
Установка дополнительного ПО
QEMU Guest Agent
ПО QEMU Guest Agent необходимо для взаимодействия платформы с ВМ. Порядок установки:
Установите пакеты ПО:
ОС CentOS, AlmaLinux
yum -y install qemu-guest-agent
CODEОС Debian, Ubuntu, Astra Linux
apt -y install qemu-guest-agent
CODEДобавьте QEMU Guest Agent в автозагрузку:
systemctl enable --now qemu-guest-agent
CODEПроверьте статус QEMU Guest Agent:
systemctl status qemu-guest-agent
CODEПроверьте статус службы SELinux:
sestatus
CODEЕсли статус отличается от disable:
Отключите SELinux. Для этого замените в файле /etc/selinux/config строку
SELINUX=enforcing
CODEна
SELINUX=disabled
CODE- Перезагрузите ОС.
Если в файле /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
CODE- Закомментируйте или удалите эту строку.
Перезапустите QEMU Guest Agent:
systemctl restart qemu-guest-agent
CODE
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-кластера
Чтобы подготовить шаблон:
- Создайте виртуальную машину (ВМ) с нужной версией ОС.
Настройте ОС и установите необходимые пакеты ПО.
- Остановите ВМ.
Определите в каком формате сохранён диск ВМ:
qemu-img info <disk_path> | grep "file format"
BASH<disk_path> — путь к диску ВМ
Скопируйте файл диска ВМ в отдельную директорию. Если диск сохранён не в формате RAW, конвертируйте его в формат RAW:
qemu-img convert -f <disk_format> -O raw <disk_path> <image_path>
BASH<disk_format> — формат исходного диска
<disk_path> — пусть к диску ВМ
<image_path> — путь для сохранения образа
Оптимизируйте файл образа с помощью утилиты virt-sparsify:
LIBGUESTFS_BACKEND=direct virt-sparsify --in-place <image_path>
CODE<image_path> — путь к файлу с образом
Очистите образ от персональной информации с помощью утилиты virt-sysprep:
LIBGUESTFS_BACKEND=direct virt-sysprep --format=raw --operations <sysprep_ops> --add <image_path> --root-password random
CODE<sysprep_ops> — информация для удаления. Рекомендуемое значение: defaults,ca-certificates,kerberos-data,user-account. Подробнее см. в документации к утилите.
<image_path> — путь к файлу с образом
--root-password random — задать случайный пароль для root-пользователя
Чтобы у ВМ, создаваемых из шаблона, был уникальный параметр machine-id, выполните команду:
LIBGUESTFS_BACKEND=direct virt-sysprep --format=raw --operations machine-id --add <image_path> --root-password random
BASH<image_path> — путь к файлу с образом
--root-password random — задать случайный пароль для root-пользователя
Создайте архив с образом в формате .xz:
xz <image_path>
CODE<image_path> — путь к файлу с образом
- Скопируйте архив в директорию репозитория.
- Добавьте информацию о шаблоне в файл описания репозитория metadata.json. Подробнее см. в статье Репозитории шаблонов ОС.
Шаблон для LXD-кластера
Чтобы подготовить шаблон:
- Создайте директорию /rootfs и скопируйте туда содержимое файловой системы. Для шаблона ОС на основе Debian вы можете использовать утилиту debootstrap, для шаблона ОС на основе Red Hat Linux — утилиту yumbootstrap.
- Внесите необходимые изменения в файлы ОС.
- Создайте файл метаданных metadata.yaml с обязательными параметрами:
- architecture — архитектура процессора. Например, x86_64 или amd64;
creation_date — время создания шаблона в Unix time.
Пример файла metadata.yaml
architecture: amd64 creation_date: 1600761137
CODEПодробнее о формате файла см. в официальной документации LXD.
Создайте архив tar.gz с директорией /rootfs и файлом metadata.yaml.
- Скопируйте архив в директорию репозитория.
- Добавьте информацию о шаблоне в файл описания репозитория metadata.json. Подробнее см. в статье Репозитории шаблонов ОС.
Может быть полезно
Связанные статьи: