Автоматическая установка ESX

ESX всегда можно было установить  автоматически, используя файл ответов.

По-английски это называется «Scripted install with kickstart file».

Файл  ответов для ESX очень напоминает оный для Red Hat – но между собой они не совместимы.  В файле  ответов для ESX есть как секции  от Red Hat,  так и

секции  от VMware.  Все параметры,  которые мы можем указать в файле ответов, перечислены  и описаны в документе «ESX and vCenter Server Installation Guide». Здесь я укажу лишь самые интересные,  на мой взгляд, возможности автоматиче ской установки, чтобы вы могли понять, нужна она вам или нет.

Файл  ответов для автоматизации установки  ESX можно взять из нескольких источников:

Q  после  установки   ESX  в  интерактивном режиме  на  нем  автоматически

создается  файл  /root/ks.cfg, в котором  содержатся  те ответы  на вопросы установщика,  которые вы давали по ходу установки  данного сервера ESX. Данный  файл хорошо подходит  для такой же переустановки ESX на этот сервер – в каком-то роде резервная  копия. Еще – как основа для создания  универсального файла ответов;

Q  в дистрибутив ESX входят  два готовых файла  ответов  с настройками по

умолчанию;

Q  создать файл  ответов самостоятельно с самого начала или взяв за основу вариант из Интернета.

Чтобы задействовать существующие  по умолчанию файлы  ответов, выберите соответствующий пункт в первом меню установщика ESX (рис. 1.6).

Рис. 1.6. Выбор типа установки ESX

Если выбрать  ESX Scripted Install to first disk, то установка  без лишних вопросов будет произведена на первый из дисков сервера, с сохранением на нем раздела VMFS и виртуальных машин. Имя этого файла ответов – ks-first-safe.cfg.

Для автоматической установки на первый диск без сохранения  раздела VMFS выберите  ESX Scripted Install to first disk (overwrite VMFS). Имя этого файла  ответов – ks-first.cfg.

Пароль  пользователя root  будет «mypassword».  Дальнейшая настройка ESX должна проводиться с помощью клиента vSphere.

При создании произвольного файла ответов один файл может использоваться для установки ESX на разные серверы, даже различной конфигурации. В сетевых настройках  необходимо  будет указать использование DHCP. Мы можем указать правила  выбора дисков для установки.  Например:  устанавливать ESX на первый из локальных дисков, а если локальных установщик не найдет – на первый из удаленных. Можем указать модели дисков и их приоритет при выборе для установки на них ESX.

Можем  указать  источник  дистрибутива. Им  может  быть  локальный  DVD ROM, накопитель USB с дистрибутивом или образом ISO, или ресурс в сети (протоколы доступа – HTTP, HTTPS, NFS, FTP).

В отличие от интерактивной установки, здесь мы можем указать размеры разделов, создаваемых  для установки  ESX (не разделов Service Console, а самого гипервизора). Кроме того, можно указать произвольный размер блока для создаваемого установщиком раздела VMFS.

На самом деле, по моему мнению, самое важное в автоматической установке ESX – это автоматизировать еще и настройки.  Для этого нам пригодится  секция

«%post» файла ответов.

В секции «%post» мы можем указать произвольные команды для исполнения после завершения установки  ESX – это открывает интересные возможности по автоматизации еще и любых настроек серверов ESX.

Например, если вы хотите прописать  на всех серверах  какую-нибудь из Advanced Settings,  то можно указать это изменение  в данной секции, и оно будет выполнено сразу после установки  ESX. То же самое касается создания  виртуальных коммутаторов, внесения  изменения в любой конфигурационный файл.  Баналь ный пример: вам может потребоваться разрешать  имена других серверов ESX не только через DNS, но и используя содержимое  файла «hosts», – и вот здесь опять же можно задать необходимое содержание этого файла.

Что нужно знать для автоматизации настроек ESX?

Можно создать текстовый файл с какими-то командами. Например, при работе в командной  строке ESX это можно сделать командой

nano script_name

Этой командой вы откроете в текстовом редакторе nano файл с именем «script_ name», который будет создан, если еще не существует. Создан в том каталоге, где вы сейчас находитесь, – по умолчанию это домашний каталог вашего пользователя. Сразу первой строкой пропишем обработчик команд:

#!/bin/bash

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

Q  Command  > filename  – вывод команды будет записан в файл «filename»;

Q  Command  >> filename  – вывод команды будет добавлен к файлу «filename»;

Q  Command   <  filename  – команде  подается  на вход содержимое  файла «filename»;

Q  Command < filename  > newfile – «filename» подается на вход, вывод команды

пишется в «newfile»;

Q  Command << delimiterапрап – на вход подавать следующие за командой строки, пока не встретится строка «delimiter». Сама строка может быть любой – см. примеры.  В качестве  такого разделителя частенько  удобно использо вать «EOF»  – End of file, то есть до конца файла.

Пример:

#!/bin/bash

cat  > /etc/resolv.conf <<  DNS search   mydomain.com

nameserver  <primary_DNS_server> nameserver  <secondary_DNS_server> DNS

Выход команды cat записывается в файл /etc/resolv.conf. На вход ей подаются строки, следующие до строки «DNS», которая является разделителем (delimiter). Вывод команды cat  в данном случае – это те строки, что мы даем ей на вход. На вход мы ей даем настройки DNS – имя домена и адреса двух серверов DNS. И эти настройки запишутся в нужный конфигурационный файл сервера ESX. Таким образом, эту конструкцию мы применяем всегда, когда в обычный текстовый конфи гурационный файл нужно записать или добавить какие-то строки.

Обратите  внимание на то, что команды и их параметры  регистрозависимы.

Но так можно править не все конфигурационные файлы. Самый важный конфигурационный файл  ESX – /etc/vmware/esx.conf – напрямую  править нельзя, необходимо пользоваться специальными командами. Например, так:

Пример 2:

#!/bin/bash

; Создаем вКоммутатор  с  именем  vSwitch2 и 32 портами.

esxcfg-vswitch –a vSwitch2:32

; Добавляем  на него группу портов с  названием vMotion.

esxcfg-vswitch –A  vMotion vSwitch2

; В  качестве  аплинка для него используем NIC  vmnic2.

esxcfg-vswitch –L vmnic2 vSwitch2

; В  группе портов vMotion создаем интерфейс VMkernel  и указываем для него сетевые настройки.

esxcfg-vmknic  –a –i  10.1.72.156 –n 255.255.255.0 vMotion

; Настраиваем  файрвол Service   Console  для открытия портов службы  ntpClient.

esxcfg-firewall –e ntpClient

; Изменяем  настройки модуля авторизации.

esxcfg-auth –passmaxdays=90  –passmindays=30  –passwarnage=15  :

Далее выходим из текстового редактора (в случае nano – комбинацией Ctrl+X), сохраняем  файл. Делаем его исполняемым:

chmod  +x scriptname

Теперь запуск этого файла командой

./script_name

выполнит  все, указанное  нами в этом файле. Только что вы создали сценарий  автоматической  настройки ESX.

Таким образом, если в файл script_name вы прописали оба моих примера, то, выполнив  его, вы настроите  DNS на ESX и создадите виртуальный коммутатор,  группу портов vMotion и прочее из второго примера.

Теперь у вас есть два варианта  использования подобного сценария. Один вариант  описан  только  что – простое  выполнение на проинсталлированном ESXсервере. Такой вариант тесно перекликается с функционалом «Host profiles» – мы создаем  один раз нужные  настройки (вернее,  сценарий,  выполняющий нужные настройки) и простым его выполнением делаем нужные настройки на свежеустановленных серверах.

Вариант  2 – содержимое  этого файла  (заранее  отлаженное,  конечно) мы помещаем в секцию «%post» файла ответов, тогда настройки будут выполнены сразу при установке ESX.

Единственный нюанс – эти сценарии будут выполнены после установки, но до перезагрузки ESX. В этот момент гипервизор еще не работает – а команды esxcfg-* работают только при запущенном гипервизоре.  Таким образом, нам команды, подобные описанным  во втором  примере,  нужно  не выполнять в секции  «%post», а прописать их выполнение при загрузке ESX. Сделать это несложно:

cat  > /etc/rc.d/rc3.d/S99myconfig  << CFG esxcfg-vswitch –a  vSwitch2:32

esxcfg-vswitch –A  vMotion  vSwitch2 esxcfg-vswitch –L  vmnic2 vSwitch2

esxcfg-vmknic  –a –i  10.1.72.156 –n 255.255.255.0  vMotion esxcfg-route  10.1.137.253

esxcfg-firewall –e ntpClient

esxcfg-auth –passmaxdays=90  –passmindays=30  –passwarnage=15

CFG

Эти строки, прописанные в «%post», создадут сценарий с именем S99myconfig, который  выполняется при старте ESX. И команды esxcfg-* выполнятся уже при штатном старте ESX, когда гипервизор  будет загружен.

Теперь последнее: как же нам передать этот файл ответов установщику ESX? Очень просто – положив  его на накопитель  USB, на DVD или сделав доступным  по сети.

Для обращения  к файлу ответов на USB-накопителе вам необходимо:

1.    Отформатировать накопитель в файловую систему EXT2, EXT3 или FAT32.

2.    Скопировать на него файл ответов с именем ks.cfg.

3.    Выбрать «ESX scripted  install using USB ks.cfg».

Для обращения  к файлу ответов НЕ на USB-накопителе необходимо:

1.    Загрузить сервер  с дистрибутива ESX. Это  можно  сделать  с  локального DVD или по PXE.

2.    Курсором  (не  нажимая  Enter) выбрать  пункт  «Install   ESX  in  graphical mode» или «Install  ESX in text mode». Нажать F2.

3.    В нижней части экрана появится команда запуска установщика. К ней нужно дописать какую-то из следующих опций:

•    ks=cdrom:/ks.cfg – если  файл  ответов  расположен на CD/DVD,  подключенном к серверу;

•    ks=ftp://<path>/ks.cfg – если файл ответов расположен на ftp-сервере;

•    ks=http://<server>/<path>/ ks.cfg – если файл ответов расположен на сервере HTTP;

•    ks=nfs://<server>/<path>/ks.cfg – если  файл  ответов  расположен  на nfs-сервере;

•    ks=UUID:<disk-uuid>:/<path>/ks.cfg – если файл ответов расположен на разделе VMFS с известным  вам uuid.

Обратите внимание на то, что расположение дистрибутива ESX указано в файле ответов. Дистрибутив может располагаться на DVD или сетевом ресурсе.

Для того чтобы файл ответов был поистине  универсальным, нам следует решить проблему уникальности имен и IP-адресов, если они назначаются статически. Вариант решения  проблемы: в файле ответов мы указываем запуск сценария  настройки, в котором для указания имени и IP-адресов используется переменная.  А значение  переменной  (идентификатор конкретного ESX сервера)  мы передаем на этапе запуска установки. Выглядит последовательность действий так (на примере файла ответов с USB):

1.    Отформатировать накопитель в файловую систему EXT2, EXT3 или FAT32.

2.    Скопировать на него файл  ответов  с именем  ks.cfg и файл  со сценарием, который надо выполнить после перезагрузки ESX.

3.    Загрузить сервер с дистрибутива ESX. Выбрать (не нажимая  Enter) «ESX scripted  install using USB ks.cfg», нажать F2 и дописать в конец командной  строки что-то вроде «ESXID=<номер устанавливаемого ESX>».  Предполагается, что переменная ESXID используется в сценарии, и в зависимости от значения  переменной устанавливаемому ESX даются уникальное  имя и IP-адрес.

Пример  этой пары файлов  вы можете найти на http://www.vm4.ru/2010/10/ esx-esxi-kickstart.html.

Описанное здесь – лишь малая часть возможностей. Автоматизировать можно практически все. С другой стороны, даже описанного  здесь достаточно для автоматизации всех стандартных  настроек.

Источник: Михеев М. О.  Администрирование VMware vSphere 4.1. – М.: ДМК Пресс, 2011. – 448 с.: ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий