isocut – инструмент настройки образа ОС

Введение

Размер полного открытого образа операционной системы OpenScaler велик и процесс загрузки или передачи образа занимает много времени. Кроме того, когда для установки операционной системы используется открытый образ OpenScaler, то в некоторых сценариях использования устанавливаются все пакеты RPM, содержащиеся в образе. Вы не можете выбрать установку только необходимых пакетов программного обеспечения.

В некоторых случаях бывает не требуется устанавливать полный пакет программного обеспечения, предоставляемый образом или бывает необходимо установить дополнительные пакеты программного обеспечения. В этом случае может прийти на помощь базовый инструмент из состава операционной системы OpenScaler isocut — инструмент для настройки образа. Вы можете использовать этот инструмент для настройки ISO-образа, содержащего только необходимые пакеты RPM, на основе открытого образа OpenScaler. Пакеты программного обеспечения могут быть теми, которые содержатся в официальном ISO-образе или дополнительными для удовлетворения пользовательских требований.

В этой статье будет описано как установить и использовать isocut.

Установка isocut

Аппаратные и программные  требования

Для создания ISO-файла с помощью isocut на компьютере требуются следующие аппаратные и программные средства:

  • Архитектура процессора: AArch64 или X86_64
  • Операционная система: OpenScaler 22.03 LTS или новее
  • Дисковое пространство: 60 ГБ или более места на диске для запуска isocut и хранения ISO-образов.

Подготовка тестовой ОС

Ниже в качестве примера для использования был взят x86_64 совместимый сервер и была установлена ОС OpenScaler 22.03 LTS SP3. Достаточно минимальной конфигурации.

  1. Убедитесь, что на установлена ОС OpenScaler 22.03 LTS SP3. Для этого выполните команду:

$ cat /etc/openScaler-release

openScaler release 22.03 (LTS-SP3)

  1. Загрузите ISO-образ (должен быть полным, т.е. everything) соответствующей архитектуры и сохраните его в любом каталоге (рекомендуется, чтобы доступное дисковое пространство для создания каталога и файлов превышало 20 ГБ). В этом примере ISO-образ сохраняется в каталоге /home/isocut_iso. Выполните следующие команды:

mkdir /home/isocut_iso

wget https://repo.openscaler.ru/openScaler-22.03-LTS-SP3/ISO/x86_64/openScaler-22.03-LTS-SP3-everything-x86_64-dvd.iso

Адрес загрузки образа x86_64 следующий:

https://repo.openscaler.ru/openScaler-22.03-LTS-SP3/ISO/x86_64/openScaler-22.03-LTS-SP3-everything-x86_64-dvd.iso

Примечание: Адрес для загрузки образа AArch64 следующий:

https://repo.openscaler.ru/openScaler-22.03-LTS-SP3/ISO/aarch64/openScaler-22.03-LTS-SP3-everything-aarch64-dvd.iso

  1. Создайте файл /etc/yum.repos.d/local.repo для настройки локального репозитория Yum. Ниже приведен пример файла конфигурации. Параметр baseurl — это каталог для монтирования ISO-образа.

[local]

name=local

baseurl=file:///home/isocut_mount

gpgcheck=0

enabled=1

  1. Запустите следующую команду от имени пользователя root, чтобы смонтировать образ в каталог /home/isocut_mount (убедитесь, что каталог монтирования совпадает с каталогом baseurl, настроенным в файле репозитория) в качестве хранилища Yum:

sudo mount -o loop /home/isocut_iso/openScaler-22.03-LTS-SP3-everything-x86_64-dvd.iso /home/isocut_mount

  1. Запускаем репозиторий Yum.

yum clean all

yum makecache

  1. Устанавливаем isocut от имени пользователя root командой ниже (также см. Рисунок 1):

sudo yum install -y isocut

Рисунок 1 Пример успешного выполнения команды установки пакета isocut

7. Запустите следующую команду от имени пользователя root, чтобы убедиться, что инструмент успешно установлен:

# sudo isocut -h

Checking input …

usage: isocut [-h] [-temp temporary_workspace] [-rpms rpm_path] [-install_pic install_picture_path] [-kickstart kickstart_file_path] [-product product_name] [-version version_number]

              [-cut_packages cut_packages]

              source_iso dest_iso

Cut openScaler iso to small one

positional arguments:

  source_iso            source iso image

  dest_iso              destination iso image

optional arguments:

  -h, –help            show this help message and exit

  -temp temporary_workspace

                        temporary path

  -rpms rpm_path        extern rpm packages path

  -install_pic install_picture_path

                        install bg picture path

  -kickstart kickstart_file_path

                        kickstart file path

  -product product_name

                        product name

  -version version_number

                        version number

  -cut_packages cut_packages

                        cut packages, yes/no, default is yes

Также предлагается ниже на Рисунке 2 пример выполнения такой команды с помощью.

Рисунок 2 Пример выполнения команды получения справки для инструмента isocut -h

Адаптация и настройка образа

В этом разделе описывается, как использовать isocut для создания образов путем адаптации или добавления пакетов RPM к образу OpenScaler.

Описание команды

Формат

Запустите команду isocut, чтобы использовать инструмент. Формат команды следующий:

isocut [ –help | -h ] [ -t <temporary_workspace> ] [ -r <rpm_path> ] [ -k <kickstart_file_path> ] [ -p <product_name> ] [ -v <version_number>] [ -i <install_picture_path> ] [ -c <cut_packages> ] < source_iso > < dest_iso >

Описание параметров

Параметр              Обязательность  Описание

–help | -h                No   Запрашивает справочную информацию о команде.

-t <temporary_workspace>   No   Указывает путь к временному каталогу temp_path для запуска инструмента, который является абсолютным путем. По умолчанию /tmp.

-r <rpm_path>              No   Указывает путь к пакетам RPM, которые будут добавлены в ISO-образ.

-k <kickstart_file_path>   No   Указывает путь к шаблону kickstart, если для автоматической установки используется kickstart.

-p <product_name>          No   Наименование пакета

-v <version_number>        No   Версия пакета

-i <install_picture_path>  No   Путь к фоновым изображениям, использованным при установке

-c <cut_packages>          No   Указывает, нужно ли сокращать пакеты RPM. Значение по умолчанию – сокращать пакеты RPM.

source_iso                 Yes  Путь и имя исходного ISO-образа, который необходимо указать. Если путь не указан, по умолчанию используется текущий.

dest_iso                   Yes  Указывает путь и имя нового ISO-образа, созданного инструментом. Если путь не указан, по умолчанию используется текущий.

Фоновые изображения, используемые при установке, должны соответствовать следующим требованиям к наименованию и разрешению:

  • Фон левой боковой панели при установке: sidebar-bg.png, 290×780
  • Логотип в верхнем левом углу при установке: sidebar-logo.png, 132×32
  • Фон верхней панели инструментов на странице настроек: top bar-bg.png, 831×105.

Источники пакета программного обеспечения

RPM-пакеты нового образа могут быть двух типов:

  • Пакеты, содержащиеся в официальном ISO-образе. В этом случае устанавливаемые RPM-пакеты указаны в файле конфигурации /etc/isocut/rpmlist. Формат именования пакета — architecture. Например, kernel.aarch64.
  • Дополнительные пакеты. В этом случае используйте параметр -r, чтобы указать путь, по которому хранятся пакеты RPM, при запуске команды isocut и добавьте имена пакетов RPM в конфигурационный файл /etc/isocut/rpmlist. (Смотрите формат имен выше).

Замечание. 1) Во время настройки образа, если пакет RPM, указанный в файле конфигурации, не может быть найден, пакет RPM не будет добавлен в образ. 2) Если зависимость пакета RPM неверна, при запуске isocut может появиться сообщение об ошибке.

Kickstart функции

Вы можете использовать kickstart для автоматической установки образов, используя параметр -k, чтобы указать файл kickstart при запуске команды isocut.

isocut предоставляет шаблон kickstart (конфигурационный файл находится по этому пути /etc/isocut/anaconda-ks.cfg). Вы можете изменить шаблон по мере необходимости.

Изменение kickstart шаблона

Если вам необходимо использовать шаблон kickstart, предоставленный isocut, внесите следующие изменения:

  • Настройте пароль пользователя root и пароль GRUB2 в файле /etc/isocut/anaconda-ks.cfg. В противном случае автоматическая установка образа будет приостановлена во время процесса установки пароля, ожидая, пока вы введете пароли вручную.
  • Если вы хотите указать дополнительные пакеты RPM и использовать kickstart для автоматической установки, укажите пакеты RPM в поле %packages как в файле /etc/isocut/rpmlist, так и в файле kickstart.

Смотрите следующий раздел для получения подробной информации о том, как изменить файл kickstart.

Настройка начальных паролей

Установка начального пароля пользователя root

Установите начальный пароль пользователя root следующим образом в файле /etc/isocut/anaconda-ks.cfg. Замените ${pwd} на зашифрованный пароль командой:

rootpw –iscrypted ${pwd}

Получите первоначальный пароль пользователя root следующим образом (требуются права root):

  1. Добавьте пользователя для генерации пароля, например, testUser:

sudo useradd testUser

  1. Установите пароль для пользователя testUser. Выполните следующую команду, чтобы установить пароль в соответствии с запросом:

$ sudo passwd testUser

Changing password for user testUser.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

  1. Просмотрите файл /etc/shadow, чтобы получить зашифрованный пароль. Зашифрованный пароль — это строка между двумя двоеточиями (:), следующая за именем пользователя для тестирования. (В качестве примера используется *******).

$ sudo cat /etc/shadow | grep testUser

testUser:***:19052:0:90:7:35::

  1. Выполните следующую команду, чтобы заменить поле pwd в файле /etc/isocut/anaconda-ks.cfg на зашифрованный пароль (замените ******* на фактический пароль).:

rootpw –iscrypted ***

Настройка начального пароля GRUB2

Добавьте следующую конфигурацию в файл /etc/isocut/anaconda-ks.cfg, чтобы установить первоначальный пароль GRUB2: замените ${pwd} на зашифрованный пароль.

%addon com_grub_safe –iscrypted –password=’${pwd}’

%end

Замечание. 1. Для настройки начального пароля GRUB требуются права root. 2. Пользователь по умолчанию, соответствующий паролю GRUB  —  root. В системе должна существовать утилита grub2-set-password. Если нет, то установите ее заранее.

  1. Выполните следующую команду и установите пароль GRUB2 в соответствии с запросом:

$ sudo grub2-set-password -o ./

Enter password:

Confirm password:

grep: .//grub.cfg: No such file or directory

WARNING: The current configuration lacks password support!

Update your configuration with grub2-mkconfig to support this feature.

  1. После выполнения команды в текущем каталоге будет создан файл user.cfg. Содержимое, начинающееся с grub.pbkdfsha512, является зашифрованным паролем GRUB2.

$ sudo cat user.cfg

GRUB2_PASSWORD=grub.pbkdf2.sha512.***

  1. Добавьте следующую информацию в файл /etc/isocut/anaconda-ks.cfg. Замените ******* на зашифрованный пароль GRUB2.

%addon com_grub_safe –iscrypted –password=’grub.pbkdf2.sha512.***’

%end

Настройка поля %packages

Если вы хотите указать дополнительные пакеты RPM и использовать kickstart для автоматической установки, укажите пакеты RPM в поле %packages как в файле /etc/isocut/rpmlist, так и в файле kickstart.

В этом разделе описывается, как указать пакеты RPM в файле /etc/isocut/anaconda-ks.cfg.

Конфигурации %packages в файле /etc/isocut/anaconda-ks.cfg по умолчанию следующие:

%packages –multilib –ignoremissing

acl.aarch64

aide.aarch64

……

NetworkManager.aarch64

%end

Добавьте указанные пакеты RPM в конфигурации %packages в следующем формате:

software_package_name.architecture. Например, kernel.aarch64.

 

%packages –multilib –ignoremissing

acl.aarch64

aide.aarch64

……

NetworkManager.aarch64

kernel.aarch64

%end

Руководство по использованию isocut

 Примечание:

  • Не изменяйте и не удаляйте элементы конфигурации по умолчанию в файле /etc/iso cut/rpmlist.
  • Для всех операций по обеспечению безопасности требуются права суперпользователя.
  • Исходный образ, который необходимо настроить, может быть базовым образом или образом для всего. В этом примере используется базовый образ openScaler-22.03-LTS-SP3-everything-x86_64-dvd.iso.
  • В этом примере предположим, что новый образ называется iso и хранится в каталоге /home/result, временным каталогом для запуска инструмента является /home/temp, а дополнительные пакеты RPM хранятся в каталоге /home/rpms.

Пример использования

  1. Откройте конфигурационный файл /etc/isocut/rpm list и укажите пакеты RPM, которые необходимо установить (из официального ISO-образа).

sudo vi /etc/isocut/rpmlist

  1. Убедитесь, что объем временного каталога для запуска isocut превышает 8 ГБ. Временным каталогом по умолчанию является /tmp. Вы также можете использовать параметр -t, чтобы указать другой каталог в качестве временного каталога. Путь к каталогу должен быть абсолютным. В этом примере используется каталог /home/temp. Следующие выходные данные команды показывают, что доступное место на диске в каталоге /home составляет 147 ГБ, что соответствует требованиям.

# df -h

Filesystem                   Size  Used Avail Use% Mounted on

devtmpfs                     4.0M     0  4.0M   0% /dev

tmpfs                         31G     0   31G   0% /dev/shm

tmpfs                         13G  1.3G   11G  11% /run

tmpfs                        4.0M     0  4.0M   0% /sys/fs/cgroup

/dev/mapper/openscaler-root  167G  3.7G  155G   3% /

tmpfs                         31G  248K   31G   1% /tmp

/dev/sda2                    974M  139M  769M  16% /boot

/dev/mapper/openscaler-home  147G   18G  122G  13% /home

/dev/mapper/openscaler-var   201G  5.0G  186G   3% /var

/dev/sda1                    599M  6.2M  593M   2% /boot/efi

/dev/loop0                    18G   18G     0 100% /home/isocut_mount

  1. Адаптируйте и настройте образ.

Сценарий 1: Все RPM-пакеты нового образа взяты из официального ISO-образа.

# sudo isocut -t /home/temp /home/isocut_iso/openScaler-22.03-LTS-SP3-everything-x86_64-dvd.iso /home/result/new.iso

Checking input …

Checking user …

Checking necessary tools …

Initing workspace …

Copying basic part of iso image …

Getting the description of iso image …

Downloading rpms …

Finish create yum conf

finished

Regenerating repodata …

Checking rpm deps …

Replacing install background pictures …

Updating EFI config file …

Updating legacy config file …

Updating treeinfo file …

Customizing kickstart file …

Remaking iso …

Adding checksum for iso …

Adding sha256sum for iso …

ISO cutout succeeded, enjoy your new image “/home/result/new.iso”

isocut.lock unlocked …

Пример успешного выполнения команды для этого сценария можно увидеть на Рисунке 3 ниже:

Рисунок 3 Успешный результат выполнения команды для сценария 1 ( со всеми доступными пакетами из официального образа ОС)

Сценарий 2: Пакеты RPM для нового образа взяты из официального ISO-образа и дополнительных пакетов в /home/rpms:

# sudo isocut -t /home/temp -r /home/rpms /home/isocut_iso/openScaler-22.03-LTS-SP3-everything-x86_64-dvd.iso /home/result/new.iso

Checking input …

Checking user …

Checking necessary tools …

Initing workspace …

Copying basic part of iso image …

Getting the description of iso image …

Downloading rpms …

Finish create yum conf

finished

Regenerating repodata …

Checking rpm deps …

Replacing install background pictures …

Updating EFI config file …

Updating legacy config file …

Updating treeinfo file …

Customizing kickstart file …

Remaking iso …

Adding checksum for iso …

Adding sha256sum for iso …

ISO cutout succeeded, enjoy your new image “/home/result/new.iso”

isocut.lock unlocked …

Пример результата выполнения этой команды можно увидеть ниже на Рисунке 4.

Рисунок 4 Успешный результат выполнения команды для сценария 2 ( со всеми пакетами из официального образа ОС + свои дополнительные)

Сценарий 3. Для автоматической установки используется файл kickstart. Необходимо изменить файл /etc/isocut/anaconda-ks.cfg следующей командой:

sudo isocut -t /home/temp -k /etc/isocut/anaconda-ks.cfg /home/isocut_iso/openScaler-22.03-LTS-SP3-everything-x86_64-dvd.iso /home/result/new.iso

Функции cut_packages

На основе стандартного ISO-образа, выпущенного сообществом OpenScaler, пакет RPM может быть адаптирован по запросу в процессе настройки установки.

Указав параметр cut_packages, можно выбрать следует ли сокращать пакеты RPM.

Пример использования

Сценарий 1: Пользователь решает не сокращать пакеты RPM.:

sudo isocut -t /opt/tlriso/tmp -p openScaler -c no -v 22.03-LTS-SP3 /home/isocut_iso/openScaler-22.03-LTS-SP3-everything-x86_64-dvd.iso openScaler-22.03-LTS-SP3-x86_64-dvd_new.iso

Сценарий 2: Пользователь решает отключить пакеты RPM. Выполните следующую команду:

sudo isocut -t /opt/tlriso/tmp -p openScaler -c yes -v 22.03-LTS-SP3 /home/isocut_iso/openScaler-22.03-LTS-SP3-everything-x86_64-dvd.iso openScaler-22.03-LTS-SP3-x86_64-dvd_new.iso

Сценарий 3: Пакеты RPM по умолчанию отключены, а значение параметра пустое.

sudo isocut -t /opt/tlriso/tmp -p openScaler -v 22.03-LTS-SP3 /home/isocut_iso/openScaler-22.03-LTS-SP3-everything-x86_64-dvd.iso openScaler-22.03-LTS-SP3-x86_64-dvd_new.iso

Результаты

По результатам успешной установки и использования isocut для ОС OpenScaler 22.03 LTS SP3 можно сделать вывод, что данное ПО совместимо с ОС семейства OpenScaler и такое решение может быть в дальнейшем успешно использовано для создания своих собственных сборок операционной системы с нужным количеством пакетов, а также приемлемым размером дистрибутива. Программное обеспечение isocut сокращает затраты на развертывание ОС, одновременно снижая расходы на занимаемое дисковое пространство под нужды ОС конкретного пользователя и предоставляет простой механизм использования для пользователей, выполнения различного круга задач с применением cерверной ОС OpenScaler.