Kickstart — система автоматической установки дистрибутивов Linux на основе Red Hat: RHEL, CentOS, Fedora, Rocky Linux, AlmaLinux. Файл kickstart (ks.cfg или anaconda-ks.cfg) содержит ответы на все вопросы инсталлятора Anaconda. При загрузке с параметром inst.ks=http://server/ks.cfg установка выполняется полностью автоматически без единого взаимодействия с экраном.
Структура kickstart-файла
#version=RHEL9
lang ru_RU.UTF-8
keyboard --vckeymap=ru --xlayouts=ru,us
timezone Europe/Moscow --utc
network --bootproto=dhcp --device=eth0 --activate --hostname=webserver01
# Пароль root (зашифрован через openssl passwd -6)
rootpw --iscrypted $6$rounds=656000$salt$hash
bootloader --append="crashkernel=auto" --location=mbr
clearpart --all --initlabel --disklabel=gpt
# Разметка диска
part /boot/efi --fstype="efi" --size=512
part /boot --fstype="xfs" --size=1024
part swap --fstype="swap" --size=4096
part / --fstype="xfs" --size=1 --grow
%packages
@^minimal-environment
openssh-server
bash-completion
%end
%post
systemctl enable sshd
# Добавить SSH-ключ
mkdir -p /root/.ssh
echo "ssh-ed25519 AAAA... deploy@example.com" >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
%end
Способы передачи файла kickstart
- HTTP/HTTPS:
inst.ks=http://ks-server/ks.cfg— наиболее гибкий вариант. Скрипт может генерировать ks.cfg динамически на лету. - FTP:
inst.ks=ftp://ks-server/ks.cfg— устаревший способ. - NFS:
inst.ks=nfs:ks-server:/ks/ks.cfg— для инсталляции внутри закрытой сети без HTTP. - USB/Диск:
inst.ks=hd:sdb1:/ks.cfg— для изолированных окружений. - Встроенный в ISO: добавить параметр ks= в grub.cfg при сборке кастомного ISO через lorax или mkksiso.
PXE-boot + Kickstart
Комбинация PXE-boot и Kickstart позволяет развёртывать десятки серверов одновременно без физического доступа к каждому. Схема: сервер загружается по сети (PXE), получает IP через DHCP, скачивает ядро и initrd через TFTP, загружается с параметром inst.ks=http://ks-server/ks.cfg, Anaconda выполняет установку без участия человека. Весь процесс занимает 10–30 минут.
История
Kickstart разработан Red Hat в конце 1990-х для автоматизации массовых развёртываний корпоративных систем. Первые версии появились с Red Hat Linux 6.1 (1999). Инсталлятор Anaconda использует kickstart как основной механизм автоматизации по сей день. Debian/Ubuntu использует аналогичные технологии: preseed (старый формат) и Autoinstall (YAML, Ubuntu 20.04+). Для современных облачных образов стандарт — cloud-init, который принимает YAML-конфигурацию при первом запуске ВМ.
Kickstart в хостинге
Хостинг-провайдеры и корпоративные IT-отделы применяют Kickstart для нескольких задач. Массовая установка физических серверов в датацентре: сервер включается в стойке, загружается по PXE и через 20 минут готов к работе без участия инженера. Создание золотого образа (golden image): Kickstart устанавливает эталонный сервер, с которого снимается снапшот для гипервизоров. Для выделенных серверов без IPMI-консоли можно загрузить сервер с PXE через виртуальный DVD.
Современные альтернативы для cloud-окружений: cloud-init (стандарт для облачных образов, поддерживается AWS, Hetzner, DigitalOcean), Vagrant с provisioning для dev-окружений, Ansible для пост-инсталляционной конфигурации. Kickstart остаётся незаменимым для RHEL-экосистемы и физических серверов.
Отличия Kickstart от Preseed и Autoinstall
| Параметр | Kickstart | Preseed (Debian) | Autoinstall (Ubuntu) |
|---|---|---|---|
| Дистрибутив | RHEL/CentOS/Rocky/Alma | Debian, Ubuntu ≤18.04 | Ubuntu 20.04+ |
| Формат | Текстовый INI-подобный | Текстовые пары ключ-значение | YAML (cloud-init совместимый) |
| Инсталлятор | Anaconda | Debian Installer (d-i) | Subiquity |
| Сеть доставки | HTTP/FTP/NFS/USB | HTTP/TFTP/CD | HTTP/cloud-init |