Универсальный сервер сетевой загрузки и установки. Продолжение.

С разрешения редакции журнала "Системный администратор" публикую продолжение статьи.

Универсальный сервер сетевой загрузки и установки. Часть 2.

В первой части статьи [1] были рассмотрены принципы работы, создание и конфигурирование сервера для инсталляции различных операционных систем в сети. Подготовили и настроили для установки в обычном режиме (вопрос–ответ) два дистрибутива: Microsoft Windows XP и Microsoft Windows 7.

Рассмотрим процесс автоматизации установки операционных систем. Автоматическая установка Windows XP подробно описана не только в официальной документации Microsoft [2], но и в огромном количество how-to разбросанным по интернету [3]. Поскольку Windows XP снята с поддержки, то перейдем к обзору автоматической установки флагманской операционной системы компании Microsoft Windows 7.

Создание файла ответов

Автоматическая установка обеспечивается при наличии в дистрибутиве Microsoft Windows XP текстового файла настройки системы winnt.sif и диспетчер установки setupmgr.exe. В последующих версиях Windows (Microsoft Windows Vista и старше) эту роль играет файл ответов autounattend.xml. Как понятно из расширения он представляет собой простую XML-структуру (рис.1).

 

Рисунок 1. Структура файла autounattend.xml

Структура файла autounattend.xml

В нем можно указать используемые по умолчанию параметры Internet Explorer, настройку сети, принадлежность к домену и т.д. В связи с тем, что теперь в Windows используется модульная архитектура, появилась возможность тонкой настройки каждого компонента устанавливаемой системы, за счет вложенных элементов структуры XML.

Создать файл ответов можно в любом текстовом редактором, но лучше все действия производить при помощи диспетчера установки Windows (Windows Automated Installation Kit или сокращенно WAIK) [4]. Кроме того WAIK проверяет корректность указанных значений и имеет очень удобно реализованную систему помощи. Подробные сведения о том или ином параметре настройки можно узнать из контекстного меню его интерфейса. Вместе с этим продуктом поставляется набор документации, включающий руководство пользователя пакета автоматической установки Windows, а так же средства миграции пользовательской среды и другие документы.
Для просмотра этих документов после установки Windows AIK нажмите кнопку Пуск, последовательно выберите Все программы | Microsoft Windows AIK | Документация, а затем откройте необходимый файл справки. По умолчанию все документы находятся в папке %ProgramFiles%\Windows AIK\Docs\CHMs. Дополнительно в папке C:\Program Files\Windows AIK\Samples обслуживающего компьютера [1] можно найти образец файла ответов (Corp_autounattended_sample.xml).

Рассмотрим пример развертывания образа Windows 7 используя WAIK .Для этого выполним следующие действия:

  • На обслуживающем компьютере устанавливаем DVD-диск Microsoft Windows 7 необходимой для вас редакции («Professional», «Ultimate» и т.п. - далее DVD) исоздаем папку c:\windows7-x86, копируем в нее файл Install.wim из каталога DVD\Sources;
  • Запускаем диспетчер установки Windows: Пуск | Все программы | Microsoft Windows AIK | Диспетчер установки Windows.
  • В появившемся диалоговом окне Выбрать образ Windows переходим в папку c:\windows7-x86 и нажимаем кнопку Открыть.
  • Выбираем нужный образ Windows (c:\windows7-x86\Install.wim) и нажимаем на кнопку ОК. На предложение мастера создать файл каталога— отвечаем утвердительно.
  • В меню Файл выполняем команду Новый файл ответов.

Врезка.

В данном примере не импортируются специальные драйверы устройств, а так же дополнительные приложения и пакеты. Производиться первоначальное конфигурирование и форматирование дисков, установка редакции и локали системы, а так же ввод ключа продукта.

После выполненных действий в области Файл ответов появится пустой файл с названием Untitled. Далее, выполняем добавление компонентов системы настройки, для этого в панели Образ Windows разворачиваем вкладку Components.

Таблица 1. Компоненты необходимые для создания базового образа Windows

 

Компонент Этап настройки
Microsoft Windows Deployment Reseal oobeSystem
Microsoft-Windows-International-Core-WinPE\SetupUILanguage windowsPE

Microsoft-Windows-Setup\DiskConfiguration\Disk\CreatePartitions\CreatePartition

windows PE

Microsoft-Windows-Setup\DiskConfiguration\Disk\ModifyPartitions\ModifyPartition

windowsPE

Microsoft-Windows-Setup\ImageInstall\OSImage\InstallTo

windowsPE

Microsoft-Windows-Setup\UserData

windowsPE

Microsoft-Windows-Shell-Setup\OOBE

oobeSystem

На основе данных, приведенных в таблице 1 выбираем необходимый параметр нажимаем на нем правой кнопкой мыши. Система предложит выбрать этап настройки, указываем сверяясь с таблицей 1. Приведенные компоненты взяты из официальной документации и являются минимально необходимыми. Присмотревшись внимательнее к названиям в большинстве случаев можно определить за что отвечает каждый компонент. Вопрос который может возникнуть: «Что такое этап настройки?». Этап настройки это момент времени в которое будет производиться описанное действие. Этапы по своей сути очень похожи на «шаги инсталляции» Windows XP. Настройки автоматической установки могут быть применены в одном или нескольких этапах. Нам необходимо использовать этап под названием WindowsPE. Вот как он описан в документации: «...параметры могут включать определение образа ОС Windows для установки и настройки диска на компьютере назначения. На этом этапе настройки, образ Windows копируется на целевой целевой компьютер применяя конфигурацию указанную в WindowsPE.

Если ваша установка Windows PE требует загрузки драйверов для доступа к локальному жесткому диску или сети, используйте этот этап настройки для добавления драйверов в хранилище драйверов Windows PE.»

Все просто и понятно - это самый главный этап для сетевой установки.

Итак, закончив добавление, переходим к редактированию свойств компонентов (рис.2).

Рисунок 2. Редактирование свойств компонента

Редактирование свойств компонента

В области Параметры панели Свойства выбираем нужный параметр и в правом столбце вводим соответствующее значение, как указано в таблице 2. Названия и значения свойств интуитивно понятны и не должны вызвать вопросов.

Таблица 2. Параметры свойств компонента

 

Этап настройки

Компонент

Значение

WindowsPE

Microsoft-Windows-International-Core-WinPE

<язык ввода>

WindowsPE

Microsoft-Windows-International-Core-WinPE\SetupUILanguage

<язык интерфейса>

WindowsPE

Microsoft-Windows-Setup\DiskConfiguration

WillShowUI = OnError

WindowsPE

Microsoft-Windows-Setup\DiskConfiguration\Disk

DiskID = 0

WillWipeDisk = true

WindowsPE

Microsoft-Windows-Setup\DiskConfiguration\Disk\CreatePartitions\CreatePartition

Order = 1

Size = 100

Type = Primary

WindowsPE

Microsoft-Windows-Setup\DiskConfiguration\Disk\ModifyPartitions\ModifyPartition

Active = true

Format = NTFS

Label = System

Order = 1

PartitionID = 1

WindowsPE

Microsoft-Windows-Setup\ImageInstall\OSImage

InstallToAvailablePartition = false

WillShowUI = OnError

 

WindowsPE

Microsoft-Windows-Setup\ImageInstall\OSImage\InstallTo

DiskID = 0

PartitionID = 1

WindowsPE

Microsoft-Windows-Setup\UserData

AcceptEula = true

WindowsPE

Microsoft-Windows-Setup\UserData\ProductKey

Key = <ключ продукта>

WillShowUI = OnError

 

Со списком минимально необходимых компонентов, а так же с подробным описанием каждого можно познакомиться в документе под названием «Пошаговое руководство создания файла ответов» — файл stepbystep_itpro.htm дистрибутива [4].

Проверка файла ответов

После добавления всех необходимых параметров и компонентов в меню Сервис выбираем Проверка файла ответов. Все значения сравниваются с доступными параметрами выбранного образа Windows. Если проверка прошла успешно, в области Сообщения в нижней части окна Диспетчер установки Windows появляется сообщение Ошибок и предупреждений нет. В противном случае в области Сообщения появляется сообщение об ошибке. Для исправления обнаруженной ошибки, необходимо дважды кликнуть по соответствующему сообщению, чтобы перейти к неверному параметру. Исправляем ошибку, используя встроенную систему помощи и снова выполняем проверку. Повторяем это действие, пока файл ответов не будет годным к эксплуатации. И только после этого сохраняем файл под именем autounattend.xml. Осталось скопировать этот файл в корневую папку сервера сетевой загрузки и исправить вызов setup.exe в файле install_menu.cmd [1] с указанием его имени: setup.exe /unattend: autounattend.xml. Теперь установка системы будет происходить в автоматическом режиме с указанными параметрами.

После создания базового файла ответов его можно изменить, включив дополнительные настройки, автоматизировать части процесса инсталляции путем создания сценариев. Дополнительно интегрировать в загружаемый образ разнообразные драйвера устройств и необходимые приложения. Много информации о настройке и развертывании образа Windows содержаться в разделе Сценарии пакета автоматической установки Windows справки Waik.chm и документации к WAIK [4], а так же по адресу [5].

Добавление Linux дистрибутивов

Добавить в загрузку Linux-дистрибутив не составляет большого труда. Обычно сборщики популярных дистрибутивов таких как CentOS, Ubuntu, openSuSe и т.д. Включают в поставку текстовый файл с описанием установки ОС с сетевого ресурса.

Общий принцип одинаков: загрузка ядра системы установки и передача ему параметров с указанием пути по которому располагается дистрибутив. Так как этот вопрос подробно рассматривался в первой части статьи , то останавливаться на нем не будем. Дополнительную информацию можно найти по адресу [6].

Citrix XenServer 5.6.0

Citrix XenServer является одной из самых популярных платформ виртуализации инфраструктуры масштаба предприятия. Популярность ей обеспечивает отличное средство управления и настройки - Citrix XenCenter, а так же возможность использовать редакцию Free XenServer бесплатно. Рассмотрим установку этой операционной системы в качестве первого примера.

В документации к дистрибутиву в файле installation.pdf [8] приведен пример, готовый к использованию совместно с PXE. Для использования в созданной нами сетевой конфигурации его необходимо немного изменить:

  • Исправим значения путей к файлам и параметры загрузки ядра;
  • Добавим в файл содержащий описание меню (/tftboot/pxelinux.cfg/default [1]) пункт Citrix XenServer ;

После всех изменений содержимое должно принять такой вид:

#default xenserver # Эта директива установки по умолчанию. Нам она не нужна - есть меню выбора установок

label xenserver # наименование загрузки (на ваш выбор)

menu label Install - ^Citrix XenServer # Название пункта меню

kernel xensrv/mboot.c32 # Ядро-загрузчик установки (xensrv/ - директория на сервере установки)

append xensrv/xen.gz dom0_mem=752M com1=115200,8n1 console=com1,tty --- xensrv/vmlinuz console=ttyS0,115200n8 console=tty0 --- xensrv/install.img # параметры установки рекомендованные Citrix

Рассмотрим за что отвечает каждый параметр:

xen.gz — сжатая файловая система инсталлятора;

dom0_mem=752M — использование памяти хост-машиной;

com1=115200 — виртуальный com-порт;

n1 console=com1 — «привязка» порта к терминалу 8 бит с проверкой четности;

vmlinuz — ядро системы;

console=ttyS0,115200n8 console=tty0 — параметры загрузки ядра ;

install.img — образ установочного диска.

Меню создано, осталось скопировать файлы. Для этого последовательно выполняем:

# mount /media/dvd /mnt # Монтируем DVD или

# mount -o loop /distrib/CitrixXS56.iso /mnt # iso-образ Citrix XenServer 5.6.0

Далее создаем папку /tftpboot/xensrv на сервере и скопируем в нее из /mnt/boot/ файлы ядра vmlinuz и xen.gz. Затем скопируем из /mnt/boot/isolinux папку packages.main и файл install.img. В папке packages.main находятся: dom0fs.tar.bz2 он содержит корневую файловую систему и архивы дополнительных пакетов, разработанных в Citrix, необходимые серверу. Можно включить в установку пакеты которые вам нужны, достаточно просто добавить их в dom0fs.tar.bz2, взяв из соответсвующего репозитория CentOS.

В Citrix XenServer так же предусмотрена возможность автоматической установки. Такой вариант удобен при создании большого количества однотипных серверов, например фермы Citrix App. В этом случае необходимо использовать предварительно созданный файл ответов, путь к которому указываем в параметрах /tftboot/pxelinux.cfg/default перед указанием параметра install.img:

answerfile=]]>http://myhost.ru/5.6.0-answerfile]]> \

install --- /tftpboot/xenserver/install.img

В приведенном листинге myhost.ru — адрес сервера установки (в частном случае это IP-адрес 192.168.1.7); 5.6.0-answerfile — имя файла. Необходимо обратить внимание на то, что обращение к файлу идет по протоколу HTTP (answerfile=http://...).

Для создания файла 5.6.0-answerfile обратимся к инструкции по установке XenServer [8], где приведены готовые примеры. Структура этого XML файла проста и интуитивно понятна (Рис. 3), поэтому не вызовет никаких затруднений при заполнении.

Рисунок 3. Структура файла 5.6.0-answerfile

Структура файла 5.6.0-answerfile

На этом подготовка закончена и можно проверить установку выбрав в загрузочном меню [1] пункт “Citrix XenServer” (Рис.4).

Рисунок 4. Начало загрузки Citrix XenServer 5.6.0

Начало загрузки Citrix XenServer 5.6.0
 

Ubuntu

Все шаги которые были производены для Citrix XenServer, полностью справедливы для дистрибутива Ubuntu. В этом примере использовалась версия Ubuntu — 10.10 x64 и стандартная установка режима cloud. Исключение составляют файлы ответов. Они располагаются в каталоге /preseed/ инсталляционного диска. Небольшая тонкость – они запрашиваются и передаются установщиком по протоколу http (так же как у XenServer, см. выше). Следовательно необходимо установить и настроить HTTP-сервер, например apache, ligth-http, nginx – любой на ваш выбор, указав для него корневую директорию /srv/tftpboot/. Для прямых обращений к HTTP желательно прописать алиасы на директории содержащие файлы систем. Добавляем в /etc/apache2/conf.d/ две конфигурации (еще одну для CentOS). Соотвественно для Ubuntu10.10 файл ubuntu.conf с таким содержанием:

Alias /ubuntu "/tftpboot/ubuntu/"

<Directory "/backup/ubuntu/">

Options Indexes

AllowOverride None

Order allow,deny

Allow from all

</Directory>

Для CentOS файл "centos.conf" с таким:

Alias /centos "/tftpboot/centos/"

<Directory "/tftpboot/centos/">

Options Indexes

AllowOverride None

Order allow,deny

Allow from all

</Directory>

В дистрибутиве поставляется несколько вариантов установки конечных систем. Вы можете выбрать подходящий вам и указать соответсвующий ему файл ответов. Мне необходим вариант Cloud и поэтому в моей конфигурации указан /preseed/cloud.seed.

Добавляем в pxelinux.cfg/default описание раздела:

label ubuntu # наименование загрузки (на ваш выбор)

menu label Install - ^Ubuntu-10.10 x64 cloud # наименование пункта меню

kernel ubuntu/linux # ядро установщика

append vga=normal # включить графический режим установщика

initrd=ubuntu/initrd.gz # сжатая файловая система preseed/url=]]>http://192.168.1.7/ubuntu/preseed/cloud.seed]]> – quiet # путь к файлу ответов, параметр “– quiet” - установка с вводом параметров в ручном режиме (необходимо уазывать если не все параметры описаны в файле ответов)

Затем создаем папку /ubuntu/, монтируем iso-образ и копируем все файлы дистрибутива в нее. Проверяем установку выбрав в загрузочном меню пункт Ubuntu-10.10 x64 cloud.

Так как в параметрах указано – quiet, то на вопрос Выбор зеркала архива необходимо выбрать самую верхнюю строку — Ввести информацию вручную. И указать URL папки на сервере установки (Рис. 5,6).

Рисунок 5. Установка Ubuntu- Выбор зеркала архива.

Установка Ubuntu по сети - Выбор зеркала архива.

Рисунок 6. Установка Ubuntu- Наше зеркало.

Установка Ubuntu- Наше зеркало.

CentOS-6.0x86-64

Установка этой операционной системы практически ни чем не отличается от предыдущего примера, наверное сказываются общие корни. Интерес вызывает возможность не распаковывать ISO-образ в папку на сервере, а просто скопировать его в корень HTTP-сервера и указать путь к нему. Итак:

добавляем в pxelinux.cfg/default описание раздела для CentOS-6.0:

label CentOS

menu label Install - ^CentOS-6.0

kernel centos/vmlinuz

append initrd=centos/initrd.img text

В таком варианте после загрузки ядра системы получим стандартное меню инсталлятора и уже с его помощью производите установку системы. При появлении запроса о дистрибутивном устройстве указываете полный путь URI к файлу ISO на сервере (рис.7). О возможностях автоматизации этого процесса можно прочитать в документации к дистрибутиву и по адресу [9].

Рисунок 7. Установка "CentOS 6.0".

Установка "CentOS 6.0" по сети

 В следующей части будут рассмотрены вопросы создания дистрибутивов «спасательных» систем, загружаемых по сети, на базе Windows PE и FreeDOS.

]]>

Литература