ПРИЛОЖЕНИЕ М Руководство по созданию и работе с дистрибутивом ОС Linux, включающим в себя систему управления информационным обменом сети корпоративных порталов
Создание дистрибутива.
В качестве основы для создания дистрибутива был выбран дистрибутив Ubuntu GNU/Linux Server. Версия Server отличается от версии Desktop оптимизированным ядром ОС с целью достижения максимальной производительности.
Базовая версия системы – Ubuntu Server 11.1 LTS. Для версий помеченных как LTS (Long Term Support), осуществляется более длительная поддержка - пять лет. Безусловно в дальнейшем возможно обновление как установленных экземпляров ОС, так и выпускаемого дистрибутива.
Основные механизмы индивидуальной настройки дистрибутива для нужд проекта:
настройка первичного загрузчика операционной системы, в дистрибутиве Ubuntu Server данную функцию выполняет загрузчик isolinux;
технология Preseed (автоматизация);
финальное конфигурирование системы tasksel (настройка).
1. Настройка загрузчика (isolinux).
На первом этапе запуска компьютера с CD диска Ubuntu Server вам предложит выбрать язык. Чтобы этот запрос не появлялся необходимо создать в папке isolinux/ файл с именем lang, всё содержимое которого будет представлять буквенный код нужного языка. В данном случае устанавливаем язык по-умолчанию – русский (ru). Далее необходимо, чтобы загрузчик выбирал автоматически нужный пункт меню после некоторого ожидания. В нашем случае этим пунктом будет автоматическая установка. По умолчанию Ubuntu Server ждёт выбора пользователя и не выполняет никаких действий. Чтобы поменять такое поведение необходимо изменить значение параметра timeout в файле isolinux/isolinux.cfg на ненулевое значение. Время измеряется в десятых долях секунды, соответственно для выставления таймаута в две секунды в этом файле должна быть такая запись: timeout 20.
Также требуется выбрать, какой именно пункт меню будет запускаться по умолчанию. Все пункты меню задаются в файле isolinux/txt.cfg. Для автоматической установки мы создадим свой собственный пункт меню с названием «Auto Install» для того, чтобы остались доступны обычные опции установки. Надо отметить, что самим процессом установки управляют так называемые preseed файлы (файлы настроек), которые располагаются в соответствующей директории на диске.
Preseed (автоматизация)
Технология preseed позволяет заранее указать ответы на вопросы, задаваемые при установке, убрав таким образом необходимость отвечать на них вручную. Это дает возможность создать полностью автоматические сценарии со всеми необходимыми настройками.
Каждая инструкция preseed состоит обычно из четырёх частей: владельца, названия параметра, типа параметра и значения. Между частями обязательно должен быть ровно один пробел. Установщик носит имя d-i, и именно это значение будет стоять в первом поле в большинстве инструкций.
Существует три способа задания инструкций preseed:
через параметры запуска ядра;
через указание загружаемого по сети файла с инструкциями;
через локальный файл с инструкциями.
В рамках данного дистрибутива используется интегрированный в iso образ локальный файл с инструкциями.
Файл preseed настроек oem.seed размещается в папке /preseed iso образа дистрибутива. В файле /isolinux/txt.cfg указывается соответствующий путь (append file=/cdrom/preseed/oem.seed) для созданного варианта загрузки.
Пример инструкций файла oem.seed для автоматической настройки параметров клавиатуры:
# Keyboard
d-i localechooser/countrylist/Europe select Российская Федерация
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string ru
d-i console-setup/variant select Россия
d-i console-setup/toggle select Alt+Shift
Полный текст файла oem.seed представлен ниже. 3. Финальное конфигурирование системы tasksel (настройка)
Финальной стадией конфигурирования в процессе разворачивания дистрибутива системы является установка набора пакетов необходимого для выполнения функции сервера-доступа. Установка пакетов осуществляется комплексно средствами настройки функционала ubuntu server (tasksel). Для функции сервера доступа создан специальный файл описания с указанием всех требуемых пакетов программ (accessserver.desc), следующего содержания:
Task: access server
Section: server
Relevance: 7
Description: Access Server
Selects packages needed for an Access server.
Packages: list
cron
nginx*
python
sajax*
python-django
ldap-utils
postgresql
ntp
iptables
apcupsd Структура файла автоматических настроек дистрибутива Oem.seed
# Locales
d-i debian-installer/language string ru
d-i debian-installer/country string RU
d-i debian-installer/locale string ru_RU.UTF-8 # Keyboard
#d-i localechooser/countrylist/Europe select Российская Федерация
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string ru
d-i console-setup/variant select Россия
d-i console-setup/toggle select Alt+Shift # Network
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string nserver
d-i netcfg/dhcp_failed note
d-i netcfg/dhcp_options select Do not configure the network at this time # Clock
d-i clock-setup/utc boolean true
#d-i time/zone string Europe/Moscow
d-i clock-setup/ntp boolean true # Users
d-i passwd/root-login boolean true
d-i passwd/make-user boolean true
d-i passwd/root-password-crypted password $1$mD4JvlUz$t9c9x9dgt7STac1m6SHqo.
d-i passwd/user-fullname string Ubuntu user
d-i passwd/username string user
d-i passwd/user-password-crypted password $1$mD4JvlUz$t9c9x9dgt7STac1m6SHqo.
d-i user-setup/allow-password-weak boolean true
d-i user-setup/encrypt-home boolean false #Mirror
d-i mirror/country string manual
d-i mirror/http/hostname string archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string # Partitioning
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
partman-auto partman-auto/init_automatically_partition select Guided - use entire disk
partman-auto partman-auto/automatically_partition select
d-i partman-auto/purge_lvm_from_device boolean true
d-i partman/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 # GRUB
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true # Packages and updates pkgsel pkgsel/upgrade select safe-upgrade
pkgsel pkgsel/update-policy select unattended-upgrades d-i tasksel/force-tasks string server
d-i tasksel/first multiselect OpenSSH server , access server # APT
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i apt-setup/multiverse boolean true
d-i apt-setup/non-free boolean true
d-i mirror/ftp/proxy string
d-i mirror/http/proxy string # Always install the server kernel.
d-i base-installer/kernel/override-image string linux-server # Install the Ubuntu Server seed.
tasksel tasksel/force-tasks string server
|