Создание образа РЕД ОС
Настройка образа РЕД ОС¶
- Для создания образа переходим на страницу продукта https://redos.red-soft.ru/product/downloads/
-
Качаем необходимый дистрибутив - в данном случае это версия 7.3.4, которая находится в свободном доступе (https://files.red-soft.ru/redos/7.3/x86_64/iso/redos-MUROM-7.3.4-20231220.0-Everything-x86_64-DVD1.iso)
-
Заходим в консоль администрирования zVirt
-
Переходим в пункт Хранилище -> Диски
-
Добавляем только что скаченный iso-образ в хранилище дисков и выбираем пункт Загрузить -> Начать
-
Выбираем образ, нажимаем Загрузить
Ожидаем окончание загрузки
-
Переходим в пункт Ресурсы -> Виртуальные машины, для создания ВМ для Сloud-init
-
Создаем ВМ, с необходимыми параметрами.
Диск 10Gb
Выбираем доступную сеть
Переходим в Параметры загрузки и выставляем параметры:
- Операционная система : RED-OS 7.x
- Первое устройство: CD-ROM
- Подключать CD: выберите только что загруженный образ (в данном случае redos-MUROM-7.3.4)
Остальные настройки оставляем по умолчанию. Нажимаем ОК, для сохранения конфигурации.
-
Выбираем в списке виртуальных машин созданную ВМ и запускаем ее
-
Открываем консоль ВМ, скачивая файл настройки консоли
Должен быть установлен клиент, который поддерживает протокол VNC/SPICE
К примеру бесплатный Virtual Machine Viewer
-
Продолжаем установку в консоли: выбираем пункт 1. Установить RED OS
-
Заходим в shell ОС и производим модификации ВМ для подготовки его к Cloud-init
В файле
/etc/default/grub
добавляем к параметруGRUB_CMDLINE_LINUX
дополнительные ключи для наименования сетевых интерфейсов в формате ethX"net.ifnames=0 biosdevname=0
Сделать это можно одной командой
sed -i 's/GRUB_CMDLINE_LINUX=\"/GRUB_CMDLINE_LINUX=\"net.ifnames=0 biosdevname=0 /g' /etc/default/grub
Применяем эти изменения
grub2-mkconfig --output /boot/grub2/grub.cfg
-
Устанавливаем службы Cloud-init
dnf install cloud-init cloud-utils-growpart -y
Включаем автостарт службsystemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
Оставляем возможность входить root по паролюsed -i "s/disable_root: true/disable_root: false\nssh_pwauth: 1/g" /etc/cloud/cloud.cfg
Чтобы отключить запуск cloud-init при последующих перезагрузках
cat <<EOF>> /etc/cloud/cloud.cfg runcmd: - touch /etc/cloud/cloud-init.disabled EOF
Указываем какие источники для cloud-init использовать. Для zvirt можно оставить
[ConfigDrive, NoCloud, None]
cat <<'EOF'>> /etc/cloud/cloud.cfg.d/99_overrides.cfg datasource_list: [ ConfigDrive, OpenNebula, DigitalOcean, Azure, AltCloud, OVF, MAAS, GCE, OpenStack, CloudSigma, SmartOS, Bigstep, Scaleway, AliYun, Ec2, CloudStack, Hetzner, IBMCloud, Oracle, Exoscale, RbxCloud, UpCloud, VMware, Vultr, LXD, NWCS, NoCloud, None ] EOF
Пример увеличения диска при развертывании на диск большего размера
cat <<'EOF'>> /etc/cloud/cloud.cfg.d/99-growpart.cfg growpart: mode: auto devices: [/dev/sda2] ignore_growroot_disabled: false ## Use Runcmd to expand LVM runcmd: - [growpart, /dev/sda,2] - [pvresize, /dev/sda2] - [lvextend, -l, +100%FREE, -r, /dev/mapper/vg01-root_lv] EOF
Очистка артефактов, подготовка системы к cloud-init и выключение
dnf clean all cloud-init clean -l -s : > /etc/machine-id systemctl poweroff
-
Преобразуем данную ВМ в шаблон для дальнейшего использования
-
При необходимости использовать шаблон в других системах виртуализации можно экспортировать его в универсальный формат OVA
Настройка Нимбиус¶
Переходим в консоль Нимбиус и создаем Custom Cloud-init Template для template redos
-
Выбираем пункт Compute -> Infrastructure -> PXE
-
В System Image Type создаем раздел
redos
и тип VM and Instance, если еще не создан -
Затем переходим в раздел Customization Templates и создаем шаблон для cloud-init
Примечание
Желательно для одной платформы использовать один начальный префикс, в данном случае
redos-*
-
В раздел Scripts добавляем такой шаблон для Cloud-init
write_files:
- path: /etc/netplan/50-cloud-init.yaml
content: |
network:
version: 2
ethernets:
enp1s0:
addresses: [1.1.1.1/24]
routes:
- to: default
via: 2.2.2.2
dhcp6: false
nameservers:
addresses:
- 1.1.1.1
search:
- google.com
dhcp4: false
optional: true
- path: /etc/cloud/cloud.cfg.d/99-custom-networking.cfg
content: |
network: {config: disabled}
runcmd:
- netplan --debug apply