Если в системе на базе RHEL, CentOS или Fedora вы обнаружили файл с расширением .ks или встретили упоминание rpmkickstart в логах установщика, речь идёт о механизме автоматизированной установки операционной системы по заранее подготовленному сценарию. Чаще всего с этим сталкиваются системные администраторы при массовом развёртывании серверов, когда вручную отвечать на вопросы установщика на каждой машине невозможно.
Строго говоря, rpmkickstart — это не отдельная программа с графическим интерфейсом, а связка двух технологий: пакетного менеджера RPM (Red Hat Package Manager) и системы автоматической установки Kickstart. Ниже разберём, как это работает, где применяется и как создать собственный файл ответов для развёртывания системы.
Что такое Kickstart и при чём тут RPM
Kickstart — это механизм автоматической установки дистрибутивов семейства Red Hat. Вместо того чтобы вручную выбирать язык, раскладку, разметку дисков и набор пакетов в графическом установщике Anaconda, администратор заранее описывает все ответы в текстовом файле — его принято называть ks.cfg или просто kickstart-файлом.
Пакеты в таких системах распространяются в формате RPM, и секция установки пакетов в kickstart-файле как раз управляет тем, какие rpm-пакеты попадут в систему. Поэтому в разговорной речи и в названиях некоторых утилит встречается сочетание «rpm» и «kickstart» — оно указывает именно на эту связку: автоматическая установка системы плюс управление набором rpm-пакетов.
Важно понимать: kickstart-файл — это обычный текстовый документ. Его можно открыть любым редактором, изучить и изменить под свои задачи. Никакого скрытого или вредоносного кода там быть не должно — всё содержимое читается человеком.
Как устроен kickstart-файл
Файл ответов разбит на логические секции. Каждая отвечает за свой этап установки: разметку дисков, сетевые настройки, выбор пакетов, действия после установки. Порядок секций в целом важен, хотя установщик умеет обрабатывать и неидеально оформленные файлы.
- 📋 Команды общих настроек — язык системы, раскладка клавиатуры, часовой пояс, пароль root.
- 💽 Разметка дисков — директивы
clearpart,part,autopartопределяют, как будут созданы разделы. - 📦 Секция %packages — перечень rpm-пакетов и групп, которые установятся в систему.
- 🔧 Секции %pre и %post — скрипты, выполняющиеся до и после установки.
Пример минимального фрагмента, задающего язык и часовой пояс:
lang ru_RU.UTF-8
keyboard us
timezone Europe/Moscow --utc
rootpw --plaintext StrongPassword123
⚠️ Внимание: пароль root в kickstart-файле хранится либо в открытом виде, либо в виде хеша. Файл с паролем в открытом виде нельзя публиковать и хранить в общедоступных местах — используйте директиву с зашифрованным паролем и ограничивайте доступ к самому файлу.
Где взять готовый ks.cfg
Искать шаблон с нуля не обязательно. После любой установки системы семейства Red Hat установщик сохраняет файл с фактически использованными ответами — обычно это /root/anaconda-ks.cfg. Этот файл можно взять за основу, подправить под новую машину и использовать для повторного развёртывания.
Кроме того, существует графическая утилита system-config-kickstart, позволяющая собрать файл ответов через интерфейс: выбрать параметры мышкой и сохранить результат. В новых дистрибутивах её доступность зависит от версии и репозиториев, поэтому перед установкой сверьтесь с документацией вашей системы.
Как запустить установку по kickstart-сценарию
Чтобы установщик Anaconda подхватил файл ответов, путь к нему передаётся через параметр загрузки inst.ks. Файл может лежать на USB-носителе, на локальном диске или быть доступен по сети через HTTP, FTP или NFS — последний вариант удобен при массовом развёртывании через PXE.
Пример параметра загрузки для файла на сетевом ресурсе:
inst.ks=http://192.168.1.10/ks/ks.cfg
Параметр добавляется в строку загрузки при старте с установочного носителя: на экране выбора вариантов загрузки нажимается клавиша редактирования строки (обычно Tab), и параметр дописывается к существующим. Точная клавиша и синтаксис зависят от версии загрузчика, поэтому при сомнениях сверяйтесь с официальной документацией вашего дистрибутива.
☑️ Подготовка к kickstart-установке
⚠️ Внимание: директивы разметки дисков вроде clearpart --all безвозвратно удаляют данные с накопителей. Перед запуском автоматической установки убедитесь, что в файле указан правильный диск, а на целевой машине нет нужных данных.
Проверка и отладка kickstart-файла
Ошибка в одной строке может остановить установку посередине или привести к нежелательной конфигурации. Поэтому файл стоит проверять до запуска. Для этого в составе инструментов pykickstart есть валидатор ksvalidator:
ksvalidator /path/to/ks.cfg
Валидатор укажет на синтаксические ошибки и неизвестные директивы. Однако он не проверяет логику: например, что указанный диск существует или что сетевой ресурс доступен. Полную проверку даёт только тестовый прогон на виртуальной машине — это самый безопасный способ отладки.
Типичные проблемы и их решения
Чаще всего автоматическая установка прерывается из-за недоступности файла ответов или ошибок в секции пакетов. Ниже — типичные ситуации и направления диагностики.
| Проблема | Вероятная причина | Что проверить |
|---|---|---|
| Установщик не находит ks.cfg | Неверный путь в inst.ks | Доступность URL из сети, имя файла, регистр букв |
| Установка останавливается с ошибкой | Синтаксическая ошибка в файле | Прогнать файл через ksvalidator |
| Не установились нужные пакеты | Опечатка в секции %packages | Точные имена пакетов и групп для вашей версии |
| Затёрлись данные на диске | Директива clearpart --all | Ограничить очистку конкретным диском |
| Скрипт %post не выполнился | Ошибка в скрипте или нет сети на этом этапе | Логи установки в /var/log/anaconda/ |
Если установка завершилась, но система настроена не так, как ожидалось, первым делом смотрите журналы в каталоге /var/log/anaconda/ — там фиксируется ход выполнения каждой секции, включая ошибки скриптов %post.
Безопасность при работе с kickstart
Автоматизация развёртывания удобна, но создаёт риски, если файл ответов попадёт не в те руки. В нём могут содержаться пароли, хеши, ключи и сетевые настройки инфраструктуры.
- 🔐 Храните ks-файлы в репозитории с ограниченным доступом, а не на открытых веб-серверах.
- 🧾 Используйте хеши паролей вместо открытого текста через соответствующие опции директив.
- 🗑️ После установки удаляйте временные скрипты и файлы с чувствительными данными из целевой системы.
- 🌐 При сетевой загрузке файла по возможности применяйте защищённые методы доставки и изолированные сегменты сети.
Если kickstart-файл попал к вам из непроверенного источника, обязательно прочитайте его целиком перед использованием: секции %pre и %post выполняют произвольные команды с правами root, и там теоретически может оказаться что угодно.
Чем kickstart отличается от образов диска
Kickstart выполняет полноценную установку пакетов на каждой машине по сценарию, тогда как клонирование образа просто копирует готовую систему. Kickstart-установка дольше, но гибче: легко менять состав пакетов и настройки, не пересобирая образ. Образы быстрее разворачиваются, но требуют подготовки эталонной системы и учёта различий оборудования.
Часто задаваемые вопросы
rpmkickstart — это вирус или легитимный компонент?
Сам по себе механизм kickstart — штатная технология дистрибутивов семейства Red Hat, а не вредоносное ПО. Однако любой файл ответов из непроверенного источника стоит изучить перед использованием, так как его скрипты выполняются с правами root.
Можно ли использовать kickstart в Ubuntu или Debian?
Нет, там применяются собственные механизмы автоматизации: preseed в классическом установщике Debian и autoinstall в новых версиях Ubuntu. Синтаксис и логика у них свои, ks-файл напрямую не подойдёт.
Где найти документацию по директивам kickstart?
Полный перечень команд и их параметров описан в официальной документации Red Hat по разделу автоматизации установки. Перечень директив зависит от версии дистрибутива, поэтому сверяйтесь с документацией именно вашей версии.
Обязательно ли заполнять все секции файла?
Нет. Если какая-то настройка не указана, установщик либо применит значение по умолчанию, либо остановится и запросит её интерактивно. Для полностью автоматической установки все обязательные вопросы должны быть закрыты в файле.
Как проверить ks.cfg без риска для реального сервера?
Используйте виртуальную машину: создайте ВМ в гипервизоре, подключите установочный ISO и передайте параметр inst.ks при загрузке. Ошибки отладятся в изолированной среде без последствий для рабочих систем.