Справка по файлу конфигурации Kickstart для НАЙС.ОС
Файл конфигурации Kickstart для НАЙС.ОС — это файл в формате JSON, который используется для автоматизации установки операционной системы. Он содержит параметры, определяющие, как должна быть настроена система. Ниже приведено подробное описание всех возможных параметров для начинающих пользователей.
Параметры конфигурации
additional_files
(необязательный)
Список пар {исходный файл или папка, целевой файл или папка}, которые будут скопированы в систему. Исходные файлы ищутся в директориях, указанных в search_path
.
Пример:
{
"additional_files": [
{"resizefs.sh": "/usr/local/bin/resizefs.sh"},
{"resizefs.service": "/lib/systemd/system/resizefs.service"}
]
}
additional_packages
Список дополнительных пакетов для установки. Аналогичен параметру packages
.
additional_rpms_path
(необязательный)
Путь к папке с дополнительными RPM-пакетами, которые будут включены в образ системы.
ansible
(необязательный)
Запускает плейбуки Ansible в целевой системе после установки пакетов. Указывается список словарей с ключом playbook
и дополнительными параметрами:
verbosity
— уровень детализации вывода Ansible (например, 1 для-v
, 2 для-vv
).logfile
— файл для сохранения логов, копируется в/var/log
.extra-vars
— дополнительные переменные для Ansible.tags
иskip-tags
— теги для выполнения или пропуска.
Пример:
{
"ansible": [
{"playbook": "/usr/share/ansible/setup.yml"},
{
"playbook": "/usr/share/ansible/harden.yml",
"logfile": "ansible-harden.log",
"verbosity": 2,
"extra-vars": "@/tmp/vars.yml"
}
]
}
arch
(необязательный)
Архитектура целевой системы. Указывается, если она отличается от архитектуры хоста (например, создание образа для RPi на x86_64).
- Допустимые значения:
"x86_64"
,"aarch64"
- По умолчанию: архитектура хоста
Пример:
{
"arch": "aarch64"
}
bootmode
(необязательный)
Тип загрузки системы: EFI, BIOS или оба.
- Допустимые значения:
"bios"
,"efi"
,"dualboot"
- По умолчанию:
"dualboot"
для x86_64,"efi"
для aarch64 bios
— создаёт специальный раздел для GRUB.efi
— создаёт EFI-раздел (ESP) с файловой системой FAT.dualboot
— поддерживает оба режима (BIOS и EFI).
Пример:
{
"bootmode": "bios"
}
disk
Путь к устройству для установки (например, /dev/sda
). Поддерживаются loop-устройства. В будущем будет устаревшим.
Пример:
{
"disk": "/dev/sdb"
}
Также поддерживается путь /dev/disk/by-path
:
{
"disk": "/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:1:0"
}
disks
Список дисков для установки. Один из них должен быть помечен как "default"
. Можно указать устройство (device
) или файл образа (filename
) с размером.
Пример (устройство):
{
"disks": {
"default": {
"device": "/dev/sda"
}
}
}
Пример (образ):
{
"disks": {
"default": {
"filename": "rootdisk.img",
"size": 2048
}
}
}
Пример (несколько дисков):
{
"disks": {
"default": {
"filename": "rootdisk.img",
"size": 2048
},
"bigdisk": {
"filename": "bigdisk.img",
"size": 100000
}
}
}
eject_cdrom
(необязательный)
Извлечение CD-ROM после завершения установки.
- Значения:
true
,false
- По умолчанию:
true
Пример:
{
"eject_cdrom": false
}
hostname
(необязательный)
Имя хоста системы.
- По умолчанию:
"niceos-<случайная строка>"
Пример:
{
"hostname": "niceos-machine"
}
timezone
(необязательный)
Часовой пояс системы.
- По умолчанию:
"Europe/Moscow"
Пример:
{
"timezone": "Asia/Yekaterinburg"
}
insecure_repo
(необязательный)
Отключение проверки SSL для репозиториев (sslverify=0
).
- Значения:
true
,false
- По умолчанию:
false
Пример:
{
"insecure_repo": true
}
live
(необязательный)
Указывает, будет ли система запущена на хосте. Если false
, не добавляются EFI-записи и уникальный machine-id.
- По умолчанию:
false
для loop-устройств,true
для остальных.
Пример:
{
"live": false
}
log_level
(необязательный)
Уровень логирования установщика.
- Допустимые значения:
"error"
,"warning"
,"info"
,"debug"
- По умолчанию:
"info"
Пример:
{
"log_level": "debug"
}
ostree
(необязательный)
Настройка для атомарной версии НАЙС.ОС. Определяет тип репозитория для установки.
default_repo
— использовать стандартный (из ISO) или пользовательский репозиторий.repo_url
— URL пользовательского репозитория (еслиdefault_repo: false
).repo_ref
— путь к данным в пользовательском репозитории.
Пример (стандартный репозиторий):
{
"ostree": {
"default_repo": true
}
}
Пример (пользовательский репозиторий):
{
"ostree": {
"default_repo": false,
"repo_url": "http://<ip>:<port>/repo",
"repo_ref": "niceos/4.0/x86_64/minimal"
}
}
packagelist_file
(необязательный, если указан packages
)
Имя файла со списком пакетов для установки.
Пример:
{
"packagelist_file": "packages_minimal.json"
}
packages
(необязательный, если указан packagelist_file
)
Список пакетов для установки.
Пример:
{
"packages": ["minimal", "linux", "initramfs"]
}
partition_type
(необязательный)
Тип таблицы разделов.
- Допустимые значения:
"gpt"
,"msdos"
- По умолчанию:
"gpt"
Пример:
{
"partition_type": "msdos"
}
partitions
(необязательный)
Список создаваемых разделов. Каждый раздел — словарь с параметрами:
filesystem
— тип файловой системы ("swap"
,"ext4"
,"vfat"
,"xfs"
,"btrfs"
). По умолчанию:"ext4"
.disk_id
— идентификатор диска изdisks
. Если не указан, используется"default"
.mountpoint
— точка монтирования (обязательна для не-swap разделов).size
илиsizepercent
— размер в МБ или процентах. Еслиsize: 0
, раздел расширяется до заполнения диска.mkfs_options
— дополнительные параметры дляmkfs
.fs_options
— параметры монтирования (например,"nodev,noexec,nosuid"
).btrfs
— настройка томов и подтомов BTRFS.lvm
— настройка логических томов (LVM).ab
— создание теневого раздела для обновлений/откатов.encrypt
— включение шифрования LUKS.
Пример:
{
"partitions": [
{
"mountpoint": "/",
"size": 0,
"filesystem": "ext4"
},
{
"mountpoint": "/boot",
"size": 128,
"filesystem": "ext4"
},
{
"sizepercent": 5,
"filesystem": "swap"
}
]
}
network
(необязательный)
Настройка сети в формате, похожем на cloud-init или netplan.
version
— версия конфигурации ("2"
или"1"
для устаревшей).hostname
— имя хоста.ethernets
— настройки Ethernet-интерфейсов.vlans
— настройки VLAN-интерфейсов.
Пример (статический IP):
{
"network": {
"version": "2",
"hostname": "niceos-machine",
"ethernets": {
"id0": {
"match": {
"name": "eth0"
},
"dhcp4": false,
"addresses": ["192.168.2.58/24"],
"gateway": "192.168.2.254",
"nameservers": {
"addresses": ["8.8.8.8", "8.8.4.4"],
"search": ["vmware.com", "eng.vmware.com"]
}
}
}
}
}
password
(необязательный)
Настройка пароля root.
text
— пароль в открытом виде (crypted: false
) или зашифрованный (crypted: true
).crypted
— указывает, зашифрован ли пароль.age
— срок действия пароля (дни).
Пример:
{
"password": {
"crypted": false,
"text": "changeme",
"age": 0
}
}
postinstall
(необязательный)
Список команд для выполнения после установки.
Пример:
{
"postinstall": [
"#!/bin/sh",
"echo \"Hello World\" > /etc/postinstall"
]
}
postinstallscripts
(необязательный)
Список скриптов для выполнения после установки (ищутся в search_path
).
Пример:
{
"postinstallscripts": ["rpi3-custom-patch.sh"]
}
preinstall
(необязательный)
Список команд для выполнения перед установкой.
Пример:
{
"disk": "$DISK",
"preinstall": [
"#!/bin/sh",
"ondisk=$(ls -lh /dev/disk/by-path/ | grep 'scsi-0:0:1:0' | cut -d' ' -f 9)",
"export DISK=\"/dev/disk/by-path/$ondisk\""
]
}
preinstallscripts
(необязательный)
Список скриптов для выполнения перед установкой (ищутся в search_path
).
Пример:
{
"preinstallscripts": ["find_disk.sh"]
}
public_key
(необязательный)
Публичный SSH-ключ для добавления в authorized_keys
. Включает root-доступ по SSH.
search_path
(необязательный)
Список директорий для поиска файлов и скриптов.
Пример:
{
"search_path": ["/home/user", "/tmp"]
}
shadow_password
(необязательный)
Зашифрованный пароль root (короткая форма password
).
user_name
(необязательный)
Имя дополнительного пользователя.
user_shadow_password
(необязательный)
Зашифрованный пароль для дополнительного пользователя.
user_wheel
(необязательный)
Добавление пользователя в группу wheel
.
- Значения:
true
,false
ui
(необязательный)
Включение графического интерфейса установщика.
- Значения:
true
,false
- По умолчанию:
false
Пример:
{
"ui": true
}
linux_flavor
(необязательный)
Тип ядра Linux для установки.
- Допустимые значения:
"linux"
,"linux-esx"
,"linux-rt"
,"linux-aws"
,"linux-secure"
Пример:
{
"linux_flavor": "linux-esx"
}
linux_flavor_<arch>
(необязательный)
Тип ядра для конкретной архитектуры (приоритет над linux_flavor
).
Пример:
{
"linux_flavor_aarch64": "linux"
}
niceos_docker_image
(необязательный)
Образ Docker для установки.
- Допустимые значения:
"niceos:1.0"
,"niceos:2.0"
,"niceos:3.0"
,"niceos:4.0"
,"niceos:latest"
- По умолчанию:
"niceos:latest"
Пример:
{
"niceos_docker_image": "niceos:4.0"
}
repos
(необязательный)
Список RPM-репозиториев для установки пакетов.
Пример:
{
"repos": {
"release": {
"name": "niceos release",
"baseurl": "https://packages.example.com/niceos/4.0/niceos_release_4.0_x86_64/",
"gpgcheck": 0,
"enabled": 1
},
"updates": {
"name": "niceos updates",
"baseurl": "https://packages.example.com/niceos/4.0/niceos_updates_4.0_x86_64/",
"gpgcheck": 0,
"enabled": 1
}
}
}
Дополнительные ресурсы
Для примера конфигурации смотрите файл sample_ks.cfg.