3.1.10.4.1 Автоматизация развертывания (kickstart)
Скачать документ Порядок установки
Создание файла кикстарта
Проверка файла кикстарт
Расположение файла кикстарта
Создание загрузочного диска
Начало установки
Запуск установки вручную
Автоматический запуск установки
Синтаксис кикстарта
Команды и интерпретаторы
Секция %packages
Секция %pre
Секция %post
Пример файла конфигурации
Процесс установки операционной системы можно автоматизировать, определив все необходимые данные (список пакетов, схемы разделов, часовой пояс, языковые настройки и т. д.) в одном файле — файле 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"
Дата последнего изменения: 20.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.