Autoinstall — различия между версиями

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
(Запуск установки)
Строка 1: Строка 1:
{{Stub}}
+
Дистрибутив ALT Linux можно установить в автоматическом режиме. Для этого нужно иметь установочный диск и доступный по сети каталог с несколькими файлами.
Дистрибутив ALT Linux можно установить в автоматическом режиме. Для этого нужно иметь установочный диск и доступный по сети каталог с несколькими файлами.
+
 
 +
Данное руководство проверено на установке [[Альт Линукс 6.0 Кентавр]].
  
 
== Запуск установки ==
 
== Запуск установки ==
Строка 24: Строка 25:
 
* '''vm-profile.scm''' — схема разбивки жёсткого диска на языке scheme
 
* '''vm-profile.scm''' — схема разбивки жёсткого диска на языке scheme
 
* '''pkg-groups.tar''' — архив, содержащий дополнительные к базовой системе группы пакетов (можно просто взять с диска из подкаталога Metadata/
 
* '''pkg-groups.tar''' — архив, содержащий дополнительные к базовой системе группы пакетов (можно просто взять с диска из подкаталога Metadata/
* '''root.pub''' — публичный ключ пользователя root, который будет использоваться для авторизации при доступе в установленную систему через сетевой интерфейс
 
  
 
== Делаем «собственный» дистрибутив ==
 
== Делаем «собственный» дистрибутив ==
Строка 30: Строка 30:
 
При автоустановке по сети (например, через alterator-netinst) есть возможность править состав и скрипты автоустановки «вживую».  
 
При автоустановке по сети (например, через alterator-netinst) есть возможность править состав и скрипты автоустановки «вживую».  
  
# Скопируйте содержимое диска в /srv/public
+
# Добавьте требуемые файлы автоустановки в каталог, например, /var/Metadata/
# Добавьте требуемые файлы автоустановки в подкаталог Metadata/
+
# Прикрепите этот каталог в /srv/public/Metadata <pre>mount --bind /var/Metadata /srv/public/Metadata</pre>
# Можете добавить свои пакеты в состав пакетов в подкаталоге ALTLinux/RPMS.main. После этого запустите  
+
# Можете добавить свои пакеты в состав пакетов в подкаталоге ALTLinux/RPMS.main. После этого запустите <pre>genbasedir --topdir=/srv/public ALTLinux main</pre>
genbasedir --topdir=/srv/public ALTLinux main
 
  
 
== Формат файла autoinstall.scm ==
 
== Формат файла autoinstall.scm ==
Строка 39: Строка 38:
 
Файл autoinstall.scm представляет из себя командный скрипт для программы установки, написанный с использованием языка программирования scheme. Каждая строка крипта — команда для модуля программы установки. Рассмотрим в качестве примера стандартный скрипт автоматической установки операционной системы:
 
Файл autoinstall.scm представляет из себя командный скрипт для программы установки, написанный с использованием языка программирования scheme. Каждая строка крипта — команда для модуля программы установки. Рассмотрим в качестве примера стандартный скрипт автоматической установки операционной системы:
  
<source lang="lisp">; установка языка операционной системы
+
<source lang="lisp">; установка языка операционной системы (ru_RU)
(("sysconfig-base" "language") action "write" lang ("ru_RU"))
+
("/sysconfig-base/language" action "write" lang ("ru_RU"))
; установка переключателя клавиатуры
+
; установка переключателя расладки клавиатуры на Ctrl+Shift
(("sysconfig-base" "kbd") action "write" layout "ctrl_shift_toggle")
+
("/sysconfig-base/kbd" action "write" layout "ctrl_shift_toggle")
; установка временной зоны в Europe/Moscow
+
; установка часового пояса в Europe/Moscow, время в BIOS будет храниться в UTC
(("datetime-installer") action "write" commit #t name "RU" zone "Europe/Moscow" utc #t)
+
("/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 open installer #t)
(("evms" "control") action "write" control update)
+
("/evms/control" action "write" control update)
(("evms" "profiles" "hpcnode") action apply commit #t clearall #t exclude ())
+
("/evms/profiles/server" action apply commit #f clearall #t exclude ())
(("evms" "control") action "write" control commit)
+
("/evms/control" action "write" control commit)
(("evms" "control") action "write" control close)
+
("/evms/control" action "write" control close)
 
 
 
; установка пакетов операционной системы
 
; установка пакетов операционной системы
(("pkg-init") action "write")
+
("pkg-init" action "write")
(("pkg-install") action "write" lists "" auto #t)
+
; установка только базовой системы (дополнительные группы пакетов из pkg-groups.tar указываются по именам через пробел)
(("preinstall") action "write")
+
("/pkg-install" action "write" lists "" auto #t)
 
+
("/preinstall" action "write")
; установка загрузчика (конфигурация по умолчанию)
+
; установка загрузчика GRUB в MBR на первый жёсткий диск
(("lilo" "globals") action "write" target "boot" devname #t)
+
("/grub" action "write" language ("ru_RU") device "/dev/sda")
(("lilo" "globals") action "write" target "timeout" timeout "100")
 
(("lilo" "globals") action "write" target "default" default "ALTLinux")
 
(("lilo" "commit") action "write" confonly #f)
 
 
 
 
; настройка сетевого интерфейса на получение адреса по DHCP
 
; настройка сетевого интерфейса на получение адреса по DHCP
(("net-eth") action "write" reset #t)
+
("/net-eth" action "write" reset #t)
(("net-eth") action "write" name "eth0" configuration "dhcp" default "" computer_name "localhost")
+
("/net-eth" action "write" name "eth0" configuration "dhcp" default "" search "" dns "" computer_name "c245")
(("net-eth") action "write" commit #t)
+
("/net-eth" action "write" commit #t)
 
+
; установка пароля суперпользователя root '123'
; установка пароля пользователя root
+
("/root/change_password" language ("ru_RU") passwd_2 "123" passwd_1 "123")
("/root/change_password" passwd_2 "парольroot" passwd_1 "парольroot")</source>
+
; задание первого пользователя 'test' с паролем '123'
 +
("/users/create_account" new_name "test" gecos "" allow_su #t auto #f passwd_1 "123" passwd_2 "123")
 +
</source>
  
 
== Формат файла vm-profile.scm ==
 
== Формат файла vm-profile.scm ==
Строка 75: Строка 71:
 
Файл vm-profile.svm содержит сценарий на языке scheme, описывающий формат автоматической разбивки жёсткого диска. Рассмотрим его на примере:
 
Файл vm-profile.svm содержит сценарий на языке scheme, описывающий формат автоматической разбивки жёсткого диска. Рассмотрим его на примере:
  
<source lang="lisp">; имя профиля
+
<source lang="lisp">((server
((server
+
  (title . "Setup for server")
; описание профиля
+
  (action . trivial)
(title . «Setup for server»)
+
  ; данные для действия. В данном случае создаётся раздел swap с размером 8 ГБ (размер указывается в блоках длиной 512 байт)
; тип действия, в данный момент только trivial
+
  (actiondata  ("swap" (size . 16174080) (fsim . "SWAPFS") (methods raid plain))
(action . trivial)
+
  ; данные для создания корневого раздела, объёмом 7,3 ГБ с файловой системой ext4
; данные для действия. В данном случае создаётся раздел swap с размером 512 мегабайт (размер указывается в блоках длиной 512 килобайт)
+
              ("/" (size . 15000000 ) (fsim . "Ext2/3") (methods raid plain))
(actiondata  ("swap" (size . 1048576) (fsim . "SWAPFS") (methods raid plain))
+
  ; данные для создания раздела /var, объёмом от 2 ГБ с заполнением всего доступного места с файловой системой ext4
; данные для создания корневого раздела, объёмом 1 гигабайт, с файловой системой ext3
+
              ("/var" (size 4194304 . #t) (fsim . "Ext2/3") (methods raid plain))))
("/" (size . 2097152) (fsim . "Ext2/3") (methods raid plain))
+
(workstation
; данные для создания раздела /home, объёмом 10 гигабайт, с файловой системой ext3
+
  (title . "Setup for workstation")
("/home" (size 20971520 . #t) (fsim . "Ext2/3") (methods raid plain))
+
  (action . trivial)
; данные для создания раздела /var, объёмом 5 гигабайт, с файловой системой ext3
+
  (actiondata  ("swap" (size . 8087040) (fsim . "SWAPFS") (methods plain))
("/var" (size 10485760. #t) (fsim . "Ext2/3") (methods raid plain))
+
              ("/" (size 22000000 . 22000000 ) (fsim . "Ext2/3") (methods plain))
)))</source>
+
              ("/home" (size 4194304 . #t) (fsim . "Ext2/3") (methods plain))))
 +
      )</source>
 +
 
 +
Вы можете не указывать этот профиль вообще, возложив автоматическую разметку на профиль в составе дистрибутива
  
 
== Формат файла pkg-groups.tar ==
 
== Формат файла pkg-groups.tar ==

Версия 14:17, 18 января 2012

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

Данное руководство проверено на установке Альт Линукс 6.0 Кентавр.

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

Для включения режима автоматической установки ядру инсталятора операционной системы необходимо передать параметр загрузки 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/

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

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

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

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

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

; установка языка операционной системы (ru_RU)
("/sysconfig-base/language" action "write" lang ("ru_RU"))
; установка переключателя расладки клавиатуры на Ctrl+Shift
("/sysconfig-base/kbd" action "write" layout "ctrl_shift_toggle")
; установка часового пояса в Europe/Moscow, время в BIOS будет храниться в UTC
("/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/server" action apply commit #f clearall #t exclude ())
("/evms/control" action "write" control commit)
("/evms/control" action "write" control close)
; установка пакетов операционной системы
("pkg-init" action "write")
; установка только базовой системы (дополнительные группы пакетов из pkg-groups.tar указываются по именам через пробел)
("/pkg-install" action "write" lists "" auto #t)
("/preinstall" action "write")
; установка загрузчика GRUB в MBR на первый жёсткий диск
("/grub" action "write" language ("ru_RU") device "/dev/sda")
; настройка сетевого интерфейса на получение адреса по DHCP
("/net-eth" action "write" reset #t)
("/net-eth" action "write" name "eth0" configuration "dhcp" default "" search "" dns "" computer_name "c245")
("/net-eth" action "write" commit #t)
; установка пароля суперпользователя root '123'
("/root/change_password" language ("ru_RU") passwd_2 "123" passwd_1 "123")
; задание первого пользователя 'test' с паролем '123'
("/users/create_account" new_name "test" gecos "" allow_su #t auto #f passwd_1 "123" passwd_2 "123")

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

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

((server
  (title . "Setup for server")
  (action . trivial)
  ; данные для действия. В данном случае создаётся раздел swap с размером 8 ГБ  (размер указывается в блоках длиной 512 байт)
  (actiondata  ("swap" (size . 16174080) (fsim . "SWAPFS") (methods raid plain))
  ; данные для создания корневого раздела, объёмом 7,3 ГБ с файловой системой ext4
               ("/" (size  . 15000000 ) (fsim . "Ext2/3") (methods raid plain))
  ; данные для создания раздела /var, объёмом от 2 ГБ с заполнением всего доступного места с файловой системой ext4
               ("/var" (size 4194304 . #t) (fsim . "Ext2/3") (methods raid plain))))
 (workstation
  (title . "Setup for workstation")
  (action . trivial)
  (actiondata  ("swap" (size . 8087040) (fsim . "SWAPFS") (methods plain))
               ("/" (size 22000000 . 22000000 ) (fsim . "Ext2/3") (methods plain))
               ("/home" (size 4194304 . #t) (fsim . "Ext2/3") (methods  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

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