Autoinstall

Материал из ALT Linux Wiki
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Дистрибутив ALT Linux можно установить в автоматическом режиме. Для этого нужно иметь установочный диск и доступный по сети каталог с несколькими файлами.

Запуск установки

Для включения режима автоматической установки ядру инсталятора операционной системы необходимо передать параметр загрузки ai (без значения). Сделать это можно в меню загрузки диска или в приглашении boot: при загрузке по сети. Автоустановка поддерживается в следующих режимах установки: http, ftp, cdrom, disk, nfs.

Для автоустановки требуется диск с дистрибутивом (в приводе или с сетевого ресурса) и набор из четырёх файлов, описывающих процесс установки. Все четыре файла нужно поместить в каталог, доступный по сети по протоколам HTTP или FTP, и указать путь к нему в параметрах загрузки curl.

Формат адреса в curl должен быть представлен в виде URL. Пример параметров загрузки:

ai curl=http://192.168.5.1/installer/metadata/

При невозможности получения из указанного источника по сети, программа установки будет смотреть в следующих местах:

  1. на диске в каталоге /Metadata/
  2. в образе установщика в каталоге /usr/share/install2/metadata/

Внимание! Автоустановка работает со штаными дистрибутивами пока только при сетевой установке. При запуске с диска сеть недоступна. Подробности: altbug #26813.

Содержимое каталога metadata

В каталоге metadata могут быть следующие файлы:

  • autoinstall.scm — сценарий установки на языке scheme
  • vm-profile.scm — схема разбивки жёсткого диска на языке scheme
  • pkg-groups.tar — архив, содержащий дополнительные к базовой системе группы пакетов (можно просто взять с диска из подкаталога Metadata/
  • root.pub — публичный ключ пользователя root, который будет использоваться для авторизации при доступе в установленную систему через сетевой интерфейс

Делаем «собственный» дистрибутив

При автоустановке по сети (например, через alterator-netinst) есть возможность править состав и скрипты автоустановки «вживую».

  1. Скопируйте содержимое диска в /srv/public
  2. Добавьте требуемые файлы автоустановки в подкаталог Metadata/
  3. Можете добавить свои пакеты в состав пакетов в подкаталоге ALTLinux/RPMS.main. После этого запустите
genbasedir --topdir=/srv/public ALTLinux main

Формат файла autoinstall.scm

Файл autoinstall.scm представляет из себя командный скрипт для программы установки, написанный с использованием языка программирования scheme. Каждая строка крипта — команда для модуля программы установки. Рассмотрим в качестве примера стандартный скрипт автоматической установки операционной системы:

; установка языка операционной системы
(("sysconfig-base" "language") action "write" lang ("ru_RU"))
; установка переключателя клавиатуры
(("sysconfig-base" "kbd") action "write" layout "ctrl_shift_toggle")
; установка временной зоны в Europe/Moscow
(("datetime-installer") action "write" commit #t name "RU" zone "Europe/Moscow" utc #t)
; автоматическая разбивка жёсткого диска
(("evms" "control") action "write" control open installer #t)
(("evms" "control") action "write" control update)
(("evms" "profiles" "hpcnode") action apply commit #t clearall #t exclude ())
(("evms" "control") action "write" control commit)
(("evms" "control") action "write" control close)

; установка пакетов операционной системы
(("pkg-init") action "write")
(("pkg-install") action "write" lists "" auto #t)
(("preinstall") action "write")

; установка загрузчика (конфигурация по умолчанию)
(("lilo" "globals") action "write" target "boot" devname #t)
(("lilo" "globals") action "write" target "timeout" timeout "100")
(("lilo" "globals") action "write" target "default" default "ALTLinux")
(("lilo" "commit") action "write" confonly #f)

; настройка сетевого интерфейса на получение адреса по DHCP
(("net-eth") action "write" reset #t)
(("net-eth") action "write" name "eth0" configuration "dhcp" default "" computer_name "localhost")
(("net-eth") action "write" commit #t)

; установка пароля пользователя root
("/root/change_password" passwd_2 "парольroot" passwd_1 "парольroot")

Формат файла vm-profile.scm

Файл vm-profile.svm содержит сценарий на языке scheme, описывающий формат автоматической разбивки жёсткого диска. Рассмотрим его на примере:

; имя профиля
((server
; описание профиля
(title . «Setup for server»)
; тип действия, в данный момент только trivial
(action . trivial)
; данные для действия. В данном случае создаётся раздел swap с размером 512 мегабайт  (размер указывается в блоках длиной 512 килобайт)
(actiondata  ("swap" (size . 1048576) (fsim . "SWAPFS") (methods raid plain))
; данные для создания корневого раздела, объёмом 1 гигабайт, с файловой системой ext3
("/" (size .  2097152) (fsim . "Ext2/3") (methods raid plain))
; данные для создания раздела /home, объёмом 10 гигабайт, с файловой системой ext3
("/home" (size 20971520 . #t) (fsim . "Ext2/3") (methods raid plain))
; данные для создания раздела /var, объёмом 5 гигабайт, с файловой системой ext3
("/var" (size  10485760. #t) (fsim . "Ext2/3") (methods raid plain))
)))

Формат файла pkg-groups.tar

Файл pkg-groups.tar представляет собой tar-архив с двумя подкаталогами: groups (содержащий описание групп программного обеспечения в файлах .desktop) и lists (содержащий файлы со списками пакетов для каждой группы). В подкаталоге lists находится скрытый файл .base, содержащий список пакетов «базовой системы» (то есть те пакеты, которые устанавливаются в любом случае). Описание форматов указания групп описано в Alterator-pkg.

Файл pkg-groups.tar проще всего взять с диска из каталога /Metadata/ и доработать, если необходимо.

Для изменения списка пакетов распакуйте архив командой

tar xf pkg-groups.tar

После этого перейдите в подкаталог lists и добавьте или измените файл группы. Имена пакетов указываются по одному в каждой строке. Имя файла используемой группы затем указывается через пробел в autoinstall.scm:

(("pkg-install") action "write" lists "group-1 group-2" auto #t)

где group-1 и group-2 — имена файлов со списками пакетов из подкаталога lists.

После исправлений упакуйте снова в архив командой:

tar cf pkg-groups.tar groups lists

Внимание! Учтите, что в качестве источника пакетов при установке выступает сам диск, поэтому указание не лежащих на нём пакетов приведёт к сбою установки. Если хотите добавить новые пакеты, пересоберите диск дистрибутива или исопльзуйте скрипты, выполняющиеся после установки.