Bog BOS kickstart - инсталирайте Linux в пакетен режим
Системата за инсталиране на Linux anaconda (Fedora, RHEL/CentOS) има пакетен режим, при който командите за инсталиране се вземат от файл. Това ви позволява да инсталирате стотици сървъри в автоматичен режим, като редактирате инсталационния протокол веднъж. Внимание: някои версии на инсталатора създават не съвсем правилен anaconda-ks.cfg, например е необходимо да се добавят суфикси за архитектура ".i386" към имената на пакетите, които трябва да бъдат премахнати от групата. Преди RHEL 7 беше възможно системата да се актуализира на партиди.
За да инсталирате в пакетен режим, трябва:
- създайте текстов файл с команди за кикстарт
- поставете го на място, достъпно за инсталатора (диск, флаш устройство, CD / DVD, мрежов сървър)
- направете инсталационните файлове достъпни за инсталатора - копие на файловото дърво (диск, флаш устройство, CD/DVD, мрежов сървър)
- изтеглете инсталатора и му кажете местоположението на командния файл за kickstart
Ако е посочено устройство, но не е посочено име на файл, тогава файлът ks.cfg се търси в основата.
Помощната програма ksvalidator (пакет pykickstart) ви позволява да проверите синтаксиса на партиден файл (не проверява %packages, %pre и %post секции).
Секцията за избор на пакет започва с командата %packages, завършва с командата %end и могат да се използват множество секции. Необходимите пакети могат да бъдат посочени по един на ред, като се използва името на пакета, името на групата пакети или ID (преди името със символа "@"), името или ID на средата на пакетите (преди символите "@^"). Групите Core и Base са активирани по подразбиране. Можете да използвате заместващи знаци ('*') в имената на пакетите - не го препоръчвам, защото резултатът може да бъде изненадващ, особено след появата на новата версия. За изключване на пакети и групипакети, трябва да посочите името им, предшествано от знака "-". Имената и съдържанието на групите и супергрупите могат да се видят във файловете repodata/*-architecture-variant-comps.xml. В описанието на групата и супергрупата пакетите са отбелязани с
- задължително (изисква се, ако е избран пакет)
- по подразбиране (зададено, ако е избран ppackage, но може да бъде заменено)
- по избор (трябва да се упоменат изрично)
Опции на командата %packages:
- --excludedocs # не инсталирайте документацията, съдържаща се в пакета (/usr/share/doc*).
- --ignoremissing # игнориране на липсващи пакети (по подразбиране е прекратяване на инсталирането)
- --nobase # не задавайте групата @Base
- --nocore # не задавайте група @Core, системата няма да стартира след инсталиране
- --multilib # инсталиране на 32-битови пакети (.i686) в допълнение към 64-битовите (.x86_64); пакетите, инсталирани от зависимости, се инсталират само в 64-битова версия или според нуждите
- --instLangs colon-separated-language-list # само посочените файлове с преводи са избрани от пакети, действието е невидимо (RHEL 7.4)
- --excludeWeakdeps # не инсталирайте пакети въз основа на слаби зависимости (препоръки и добавки)
Опции за група пакети:
- --nodefaults (инсталирайте само необходимите пакети)
- --optional (включва всички незадължителни пакети в инсталацията)
Разделът на скрипта за предварително инсталиране започва с командата %pre и завършва с командата %end. Включените тук команди се изпълняват, след като скриптът за стартиране се анализира, но преди да започне инсталацията (език, клавиатура и url се обработват). В този момент мрежата вече работи, но DNS не работи. chroot не е инсталиран. Примерът описва как да създадете kickstart скрипт, който след това се включва с командата %include. Клавиши:
- --interpeter=/usr/bin/bash
- --erroronfail # спира инсталацията, ако възникне грешка
- --log=/mnt/sysimage/root/ks-pre.log # откъде ще дойде тази директория за предварително инсталиране?
Въвеждане на параметри от терминал (стара анаконда):
Предаване на опции към командния раздел от реда за зареждане (awk не е в /bin:/usr/bin, името на опцията не може да съдържа '.')
Разделът на скрипта за предварително инсталиране започва с командата %pre-install и завършва с командата %end. Включените тук команди се изпълняват след като файловите системи в /mnt/sysimage са създадени и монтирани, преди chroot.
- --interpeter=/usr/bin/python
- --erroronfail # спира инсталацията, ако възникне грешка
- --log=/mnt/sysimage/root/ks-pre.log #
Разделът на скрипта след инсталиране в края на файла започва с командата %post и завършва с командата %end. Включените тук команди се изпълняват след инсталиране преди рестартиране. Chroot към /mnt/sysimage (прясно инсталираната основна файлова система) предварително, освен ако не е отбелязано друго. Възможно е да имате множество секции %post (със и без chroot). В този момент мрежата вече работи, но DNS не работи (освен в случаите на статична мрежова конфигурация). Клавиши:
- --interpeter=/usr/bin/bash
- --erroronfail # спира инсталацията в случай на грешка, какъв е смисълът? системата вече е инсталирана
- --log=/root/ks-post.log
- --nochroot # инсталираната система е достъпна в /mnt/sysimage
Разделът за обработка на грешки на инсталатора започва с командата %traceback и завършва с командата %end. Включените тук команди се изпълняват, ако възникнат грешки. Може да има няколко секции, те се изпълняват последователно. Клавиши:
- --interpeter=/usr/bin/bash
- --erroronfail # спира инсталацията, ако възникне грешка
- --log=дневник
Разделът за обработка на грешки на инсталацията започва с командата %onerror и завършва с командата %end. Включените тук команди се изпълняват в случай на грешки при инсталация (неуспешно стартиране на vnc, неуспешно инсталиране на посочения пакет). Може да има няколко секции, те се изпълняват последователно. Клавиши:
- --interpeter=/usr/bin/bash
- --erroronfail # спира инсталацията, ако възникне грешка
- --log=дневник
Разделът %addon съдържа допълнителни (и никъде другаде описани) команди от Red Hat, започващи с командата %addon, завършващи с командата %end:
- %addon com_redhat_kdump --reserve-mb= # конфигуриране на kdump
- %край