2.1.10.6.1 Автоматизация развертывания (kickstart)
Порядок установки
Создание файла кикстарта
Проверка файла кикстарт
Расположение файла кикстарта
Создание загрузочного диска
Начало установки
Запуск установки вручную
Автоматический запуск установки
Синтаксис кикстарта
Команды и интерпретаторы
Секция %packages
Секция %pre
Секция %post
Пример файла конфигурации
Окружение
- Версия ОС: 7.3
- Конфигурация ОС: Рабочая станция
- Редакция ОС: Стандартная
Процесс установки операционной системы можно автоматизировать, определив все необходимые данные (список пакетов, схемы разделов, часовой пояс, языковые настройки и т. д.) в одном файле — файле kickstart. Файлы кикстарта могут располагаться на отдельном сервере и подгружаться во время установки.
Данный способ очень удобен и является наиболее предпочтительным для сетевых и системных администраторов, т.к. один файл может использоваться для одновременной установки системы на нескольких компьютерах.
Сценарии и журналы кикстарта хранятся в каталоге /tmp для помощи в диагностике ошибок при установке.
Порядок установки
Автоматизированная установка может быть запущена с локального жесткого диска, DVD или с сервера NFS, FTP, HTTP, HTTPS.
Для этого необходимо:
1. Создать файл кикстарта.
2. Записать файл на локальный или удаленный носитель.
3. Создать загрузочный диск, с которого будет запускаться установка.
4. Предоставить доступ к установочной структуре.
5. Начать процесс установки.
Создание файла кикстарта
Файл кикстарта представляет собой обычный текстовый файл, содержащий параметры установки, каждый из которых определяется ключевым словом. Файл можно создать самостоятельно в любом текстовом редакторе, способном сохранять файлы в формате ASCII, например, в vim, либо модифицировать готовый шаблон, который автоматически создается в ходе установки системы, исходя из выбранных параметров. Файл (шаблон) anaconda-ks.cfg можно найти в каталоге /root/.
При создании файла кикстарта следует придерживаться нескольких рекомендаций:
-
Секции файла должны быть упорядочены. Элементы внутри секций могут располагаться в любом порядке. Порядок секций следующий:
-
Раздел команд (обязательные параметры должны быть определены);
-
Раздел
%packages; -
Разделы
%preи%post, которые могут следовать в любом порядке и обязательными не являются.
-
Секции %packages, %post и %pre должны завершаться директивой %end. В противном случае файл не будет обработан.
-
Элементы, не отмеченные как обязательные, могут быть опущены;
-
Если обязательный параметр не определен, программа установки предложит его ввести так же, как и во время обычной установки. После получения ответа установка будет продолжена без вмешательства пользователя (если снова не столкнется с отсутствующим параметром);
-
Строки, начинающиеся с символа
#, интерпретируются как комментарии и игнорируются.
Проверка файла кикстарт
После создания файла кикстарта рекомендуется проверить его формат. Для этого в репозитории РЕД ОС имеется программа ksvalidator в составе пакета pykickstart.
Для установки пакета перейдите в сеанс пользователя root:
su -
и выполните команду:
dnf install pykickstart
Для проверки формата файла выполните команду (с правами локального пользователя):
ksvalidator /<путь_к_файлу>/kickstart.ks
В параметре <путь_к_файлу> укажите свой актуальный путь.
Подробную информацию по использованию ksvalidator см. в справке man ksvalidator.
Возможности такой проверки ограничены. Структура файла может быть достаточно сложной и, несмотря на то, что ksvalidator проверит синтаксис файла и поможет убедиться в отсутствии устаревших параметров, это не гарантирует успех установки. Более того, секции %pre, %post и %packages не проверяются.
Расположение файла кикстарта
Файл кикстарта может быть расположен:
-
на съемном носителе (DVD, USB);
-
на локальном жестком диске;
-
на доступном сетевом ресурсе.
Размещение файла кикстарта в сети используется чаще — для автоматизации установки в системах, подключенных к сети. Сначала устанавливаемая система загружается с PXE-сервера, затем файл кикстарта загружается с удаленного диска, а перечисленные в файле пакеты в дальнейшем будут установлены в системе.
Доступ программы установки к файлу кикстарта необходимо обеспечить аналогично тому, как это делается для установочных образов.
Создание загрузочного диска
Подробную информацию о создании загрузочных носителей и записи iso-образов см. в нашей инструкции «Создание загрузочных носителей».
Начало установки
Для запуска кикстарт-установки используется параметрinst.ks=.
Также установку можно запустить с PXE-сервера. В файл конфигурации загрузчика можно добавить параметр автоматического запуска установки. Этот подход позволяет полностью автоматизировать процесс загрузки.
Приведенные ниже инструкции являются общими и могут отличаться в зависимости от архитектуры.
Запуск установки вручную
Ручной запуск установки подразумевает некоторую степень взаимодействия с пользователем, например, добавление параметров в строке boot:.
Для запуска установки необходимо выполнить следующие действия:
1. Загрузить систему с локального носителя (CD, DVD, USB).
2. В строке приглашения загрузки добавить параметр inst.ks=<путь_к_файлу>/kickstart.ks, где вместо <путь_к_файлу> укажите свой путь. Если файл расположен на другом компьютере в сети, дополнительно потребуется определить параметр ip=. Обычно также требуется указать расположение пакетов с помощью inst.repo=.
3. Подтвердите выбранные параметры и начните установку.
Если файл кикстарта не содержит ошибок, процесс установки сможет завершиться без необходимости ввода каких-либо данных.
Автоматический запуск установки
Для автоматического запуска установки необходимо выполнить следующие действия:
1. Открыть файл конфигурации загрузчика на PXE-сервере и добавить параметр inst.ks=.
-
для систем с BIOS можно использовать файл default или путь, определяемый с помощью IP-адреса. В конец строки
appendнеобходимо добавить параметрinst.ks=:
nano /var/lib/tftpboot/pxelinux.cfg/default
…
APPEND initrd=images/REDOS/images/pxeboot/initrd.img ramdisk_size=128000 ip=dhcp method=http://192.168.1.38/images/REDOS/ devfs=nomount inst.ks=http://192.168.1.38/ks.cfg
…
-
для систем с UEFI параметр
inst.ks=добавляется к строкеkernelв файле grub.cfg:
kernel vmlinuz inst.ks=http://192.168.1.38/ks.cfg
Пример grub.cfg:
function load_video {
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod all_video
}
load_video
set gfxpayload=keep
insmod gzio
menuentry 'REDOS 7.3' {
linux images/REDOS/images/pxeboot/vmlinuz ip=dhcp kernel vmlinuz inst.repo=http://192.168.1.38/images/REDOS/ inst.ks=http://192.168.1.38/ks.cfg
initrd images/REDOS/images/pxeboot/initrd.img
}
2. Загрузить программу установки с сервера PXE.
Если файл кикстарта не содержит ошибок, процесс установки сможет завершиться без необходимости ввода каких-либо данных.
Синтаксис кикстарта
Если за параметром следует знак равенства, необходимо определить его значение. В приведенных примерах параметры в квадратных скобках ([ ]) не являются обязательными.
Ниже будут рассмотрены основные необходимые команды для создания файла кикстарта.
Команды и интерпретаторы
bootloader
bootloader (обязательный) — определяет порядок установки загрузчика.
Параметры:
-
--append=— содержит список параметров ядра (указываются через запятую), например:
bootloader --location=mbr --append="hdd=ide-scsi ide=nodma"
Параметры rhgb и quiet используются по умолчанию, даже если они явно не заданы, или строка --append= вовсе не определена.
-
--boot-drive=— диск, на который будет записан загрузчик и с которого будет загружаться система. -
--driveorder— определяет порядок загрузки в BIOS, например:
bootloader --driveorder=sda,hda
-
--location=— место расположения загрузочной записи. Допустимые значения:
-
mbr(используется по умолчанию) - его поведение определяется наличием MBR или GPT; -
partition— установка загрузчика в первый сектор раздела, содержащего ядро; -
none— не устанавливать загрузчик.
В большинстве случаев этот параметр можно не определять.
-
--password=— пароль GRUB2. Рекомендуется установить пароль для ограничения доступа к оболочке GRUB2 во избежание несанкционированной передачи параметров ядру.
Если пароль задан, будет предложено ввести имя пользователя. По умолчанию будет выбран пользователь root.
-
--iscrypted— разрешает использование зашифрованного пароля, который изначально был создан помощью параметра--password=. В противном случае пароль хранится в открытой форме.
Пароль можно зашифровать с помощью команды grub2-mkpasswd-pbkdf2. Скопируйте код из строки вывода, начинающейся с grub.pbkdf2, и сохраните его в файл кикстарта. Пример записи с зашифрованным паролем:
bootloader --iscrypted --password=grub.pbkdf2.sha512.10000.5520C6C9832F3AC3D149AC0B24BE69E2D4FB0DBEEDBD2<...>95CA4BA4381F8550510B75E8E0BB2938990. C688B6F0EF935701FF9BD1A8EC7FE5B<...>EA3384E56EB38A2E39102F5334C47405E
-
--timeout=— время ожидания в секундах, по истечении которого начнется загрузка в соответствии с параметром--default=. -
--default=— определяет загрузочный образ, который будет использоваться по умолчанию.
clearpart
clearpart (дополнительный) — удаляет разделы с диска, прежде чем создавать новые. По умолчанию разделы не удаляются.
Параметры:
-
--all— удаляет все разделы. -
--drives=— удаляет разделы на заданных дисках:
clearpart --drives=hda,hdb --all
-
--list=— список разделов для удаления. Допускается выбор разделов на разных дисках. Этот параметр переопределяет--allи--linux.
clearpart --list=sda2,sda3,sdb1
-
--initlabel— метка диска, которая будет выбираться по умолчанию для заданной архитектуры (например, msdos для x86). Используется вместе с--all. -
--linux— удаляет разделы Linux. -
--none(по умолчанию) — не удалять разделы.
keyboard
keyboard (дополнительный) — выбор раскладки клавиатуры.
Параметры:
-
--vckeymap=— определяет раскладку VConsole. В качестве значения можно выбирать имена файлов из /usr/lib/kbd/keymaps/* без расширения .map.gz. -
--xlayouts=— список раскладок X через запятую без пробелов. Значения можно определить в форме<раскладка>(например, cz) или<раскладка_(вариант)>(например, cz (qwerty)).
Полный список раскладок можно найти на справочной странице xkeyboard-config(7), в секции Layouts.
-
--switch=— комбинации клавиш для переключения между раскладками. Несколько значений разделяются запятыми без пробелов. Например, переключение раскладки клавиатуры сочетанием Alt+Shift выглядит следующим образом:
keyboard --xlayouts=us,ru --switch=grp:alt_shift_toggle
Описание дополнительных параметров можно найти на справочной странице xkeyboard-config(7), в секции Options.
Опции --vckeymap= и --xlayouts= не должны использоваться вместе.
lang
lang (обязательный) — определяет язык, который будет использоваться в ходе установки и по умолчанию — в установленной системе. Пример выбора английского языка:
lang en_US
Список кодов языков приведен в файле /usr/share/system-config-language/locale-list, в первом столбце.
Некоторые языки, в частности китайский, японский, корейский и языки индийской группы, не поддерживаются в текстовом режиме установки. Если такого рода язык задан с помощью команды lang, установка будет продолжена на английском, а указанный язык будет включен в готовой системе.
Параметры:
-
--addsupport=— список дополнительных языков через запятую без пробелов.
lang en_US --addsupport=ru_RU,de_DE
logvol
logvol (дополнительный) — помогает создать логический том LVM.
Формат команды:
logvol <точка_монтирования> --vgname=<имя_группы> --size=<размер> --name=<имя> [<параметры>]
Параметры:
-
--noformat— использует существующий логический том без форматирования. -
--useexisting— использует существующий логический том и повторно его форматирует. -
--fstype=— тип файловой системы: xfs, ext2, ext3, ext4, swap или vfat. -
--fsoptions=— строка параметров монтирования файловой системы, заключенная в кавычки. В готовой системе эта строка будет записана в /etc/fstab. -
--label=— метка логического тома. -
--grow— увеличить размер логического тома до заданной величины или заполнить все свободное место. -
--size=— минимальный размер тома в мегабайтах. -
--maxsize=— максимально допустимый размер тома в мегабайтах. Укажите целое значение без единиц, например500. -
--resize— изменение размера тома. Также надо будет определить параметры--useexistingи--size. -
--percent=— размер увеличения логического тома в процентной доле от доступного места в группе томов. Используется вместе с--sizeи--grow.
Сначала необходимо создать раздел, затем группу логических томов, а уже потом — логический том:
part pv.01 --size 3000 volgroup myvg pv.01 logvol / --vgname=myvg --size=2000 --name=rootvol
network
network (дополнительный) — настройка сетевого окружения. По умолчанию будет включено первое указанное в команде устройство. Активацию конкретного устройства можно явно запросить с помощью --activate.
Параметры:
-
--activate— отвечает за активацию устройства.
Если этот параметр указан применительно к уже активному устройству, будет выполнена его повторная активация согласно настройкам в файле кикстарта.
-
--nodefroute— запрещает использовать стандартный маршрут. -
--bootproto=— может принимать одно из следующих значений:dhcp(используется по умолчанию),bootp,static.
В режиме DHCP для получения сетевых настроек используется DHCP-сервер. Как можно догадаться, в случае с BOOTP для получения сетевых настроек подобным образом используется сервер BOOTP. Чтобы настроить функции DHCP, добавьте:
network --bootproto=dhcp
Чтобы настроить получение сетевой конфигурации с помощью BOOTP, добавьте в файл кикстарта:
network --bootproto=bootp
Для метода static в файле кикстарта необходимо определить IP, маску сети, шлюз и сервер имен. Эти данные не изменяются и используются во время и после установки.
Все данные статической конфигурации должны быть указаны в одной строке.
network --bootproto=static --ip=10.0.2.15 --netmask=255.255.255.0 --gateway=10.0.2.254 --nameserver=10.0.2.1
-
--device=— сетевое устройство.
Если в первом вхождении команды network не указан параметр --device=, по умолчанию будет использоваться значение параметра загрузки ksdevice=. Это поведение считается устаревшим, поэтому рекомендуется явно определить значение --device=.
Для всех последующих команд network необходимо явно определить --device=.
Устройства могут быть заданы:
-
по имени интерфейса, например eth0,
-
по MAC-адресу, например 01:23:45:67:89:ab,
-
по ключевому слову link, которое определяет первый интерфейс со статусом up.
-
по ключевому слову bootif с целью наследования адреса MAC из переменной BOOTIF. Чтобы pxelinux смог определить переменную BOOTIF, включите IPAPPEND 2 в файл pxelinux.cfg.
Например:
network --bootproto=dhcp --device=em1
-
--ip=— адрес устройства. -
--ipv6=— IPv6-адрес устройства в формате<адрес>[/<префикс> <длина>], например3ffe:ffff:0:1::1/128. Если префикс не задан, по умолчанию будет использоваться 64. Другие допустимые значения включают auto (автоматическая конфигурация) и dhcp (DHCPv6). -
--gateway=— IPv4-адрес шлюза. -
--ipv6gateway=— IPv6-адрес шлюза. -
--nodefroute— определяет, что выбранный интерфейс не может использоваться по умолчанию. Обычно устанавливается при активации дополнительных устройств с помощью--activate=— например для сетевой карты в другой подсети или цели iSCSI. -
--nameserver=— IP-адрес сервера имен. Несколько серверов разделяются запятыми. -
--nodns— не настраивать DNS-сервер. -
--netmask=— маска сети. -
--hostname=— имя устанавливаемой системы. -
--wepkey=— ключ WEP беспроводной сети. -
--wpakey=— ключ WPA беспроводной сети. -
--onboot=— активация устройства при загрузке. -
--dhcpclass=— класс DHCP.
-
--noipv4— отключает IPv4. -
--noipv6— отключает IPv6.
part, partition
part, partition (обязательный) — отвечает за создание раздела.
Если параметры --noformat и --onpart не определены, создаваемые разделы будут форматироваться в процессе установки.
Формат команды:
part|partition <точка_монтирования> --name=<имя> --device=<устройство> --rule=<правило> [<параметры>]
Параметры:
-
параметр <точка_монтирования> может принимать следующие значения:
-
/<путь>- например: /, /usr, /home.
-
swap— раздел подкачки. Чтобы автоматически выбрать размер раздела подкачки, добавьте аргумент--recommended:
swap --recommended
Будет выбран подходящий, но не обязательно оптимальный размер.
-
raid.id— программный RAID-массив. -
pv.id— раздел LVM. -
biosboot— загрузочный раздел BIOS. На платформах с BIOS, использующих таблицу разделов GPT, необходимо создать загрузочный раздел размером 1 МБ. Именно в этот раздел будет установлен загрузчик. В системах с UEFI этот раздел не требуется. Подробную информацию см. в описании команды bootloader. -
efi— системный раздел EFI. На платформах с UEFI необходимо создать раздел с минимальным размером 50 МБ (рекомендуется 200 МБ). В системах с BIOS этот раздел не требуется. Подробную информацию см. в описании командыbootloader.
-
--size=— минимальный размер раздела в мегабайтах. Введите целое значение без указания единиц, например 500.
Если значение --size недостаточно велико, установка будет прекращена.
-
--grow— увеличить размер раздела до заданной величины или заполнить все свободное место.
Если для раздела подкачки определен параметр --grow= без --maxsize=, Anaconda ограничит его максимальный размер, руководствуясь следующими правилами: в системах с физической памятью <2 ГБ максимальный размер будет равен двойному объему памяти, а в системах с памятью >2 ГБ максимальный размер будет равен объему памяти плюс 2 ГБ.
-
--maxsize=— максимальный размер раздела в мегабайтах. Укажите целое значение без единиц, например 500. -
--noformat— использует существующий логический том без форматирования. Используется вместе с--onpart. -
--onpart=или--usepart=— устройство, где будет создан раздел.
partition /home --onpart=hda1
Эта команда создаст раздел /home на /dev/hda1.
Пример создания раздела в пределах логического тома:
partition pv.1 --onpart=hda2
Устройство уже должно существовать.
-
--fsprofile— определяет профиль для передачи программе создания файловой системы. Профиль содержит набор параметров файловой системы. Этот аргумент требует наличия файла конфигурации. Так, в файловых системах ext2, ext3, ext4 файл расположен в /etc/mke2fs.conf. -
--fstype=— тип файловой системы: xfs, ext2, ext3, ext4, swap, vfat, efi, biosboot. -
--fsoptions=— строка параметров монтирования файловой системы, заключенная в кавычки. В готовой системе эта строка будет записана в /etc/fstab. -
--label=— метка раздела.
rootpw
rootpw (обязательный) — позволяет установить пароль root.
Формат команды:
rootpw [--iscrypted|--plaintext] [--lock] <пароль>
Параметры:
-
--iscrypted— сообщает, что пароль зашифрован. Параметры--plaintextи--iscryptedявляются взаимоисключающими. Зашифровать пароль можно следующим образом:
python -c 'import crypt; print(crypt.crypt("my_password", crypt.mksalt(crypt.METHOD_SHA512)))'
Эта команда создаст шифр SHA512 с использованием заданной случайной строки.
-
--plaintext— сообщает, что пароль определен в открытом виде. Параметры--plaintextи--iscryptedявляются взаимоисключающими. -
--lock— блокирует учетную запись. Авторизация пользователя root из консоли будет недоступна.
timezone
timezone (обязательный) — устанавливает часовой пояс. Для просмотра полного списка часовых поясов выполните:
timedatectl list-timezones
Формат команды:
timezone <часовой_пояс> [<параметры>]
Параметры:
-
--utc— если задан, подразумевается, что системные часы установлены по Гринвичу. -
--nontp— отключает автоматический запуск NTP. -
--ntpservers— список NTP-серверов через запятую без пробелов.
user
user (дополнительный) — создание пользователя.
Формат команды:
user --name=<пользователь> [<параметры>]
Параметры:
-
--username=— обязательное имя пользователя. -
--gecos=— строка параметров GECOS через запятую. Типичные параметры включают полное имя пользователя, номер офиса, и т.п. Подробную информацию можно найти на справочной страницеpasswd(5). -
--groups=— список групп пользователя, разделенных запятой. Список должен содержать существующие группы (см. описание команды group). -
--homedir=— домашний каталог пользователя. По умолчанию используется /home/пользователь. -
--lock— блокирует учетную запись, то есть пользователи не смогут авторизоваться из консоли. -
--password=— пароль пользователя. Если не задан, учетная запись будет заблокирована. -
--shell=— оболочка пользователя. По умолчанию используются системные настройки.
volgroup
volgroup (дополнительный) — cоздание группы LVM.
Формат команды:
volgroup <имя> <раздел> [<параметры>]
Параметры:
-
--noformat— использует существующую группу томов без форматирования. -
--useexisting— использует существующую группу томов и повторно ее форматирует. -
--pesize=— размер физических экстентов. -
--reserved-space=— размер пространства в мегабайтах, которое должно быть зарезервировано в группе томов. Применимо только к новым группам томов. -
--reserved-percent=— процентная доля пространства, зарезервированного в группе томов.
Пример создания раздела, группы логических томов и отдельного тома:
part pv.01 --size 10000 volgroup volgrp pv.01 logvol / --vgname=volgrp --size=2000 --name=root
xconfig
xconfig (дополнительный) — настраивает X Window System. Если в файле кикстарта есть запись для установки X, но нет команды xconfig, настройки X потребуется определить вручную.
Не следует добавлять эту команду в файл кикстарта, если вы не планируете устанавливать X Window System.
Параметры:
-
--defaultdesktop=— рабочее окружение. Чтобы выбрать графическое окружение, необходимо, чтобы они также присутствовали в секции%packages. -
--startxonboot— графическая авторизация в установленной системе.
Секция %packages
Команда %packages отмечает начало секции устанавливаемых пакетов.
В этой секции можно указать отдельный пакет, группу или целое окружение.
Список групп и окружений можно найти в файле repodata/*-comps-Everything.<архитектура>.xml на установочном образе РЕД ОС.
В *-comps-Everything.<архитектура>.xml окружения отмечены тегом <environment>, а группы — тегом <group>. Каждая запись имеет свой идентификатор, признак отображения для пользователей, название, описание и список пакетов. Пакеты, отмеченные в как обязательные (mandatory), будут всегда устанавливаться при установке группы, пакеты default автоматически выбираются при выборе группы, а пакеты optional должны быть заданы явно.
Группы и окружения можно выбрать по имени (тег <name>) и идентификатору (тег <id>).
Если в процессе установки не была установлена X Window System и не включены возможности графической авторизации, то после перезагрузки этап первоначальной настройки будет пропущен, и только пользователь root сможет авторизоваться в системе. Чтобы создать другие учетные записи, то прежде чем приступить к установке других систем, добавьте параметр user в файл кикстарта или авторизуйтесь как root в виртуальной консоли и добавьте пользователей вручную с помощью команды adduser.
Секция %packages должна завершаться директивой %end.
Выбор окружения
Секция %packages может содержать не только пакеты, но и целые окружения.
%packages @^desktop-environment %end
Данный фрагмент установит окружение desktop-environment - рабочая станция с графическим окружением Mate. Файл кикстарта должен содержать только одно окружение.
Выбор групп
В каждой строке определяется по одной группе, начиная со знака @. Имена групп должны соответствовать записям в файле *-comps-Everything.<архитектура>.xml.
%packages @X Window System @Development Tools @Smart Card Support %end
Основные группы пакетов будут выбраны по умолчанию, поэтому их не надо указывать в разделе %packages.
Выбор отдельных пакетов
Отдельные пакеты вводятся по одному в строке. Допускается использование шаблонов (*), например:
%packages sqlite curl aspell docbook* %end
В примере запись docbook* охватывает пакеты docbook-dtds, docbook-simple, docbook-slides и т.п.
Исключение окружений, групп и пакетов
Добавление дефиса перед именем пакетов и групп исключает их из списка установки:
%packages -@Graphical Internet -autofs -ipa*fonts %end
Установка всех доступных пакетов с использованием только символа * в файле кикстарта не допускается.
Поведение секции %packages можно контролировать с помощью параметров.
Общие параметры выбора пакетов
Ниже перечислены параметры секции %packages. Параметры добавляются в конец заголовка секции, например:
%packages --multilib --ignoremissing
Параметры:
-
--nobase— не устанавливает группу @base. Используется, если целью является создание компактной системы. -
--ignoremissing— игнорирует недостающие пакеты вместо того, чтобы приостановить установку и ожидать подтверждения продолжения. -
--excludedocs— исключает документацию пакетов. В большинстве случаев это означает исключение файлов из /usr/share/doc*. -
--multilib— разрешает установку 32-битных пакетов в 64-битных системах.
Обычно на платформах AMD64 и Intel 64 по умолчанию устанавливаются пакеты, предназначенные для заданной архитектуры (например, x86_64) и стандартные пакеты (noarch). Однако данный параметр разрешает установку 32-битных пакетов (i686).
Этот подход применим только к пакетам в секции %packages. Если же пакет участвует в решении зависимостей, будет установлена только необходимая версия.
Параметры для отдельных групп
Чтобы определить параметры для конкретной группы пакетов, надо добавить их после названия группы.
%packages @Internet Applications --optional %end
Параметры:
-
--nodefaults— устанавливает только обязательные пакеты, а не стандартный набор. -
--optional— установка дополнительных пакетов группы согласно списку в *-comps-Everything.<архитектура>.xml.
Секция %pre
В секции %pre определяются команды, которые будут выполняться сразу после обработки файла кикстарта, но до начала установки.
Секция должна располагаться ближе к концу файла, начинаться с директивы %pre и заканчиваться директивой %end. Порядок секций %pre и %post не имеет значения.
В секции %pre можно обращаться к сети, но так как на данном этапе служба имен еще не настроена, следует использовать IP-адреса.
Сценарий %pre не выполняется в окружении chroot в отличие от %post.
Ниже перечислены параметры %pre. Они добавляются в конец заголовка секции:
%pre --interpreter=/usr/bin/bash
--- <исполняемый_скрипт> --
%end
Параметры:
-
--interpreter=— язык сценариев, например /usr/bin/sh, /usr/bin/bash или /usr/bin/python. -
--erroronfail— при сбое сценария показывает сообщение об ошибке и прерывает установку. -
--log=— вывод сообщений сценария в заданный файл:
%pre --log=/mnt/sysimage/root/ks-pre.log
Секция %post
В секции %post определяются команды, которые будут выполняться после установки, но до перезагрузки системы. Эта секция должна располагаться после секции команд ближе к концу файла, начинаться с директивы %post и заканчиваться директивой %end. Порядок секций %pre и %post не имеет значения.
В этой секции можно установить дополнительные программы или настроить сервер имен. Сценарий %post выполняется в окружении chroot, поэтому некоторые задачи (такие как копирование сценариев и пакетов с установочных носителей) выполнить не удастся. Это поведение можно изменить с помощью --nochroot.
Если вы используете статическую настройку IP, в секции %post можно обращаться к сети с разрешением IP-адресов. Если используется DHCP, файл /etc/resolv.conf еще не будет сформирован к моменту обработки %post, поэтому при обращении к сети необходимо использовать IP-адреса.
Ниже перечислены параметры %post. Параметры добавляются в конец заголовка секции:
%post --interpreter=/usr/bin/bash
--- <исполняемый_скрипт> ---
%end
Параметры:
-
--interpreter=— определяет язык сценариев, например bash.
%post --interpreter=/usr/bin/python
Здесь можно указать любой установленный язык, например /usr/bin/sh, /usr/bin/bash или /usr/bin/python.
-
--nochroot- позволяет определить команды для выполнения вне окружения chroot.
В следующем примере файл /etc/resolv.conf будет скопирован в созданную файловую систему.
%post --nochroot cp /etc/resolv.conf /mnt/sysimage/etc/resolv.conf %end
-
--erroronfail— при сбое сценария показывает сообщение об ошибке и прерывает установку. -
--log=— сохраняет протокол выполнения сценария в файл. Путь должен учитывать наличие--nochroot. Пример без--nochroot:
%post --log=/root/ks-post.log
Пример с --nochroot:
%post --nochroot --log=/mnt/sysimage/root/ks-post.log
Пример файла конфигурации
Стандартный файл кикстарта (шаблон) имеет следующее содержимое:
# Generated by Anaconda 33.25.4 # Generated by pykickstart v3.30 # Use graphical install graphical %packages --multilib @^desktop-environment %end # Keyboard layouts keyboard --xlayouts='us','ru' --switch='grp:alt_shift_toggle' # System language lang ru_RU.UTF-8 # Network information network --bootproto=dhcp --device=ens18 --ipv6=auto --activate network --hostname=localhost.localdomain # Use CDROM installation media cdrom # Run the Setup Agent on first boot firstboot --enable # Generated using Blivet version 3.3.0 ignoredisk --only-use=sda autopart # Partition clearing information clearpart --none --initlabel # System timezone timezone Europe/Moscow --utc # Root password rootpw --iscrypted $6$3zZ3MWYmRB5UU2Nb$f7ZKDB1tQJ/9Q4VRoRVvFfqK8DBjO8.HO9AZ8nTOvhPeJ3JNBKBJ7lO.UFqH4fWykCE.Emiie1JHCvIq1Nhgu1 user --groups=wheel --name=user --password=$6$AywHyJ1Jw8ffZbCs$642L93KbjyltoS79aJs1Vng8IjMs.UlBcnzoC0TaBxMs4/ULbYOTRLejpPXDiW20/c5xIs7JwYwli.ep2P7Yi/ --iscrypted --gecos="user"
Дата последнего изменения: 19.12.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.