Перейти к содержанию

Создание образа РЕД ОС

Настройка образа РЕД ОС

  1. Для создания образа переходим на страницу продукта https://redos.red-soft.ru/product/downloads/
  2. Качаем необходимый дистрибутив - в данном случае это версия 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)

  3. Заходим в консоль администрирования zVirt

  4. Переходим в пункт Хранилище -> Диски

  5. Добавляем только что скаченный iso-образ в хранилище дисков и выбираем пункт Загрузить -> Начать

  6. Выбираем образ, нажимаем Загрузить

    Ожидаем окончание загрузки

  7. Переходим в пункт Ресурсы -> Виртуальные машины, для создания ВМ для Сloud-init

  8. Создаем ВМ, с необходимыми параметрами.

    Диск 10Gb

    Выбираем доступную сеть

    Переходим в Параметры загрузки и выставляем параметры:

    • Операционная система : RED-OS 7.x
    • Первое устройство: CD-ROM
    • Подключать CD: выберите только что загруженный образ (в данном случае redos-MUROM-7.3.4)

    Остальные настройки оставляем по умолчанию. Нажимаем ОК, для сохранения конфигурации.

  9. Выбираем в списке виртуальных машин созданную ВМ и запускаем ее

  10. Открываем консоль ВМ, скачивая файл настройки консоли

    Должен быть установлен клиент, который поддерживает протокол VNC/SPICE

    К примеру бесплатный Virtual Machine Viewer

  11. Продолжаем установку в консоли: выбираем пункт 1. Установить RED OS

  12. Заходим в 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
    

  13. Устанавливаем службы 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
    

  14. Преобразуем данную ВМ в шаблон для дальнейшего использования

  15. При необходимости использовать шаблон в других системах виртуализации можно экспортировать его в универсальный формат OVA

Настройка Нимбиус

Переходим в консоль Нимбиус и создаем Custom Cloud-init Template для template redos

  1. Выбираем пункт Compute -> Infrastructure -> PXE

  2. В System Image Type создаем раздел redos и тип VM and Instance, если еще не создан

  3. Затем переходим в раздел Customization Templates и создаем шаблон для cloud-init

    Примечание

    Желательно для одной платформы использовать один начальный префикс, в данном случае redos-*

  4. В раздел Scripts добавляем такой шаблон для Cloud-init

Customization Template Scripts
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