Руководство по установке Debian gnu/Linux Copyright 2004 2015 Команда разработчиков программы установки Debian



Pdf просмотр
страница13/16
Дата14.11.2016
Размер5.01 Kb.
Просмотров3629
Скачиваний0
ТипРуководство
1   ...   8   9   10   11   12   13   14   15   16
: Большой пример использования данной интегрированной среды, включающий примеры сценариев и классов
, можно найти на сайте разработчика (http://hands.com/d-i/). На
110

Приложение B. Автоматическая установка с помощью списка ответов примерах с сайта также показано много других замечательных эффектов
, которых можно достичь
, если творчески подойти к процессу автоматизации.
B.2.4. Полезные в автоматизации псевдонимы
При использование автоматизации установки
(режим auto)
могут пригодиться следующие псевдонимы. Заметим, что сокращаются только имена вопросов, и вам всегда нужно указывать ещё и значение. Например,
auto=true или interface=eth0
priority debconf/priority fb debian-installer/framebuffer language debian-installer/language country debian-installer/country locale debian-installer/locale theme debian-installer/theme auto auto-install/enable classes auto-install/classes файловый preseed/file url preseed/url domain netcfg/get_domain hostname netcfg/get_hostname interface netcfg/choose_interface protocol mirror/protocol suite mirror/suite modules anna/choose_modules recommends base-installer/install-recommends tasks tasksel:tasksel/first desktop (рабочий стол)
tasksel:tasksel/desktop dmraid disk-detect/dmraid/enable keymap keyboard-configuration/xkb-keymap preseed-md5
preseed/file/checksum
B.2.5. Использование сервера DHCP для указания файлов автоматической конфигурации
Также возможно использовать
DHCP
для указания файла автоматической конфигурации, загружаемого по сети. DHCP позволяет указать имя файла. Обычно,
он указывается для способа установки по сети, но если он задан в виде URL, то установочный носитель, который поддерживает автоматическую установку по сети,
загрузит файл с указанного в URL адреса и использует его как файл автоматической установки. Вот пример, как можно настроить dhcpd.conf для третьей версии сервера ISC
DHCP (Debian пакет isc-dhcp-server).
111

Приложение B. Автоматическая установка с помощью списка ответов if substring (option vendor-class-identifier, 0, 3) = "d-i" {
filename "http://host/preseed.cfg";
}
Заметим, что пример выше ограничивает использование имени файла только DHCP
клиентами с идентификатором "d-i", поэтому он не влияет на простых DHCP клиентов, а только на программу установки. Вы также можете поместить текст в строфу указав определённую машину, чтобы избежать автоматизации всех установок в сети.
При автоматизации с помощью DHCP лучше указывать только значения специфичные для вашей сети, например, желаемые сервера-зеркала Debian. В этом случае при установке по сети машины получат правильные сервера-зеркала, а оставшаяся установка будет выполнена в интерактивном режиме. Использование DHCP для полной автоматической установки Debian тоже возможна, но с большой осторожностью.
B.3. Создание файла ответов
Файл ответов аналогичен формату файла используемому программой debconf-set-selections. Общая форма строки файла ответов:
<владелец> <имя вопроса> <тип вопроса> <значение>
При написании файла ответов есть несколько правил, которые нужно помнить.

Между типом и значением вставляйте только один пробел или отступ(tab): любой дополнительный пробельный символ будет включён в значение.

Строка может быть разбита на несколько строк, с помощью добавления обратного слеша (“
\
”) в конец строки. Хорошо разделять строку после имени вопроса; плохо
— между типом и значением. При обратном объединении нескольких строк все начальные/конечные пробельные символы будут сжаты в один.

Владельцем переменных debconf (шаблонов), используемых только в самой программе установки, нужно назначать “d-i”; для переменных автоматизации установки,
используемых в установленной системе, должно использоваться имя пакета,
содержащее соответствующий шаблон debconf. В базу данных debconf в установленной системе попадут только переменные, у которых владельцем установлено нечто,
отличное от “d-i”.

Для большинства вопросов нужно указывать ответы на английском языке, а не их перевод. Однако, есть несколько вопросов (например, в partman
), где нужно использовать ответы на родном языке.

В ответах некоторых вопросов вместо английского текста указывается код, который показывается во время установки.
Самый простой путь создания файла ответов это использовать файл примера
Разд. B.4
в качестве основы и изменить его.
Альтернативный метод — выполнить установку вручную и затем, после перезагрузки,
использовать команду debconf-get-selections из пакета debconf-utils
, чтобы сохранить базу данных debconf и базу данных программы установки cdebconf в один файл:
112

Приложение B. Автоматическая установка с помощью списка ответов
$ debconf-get-selections --installer >
файл
$ debconf-get-selections >>
файл
Однако, таким образом созданный файл будет содержать некоторые элементы,которые не должны быть автоматизированы, и всё-таки для большинства пользователей лучше использовать файл примера.
Замечание
: Этот метод основан на том, что в конце установки, база данных программы установки cdebconf сохраняется в установленной системе в
/var/log/installer/cdebconf
Однако
, так как база данных может содержать частную информацию, по умолчанию файл разрешено читать только суперпользователю
Каталог
/var/log/installer и все файлы в нём будут удалены из системы при вычистке пакета installation-report
Для выяснения возможных ответов на вопросы можно использовать редактор nano для просмотра файла
/var/lib/cdebconf прямо во время процесса установки. В файле templates.dat хранятся необработанные шаблоны, а в questions.dat
— текущие значения и значения, назначенные переменным.
Для проверки правильности формата файла ответов до установки, можно использовать команду debconf-set-selections -c
preseed.cfg
B.4. Содержимое файла ответов (для jessie)
Фрагменты конфигурации, используемые в этом приложении, также доступны в примере файла ответов ../example-preseed.txt.
Заметим, что показанный пример основан на установке для архитектуры Intel x86. Если вы выполняете установку на другую архитектуру, то некоторые примеры (например,
выбор клавиатуры и установка загрузчика) могут различаться и должны быть заменены на соответствующие настройки debconf для этой архитектуры.
О том, как работают различные компоненты Debian Installer, можно найти в
Разд. 6.3
B.4.1. Локализация
Настройка значений локализации работает только для метода initrd. Во всех остальных методах файл ответов загружается после того, как эти вопросы уже заданы.
Для указания языка и страны можно использовать локаль; возможна любая комбинация для языка, если она поддерживается debian-installer
, и страны. Если в локали указана недопустимая комбинация, то программа установки автоматически выберет локаль, подходящую для выбранного языка. Чтобы указать локаль в параметре загрузки, используйте
locale=
ru_RU
Хотя этот метод очень прост в использовании, с его помощью нельзя задать любые комбинации языка, страны и локали
2
. Поэтому есть возможность задать автоматический
2.
При задании значения для locale равным
en_NL
, например, приведёт к установке системы с локалью по умолчанию en_US.UTF-8
. Если, например, требуется en_GB.UTF-8
, то значения для автоматического ответа нужно задавать отдельно для каждого параметра.
113

Приложение B. Автоматическая установка с помощью списка ответов ответ для каждого параметра отдельно. Язык и страну также можно указывать в параметрах запуска.
# Автоответ только для языка, страны и локали.
d-i debian-installer/locale string en_US
# Значения можно указывать отдельно для каждого параметра.
#d-i debian-installer/language string en
#d-i debian-installer/country string NL
#d-i debian-installer/locale string en_GB.UTF-8
# В добавок, можно указать дополнительные локали для генерации.
#d-i localechooser/supported-locales multiselect en_US.UTF-8, nl_NL.UTF-8
При настройке клавиатуры выбирается раскладка и (для нелатинских раскладок)
клавиша переключения между нелатинской раскладкой и раскладкой US. Во время установки доступны только основные варианты раскладок. Дополнительные варианты доступны только в установленной системе; их можно выбрать с помощью команды dpkg-reconfigure keyboard-configuration.
# Выбор клавиатуры.
d-i keyboard-configuration/xkb-keymap select ru
# d-i keyboard-configuration/toggle select No toggling
Чтобы не выполнять настройку клавиатуры укажите в keymap значение
skip-config
. В
результате останется активной клавиатурная раскладка ядра.
B.4.2. Настройка сети
Естественно, автоматическая настройка сети не работает, если вы загружаете файл ответов из сети. Но она отлично работает, если загрузка происходит с CD или
USB накопителя. Если вы загружаете файл ответов из сети, то можете указать конфигурацию сети через загрузочные параметры ядра.
Если нужно использовать определённый интерфейс для загрузки по сети перед загрузкой файла ответов из сети, используйте параметр загрузки
interface=
eth1
Хотя автоматическая настройка сети обычно невозможна при загрузки файла ответов по сети (с помощью “preseed/url”), вы можете обойти этот недостаток, например, если задав статический адрес на сетевом интерфейса. Данное обходное решение заставит запуститься настройку сети ещё раз после загрузки файла ответов, если создать сценарий “preseed/run” со следующими строчками:
kill-all-dhcp; netcfg
Следующие переменные debconf относятся к настройке сети.
# Выключить настройку сети полностью. Это полезно при установке с cdrom
# на устройства, не имеющих сети, где вопросы о сети,
# предупреждения и длительные паузы неуместны.
114

Приложение B. Автоматическая установка с помощью списка ответов
#d-i netcfg/enable boolean false
# netcfg выбирает активный сетевой интерфейс, если такой имеется. Если
# есть более одного интерфейса, то при данной настройке список
# интерфейсов выводиться не будет.
d-i netcfg/choose_interface select auto
# Чтобы использовать нужный интерфейс:
#d-i netcfg/choose_interface select eth1
# Задаёт время ожидания появления связи (link) (по умолчанию 3 секунды).
# Значения указываются в секундах.
#d-i netcfg/link_wait_timeout string 10
# Если у вас медленный сервер dhcp и программа установки не дожидается
# ответа, то данная настройка может оказаться полезной.
#d-i netcfg/dhcp_timeout string 60
#d-i netcfg/dhcpv6_timeout string 60
# Если вы предпочитаете настраивать сеть вручную, раскомментируйте эту
# строку и статические настройки сети ниже.
#d-i netcfg/disable_autoconfig boolean true
# Если вы хотите, чтобы файл ответов работал при наличии и без сервера
# dhcp, раскомментируйте эти строки и статические настройки сети ниже.
#d-i netcfg/dhcp_failed note
#d-i netcfg/dhcp_options select Configure network manually
# Статические настройки сети.
#
# Пример для IPv4
#d-i netcfg/get_nameservers string 192.168.1.1
#d-i netcfg/get_ipaddress string 192.168.1.42
#d-i netcfg/get_netmask string 255.255.255.0
#d-i netcfg/get_gateway string 192.168.1.1
#d-i netcfg/confirm_static boolean true
# Пример для IPv6
#d-i netcfg/get_ipaddress string fc00::2
#d-i netcfg/get_netmask string ffff:ffff:ffff:ffff::
#d-i netcfg/get_gateway string fc00::1
#d-i netcfg/get_nameservers string fc00::1
#d-i netcfg/confirm_static boolean true
# Имя узла и домен, назначенные с помощью dhcp, имеют приоритет над
# значениями, установленными здесь. Однако, установка значений всё ещё
# предотвращает показ вопросов, даже если значения получены по dhcp.
d-i netcfg/get_hostname string unassigned-hostname d-i netcfg/get_domain string unassigned-domain
# Если вы хотите принудительно задать имя узла, не учитывая того, что
# предложит сервер DHCP или какая будет запись для этого IP в
# обратной зоне
DNS, раскомментируйте
# и измените следующую строку.
#d-i netcfg/hostname string somehost
# Выключает показ надоедливого диалога о ключе WEP.
115

Приложение B. Автоматическая установка с помощью списка ответов d-i netcfg/wireless_wep string
# Странное имя dhcp-сервера, которое используют некоторые провайдеры в
# качестве некоего пароля.
#d-i netcfg/dhcp_hostname string radish
# Если для работы сети или другого оборудования требуется несвободная
# микропрограмма, то вы можете указать программе установки всегда пытаться
# её загружать не задавая вопросов. Или замените значение на false, чтобы
# этот вопрос вообще не задавался.
#d-i hw-detect/load_firmware boolean true
Заметим, что netcfg автоматически выберет маску сети,если она не указана в netcfg/get_netmask
. В этом случае, переменная будет помечена как seen при автоматической установке. Аналогично netcfg выберет подходящий адрес шлюза,
если не указано значение в netcfg/get_gateway
. Но есть специальная настройка:
netcfg/get_gateway можно установить в “none”, чтобы указать, что шлюз вообще не должен использоваться.
B.4.3. Сетевая консоль
# Используйте следующие настройки, если хотите использовать компоненту
# network-consoleдля удалённой установки через SSH. Это имеет смысл, если вы
# намереваетесь выполнять оставшуюся часть установки вручную.
#d-i anna/choose_modules string network-console
#d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key
#d-i network-console/password password r00tme
#d-i network-console/password-again password r00tme
B.4.4. Настройка сервера-зеркала
В зависимости от используемого метода установки для загрузки дополнительных компонент программы установки, установки базовой системы и настройки файла
/etc/apt/sources.list в установленной системе можно использовать сервер-зеркало.
Параметр mirror/suite определяет версию дистрибутива для устанавливаемой системы.
Параметр mirror/udeb/suite определяет версию дистрибутива для дополнительных компонент программы установки. Он нужен только если компоненты загружаются по сети и должны соответствовать версии, которая была использована для сборки initrd, который используется для установки с помощью одноимённого метода. Обычно программа установки автоматически определяет правильное значение, и этот параметр задавать ненужно.
# Если вы выберете ftp, то mirror/country string устанавливать не нужно.
#d-i mirror/protocol string ftp d-i mirror/country string manual d-i mirror/http/hostname string http.us.debian.org d-i mirror/http/directory string /debian d-i mirror/http/proxy string
# Устанавливаемая версия.
116

Приложение B. Автоматическая установка с помощью списка ответов
#d-i mirror/suite string testing
# Версия загружаемых компонент (необязательно).
#d-i mirror/udeb/suite string testing
B.4.5. Настройка учётной записи
Могут быть автоматически настроены пароль суперпользователя и имя и пароль первого обычного пользователя. Пароли могут быть заданы или в нешифрованном виде или в виде хешей MD5.
Внимание
Обратите внимание
, что автоматическую настройку паролей использовать небезопасно, так как любой может получить доступ к файлу ответов и узнать пароли
. Считается, что использование хешей
MD5 улучшает ситуацию с точки зрения безопасности, но MD5 хеш всё ещё остаётся доступным для атак на пароль прямым перебором
# Пропустить создание учётной записи суперпользователя (в обычной учётной
# записи пользователя можно использовать sudo).
#d-i passwd/root-login boolean false
# Или же пропустить создание обычной учётной записи пользователя.
#d-i passwd/make-user boolean false
# Пароль суперпользователя, любой открытым текстом
#d-i passwd/root-password password r00tme
#d-i passwd/root-password-again password r00tme
# или в виде MD5 хеша.
#d-i passwd/root-password-crypted password [MD5 хеш]
# Создать учётную запись обычного пользователя.
#d-i passwd/user-fullname string Debian User
#d-i passwd/username string debian
# Пароль обычного пользователя, или открытым текстом
#d-i passwd/user-password password insecure
#d-i passwd/user-password-again password insecure
# или в виде MD5 хеша.
#d-i passwd/user-password-crypted password [MD5 хеш]
# Создать первую учётную запись с заданным UID вместо значения по
# умолчанию.
#d-i passwd/user-uid string 1010
# Учётная запись будет добавлена в несколько стандартных начальных групп.
# Чтобы это изменить -- отредактируйте и раскомментируйте строчку ниже.
#d-i passwd/user-default-groups string audio cdrom video
Также,
в начале значений переменных passwd/root-password-crypted и
passwd/user-password-crypted можно указать знак
“!”.
В
этом случае,
соответствующая учётная запись будет заблокирована. Это может быть удобно для учётной записи суперпользователя, если используется другой метод настройки,
предоставляющий возможность выполнить административные действия или вход в систему от имени суперпользователя (например, используя аутентификацию по SSH
ключу или sudo).
117

Приложение B. Автоматическая установка с помощью списка ответов
С помощью следующей команды (доступной из пакета whois
) можно сгенерировать MD5
хеш для пароля:
mkpasswd -m sha-512
B.4.6. Настройка времени и часового пояса
# Задаёт, установлены или нет аппаратные часы по Гринвичу.
d-i clock-setup/utc boolean true
# Здесь вы можете указать любое допустимое значение для $TZ; смотрите
# допустимые значения в файле /usr/share/zoneinfo/.
d-i time/zone string US/Eastern
# Определяет, нужно ли использовать NTP для установки часов во время установки d-i clock-setup/ntp boolean true
# Используемый сервер NTP. Значение по умолчанию указывается здесь.
#d-i clock-setup/ntp-server string ntp.example.com
B.4.7. Разметка дисков
Использование настроек разметки жёсткого диска в автоматической установке очень ограничено; поддерживаются параметры только для partman-auto
. Вы можете выбрать разметку только свободного места на диске или всего диска. Разметку диска можно выбрать из одного из имеющихся в программе установки наборов, пользовательского набора из файла или набора из файла ответов.
Расширенные возможности разметки с использованием RAID, LVM и шифрования поддерживаются в автоматической установке, но не так гибки как при разметке без автоматической установки.
Представленные далее примеры показывают только основы по использованию наборов.
Подробности смотрите в
файлах partman-auto-recipe.txt и
partman-auto-raid-recipe.txt из пакета debian-installer
. Также эти файлы доступны в репозитории debian-installer
(http://anonscm.debian.org/gitweb/?p=d-i/debian- installer.git;a=tree;f=doc/devel). Заметим, что список поддерживаемых возможностей может поменяться между выпусками.
Внимание
Идентификация дисков зависит от порядка загрузки драйверов
. Если в системе есть несколько дисков
, проверьте, что выбирается правильный диск перед тем как использовать автоматическую установку
B.4.7.1. Пример разметки
# Если система имеет свободное место, вы можете выбрать для разметки
118

Приложение B. Автоматическая установка с помощью списка ответов
# только его.
# Это соблюдается, только есть не задан partman-auto/method (ниже).
#d-i partman-auto/init_automatically_partition select biggest_free
# Или же, вы можете задать размечаемый диск. Если в системе
# имеется только один диск, то программа установки будет
# использовать его по умолчанию, иначе имя устройства
# должно задаваться в обычном не-devfs формате (то есть,
# /dev/hda или /dev/sda, а не /dev/discs/disc0/disc).
# Например, для использования первого жёсткого диска SCSI/SATA:
#d-i partman-auto/disk string /dev/sda
# Также, вы можете указать какой метод использовать.
# Доступные методы:
# - regular: использовать обычные для архитектуры типы разделов
# - lvm: при разметке диска использовать LVM
# - crypto: использовать LVM с шифрованием d-i partman-auto/method string lvm
# Если один из дисков, который нужно разметить с помощью автоматической
# разметки, содержит старую конфигурацию LVM, то пользователю выдаётся
# предупреждение. Ответ можно автоматизировать...
d-i partman-lvm/device_remove_lvm boolean true
# То же самое для существующих программных RAID массивов:
d-i partman-md/device_remove_md boolean true
# И подтвердить запись lvm разделов.
d-i partman-lvm/confirm boolean true d-i partman-lvm/confirm_nooverwrite boolean true
# Вы можете выбрать один из трёх имеющихся наборов разметки:
# - atomic: все файлы в одном разделе
# - home:
отдельный раздел для /home
# - multi:
отдельные разделы для /home, /var и /tmp d-i partman-auto/choose_recipe select atomic
# Или создать набор вручную...
# Если вы каким-то образом поместили файл набора в окружение d-i, то можно
# просто указать его.
#d-i partman-auto/expert_recipe_file string /hd-media/recipe
# Если нет, то можно записать набор полностью в файле ответов в одну
# (логическую) строку. В примере ниже создаётся маленький /boot
# раздел, подходящего размера раздел подкачки,
# а оставшееся место используется под корневой раздел:
#d-i partman-auto/expert_recipe string
\
#
boot-root ::
\
#
40 50 100 ext3
\
#
$primary{ } $bootable{ }
\
#
method{ format } format{ }
\
#
use_filesystem{ } filesystem{ ext3 }
\
#
mountpoint{ /boot }
\
#
\
#
500 10000 1000000000 ext3
\
#
method{ format } format{ }
\
#
use_filesystem{ } filesystem{ ext3 }
\
#
mountpoint{ / }
\
#
\
#
64 512 300% linux-swap
\
119

Приложение B. Автоматическая установка с помощью списка ответов
#
method{ swap } format{ }
\
#
# Полностью формат набора описан в файле partman-auto-recipe.txt,
# включённом в пакет debian-installer и репозиторий D-I.
# Там же описано как задать другие настройки, такие как метки
# файловой системы, имена групп томов и какие физические
# устройства включить в группу томов.
# Это заставляет partman автоматически выполнить разметку
# без подтверждения, ровно такую, которую вы указали в методах выше.
d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true
B.4.7.2. Разметка с использованием RAID
Также вы можете автоматизировать настройку массивов программного RAID.
Поддерживаются RAID уровни 0, 1, 5, 6 и 10, создание неполных массивов (degraded arrays) и можно указать запасные устройства.
Если вы используете RAID 1, то можете автоматизировать установку grub на все устройства массива, см.
Разд. B.4.11
Внимание
В данном типе автоматизации разметки легко ошибиться
. Также эта возможность тестировалась относительно мало разработчиками debian-installer
Ответственность при создании правильного набора
(то есть, чтобы он был логически верным и не имел конфликтов) лежит на пользователе
. Если возникают проблемы -- см.
/var/log/syslog
# Метод должен быть установлен в значение "raid".
#d-i partman-auto/method string raid
# Задать размечаемые диски. Они будут иметь одинаковую разметку,
# поэтому это работает только, если диски одинакового размера.
#d-i partman-auto/disk string /dev/sda /dev/sdb
# Далее нужно указать какие физические разделы будут использоваться.
#d-i partman-auto/expert_recipe string \
#
multiraid ::
\
#
1000 5000 4000 raid
\
#
$primary{ } method{ raid }
\
#
\
#
64 512 300% raid
\
#
method{ raid }
\
#
\
#
500 10000 1000000000 raid
\
#
method{ raid }
\
#
# Наконец, нужно указать как использовать определённые ранее разделы
# в настройке RAID. Указывайте правильные номера разделов
120

Приложение B. Автоматическая установка с помощью списка ответов
# для логических разделов. Поддерживается RAID 0, 1, 5, 6 и 10;
# устройства разделяются с помощью "#".
# Параметры:
# \
#

#d-i partman-auto-raid/recipe string \
#
1 2 0 ext3 /
\
#
/dev/sda1#/dev/sdb1
\
#
\
#
1 2 0 swap -
\
#
/dev/sda5#/dev/sdb5
\
#
\
#
0 2 0 ext3 /home
\
#
/dev/sda6#/dev/sdb6
\
#
# Полностью формат набора описан в файле partman-auto-raid-recipe.txt,
# включённом в пакет debian-installer и репозиторий D-I.
# Это заставит partman сделать разметку автоматически, без подтверждения.
d-i partman-md/confirm boolean true d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true



Поделитесь с Вашими друзьями:
1   ...   8   9   10   11   12   13   14   15   16


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал