ESXi kickstart: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 88: Строка 88:
   
 
===post-install===
 
===post-install===
  +
Пост-инсталл - секция удобна для работы с диском.
  +
Диск еще примонтирован, потому можно скопировать файлы ВМ.
  +
На всякий случай - пробую монтировать еще раз, но вероятнее всего это не обязательно.
  +
 
<PRE>
 
<PRE>
 
%post --interpreter=busybox
 
%post --interpreter=busybox
Строка 103: Строка 107:
 
</PRE>
 
</PRE>
   
  +
* Копирую файлы виртуальных машин.
  +
На диске все файлы <s>внезапно</s> в формате 8.3 и в верхнем регистре, это надо учитывать. Потому, собственно все машины я предпочел тащить в архиве.
 
<PRE>
 
<PRE>
 
# Copy VM files
 
# Copy VM files
Строка 112: Строка 118:
   
   
  +
===firstboot===
 
  +
Установка машин - при первой загрузке.
  +
В пост-инсталл секции этого делать нельзя. Тут же (ниже) - включаю ssh
 
<PRE>
 
<PRE>
 
%firstboot --interpreter=busybox
 
%firstboot --interpreter=busybox
Строка 121: Строка 129:
 
</PRE>
 
</PRE>
 
#
 
#
  +
Зарегистрировать машину:
 
</PRE>
 
</PRE>
 
/bin/vim-cmd solo/registervm /vmfs/volumes/datastore1/Vyatta_1/Vyatta_1.vmx 2>&1 >> /vmfs/volumes/datastore1/log.sirmax10
 
/bin/vim-cmd solo/registervm /vmfs/volumes/datastore1/Vyatta_1/Vyatta_1.vmx 2>&1 >> /vmfs/volumes/datastore1/log.sirmax10
 
</PRE>
 
</PRE>
   
  +
Попробовать включить:
 
<PRE>
 
<PRE>
 
/bin/vim-cmd vmsvc/power.on 1 & 2>&1 >> /vmfs/volumes/datastore1/log.sirmax11
 
/bin/vim-cmd vmsvc/power.on 1 & 2>&1 >> /vmfs/volumes/datastore1/log.sirmax11
 
<PRE>
 
<PRE>
  +
После попытки включения возникает вопрос от системы - "это скопированная машина? а что с ней делать то?" Потому, включение пускаю в фон, жду 10 сек. Без ответа на вопрос (на который можно ответить интерактивно в ГУИ - но это не путь джежая) - машина запуститься.
  +
<BR>
   
  +
Комманда ниже отвечает на вопрос:
 
<PRE>
 
sleep 10 2>&1 >> /vmfs/volumes/datastore1/log.sirmax12
 
sleep 10 2>&1 >> /vmfs/volumes/datastore1/log.sirmax12
 
<PRE>
 
 
/bin/vim-cmd vmsvc/message 1 _vmx2 2 2>&1 >> /vmfs/volumes/datastore1/log.sirmax13
 
/bin/vim-cmd vmsvc/message 1 _vmx2 2 2>&1 >> /vmfs/volumes/datastore1/log.sirmax13
 
</PRE>
 
</PRE>
   
  +
Для машины настраиваю автостарт:
 
<PRE>
 
<PRE>
 
sleep 30
 
sleep 30

Версия 17:34, 21 марта 2012

ESXi kickstart file

  • ESX можно установить с файлом ответов.
  • Существует файл ответа по умолчанию, который установит ESX без лишних вопросов, с паролем root = mypassword.
  • Так же, можно подложить свой файл ответов, как и раньше по сети, или на USB флешке.
  • и наконец можно развернуть готовую систему с предустановленными и настроенными ВМ


Создание своего образа

  • Скачать ESXi ISO
  • Подмонтировать образ:
mount -o loop VMware-VMvisor-Installer-5.x.x-XXXXXX.x86_64.iso /esxi_cdrom_mount
  • Cкопировать содержимое
cp -r /esxi_cdrom_mount /esxi_cdrom
cp ks_custom.cfg /esxi_cdrom
  • исправить ISOLINUX.CFG file в соответвии с требованиеми:

В моем случае он выгляит вот так:

DEFAULT menu.c32
MENU TITLE Dell Customized ESXi-5.0.0 Standard(A01) Installer Boot Menu
NOHALT 1
PROMPT 0
TIMEOUT 80
LABEL install3
  KERNEL mboot.c32
  APPEND -c boot.cfg ks=cdrom:/KS1.CFG
  MENU LABEL Dell Customized ESXi-5.0.0 Standard(A01) ^3 Installer

LABEL hddboot
  LOCALBOOT 0x80
  MENU LABEL ^Boot from local disk

На что тут стоит обратить внимание:

* ks=cdrom:/KS1.CFG -  указывает на файл кикстарта, собственно это ключевой момент. внимание - файл должен быть в верхнем регистре, с этим есть проблема. Я не особо искал решение но факт - фай в нижнем регистре не находиться при загрузке хотя на диске существует. С этим же столкнулся при установке виртуальных машин.
* Отладка конфига кикстарта муторное дело - быть предельно внимательным.
  • Пересоздать образ.

Так советует дока:

mkisofs                     -relaxed-filenames -J -R -o custom_esxi.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table /esxi_cdrom

Так делал я т.к. у меня был образ больше размера ДВД (тестовая установка на виртуальную машину, да да именно nested VM)

mkisofs -allow-limited-size -relaxed-filenames -J -R -o ./custom_esxi.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ./ISO_NEW/ISO_TEST/ 


После чего загружаемся с полученного диска, и система должна установиться сама, без вмешательства человека обезьяны

пример установочного конфига

Ниже я постараюсь прокомментировать конфиг, как можно подробнее:

install

  • куда ставить
install --firstdisk --overwritevmfs
  • настройка сети (для хост системы). В примерах часто приводят настройку из секции пост-инсталл - смыла если честно не вижу.
network --device=vmnic0 --addvmportgroup=false --bootproto=static --ip=172.16.252.253 --netmask=255.255.255.0 --gateway=172.16.252.254 --nameserver=172.16.1.2 --hostname=esx01.com
  • Задать пароль
rootpw ТутПароль
  • Перезагрузить после установки (опционально - не вынимая диск)
reboot 
#--noeject
  • Обязательный параметр - принять лицензию.
vmaccepteula
  • Необязательная секция - пакеты
#%packages
#@ ESX Server
#kernel-smp
#

post-install

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

%post --interpreter=busybox

sleep 10

echo Step 1 >> /vmfs/volumes/datastore1/log.sirmax1
ls -lsa /vmfs/volumes/ >> /vmfs/volumes/datastore1/log.sirmax2

/sbin/vmkload_mod iso9660 2>&1 >> /vmfs/volumes/datastore1/log.sirmax2
/sbin/esxcfg-mpath -b | grep "CD-ROM" 2>&1 >> /vmfs/volumes/datastore1/log.sirmax3
ls -lsa /vmfs/volumes/datastore1 >> /vmfs/volumes/datastore1/log.sirmax4
/sbin/vsish -e set /vmkModules/iso9660/mount $(/sbin/esxcfg-mpath -b | grep "CD-ROM" | awk '{print $1}') 2>&1  >> /vmfs/volumes/datastore1/log.sirmax5
ls -lsa /vmfs/volumes/  2>&1  >> /vmfs/volumes/datastore1/log.sirmax5
  • Копирую файлы виртуальных машин.

На диске все файлы внезапно в формате 8.3 и в верхнем регистре, это надо учитывать. Потому, собственно все машины я предпочел тащить в архиве.

# Copy VM files
mkdir /vmfs/volumes/datastore1/Vyatta_1 2>&1  >> /vmfs/volumes/datastore1/log.sirmax6
cd /vmfs/volumes/datastore1/Vyatta_1 2>&1  >> /vmfs/volumes/datastore1/log.sirmax7
cp /vmfs/volumes/CDROM/VM/V1/VYATTA_1.TAR . 2>&1  >> /vmfs/volumes/datastore1/log.sirmax8
tar -xvf VYATTA_1.TAR ; rm VYATTA_1.TAR; ls -1 | xargs gunzip 2>&1  >> /vmfs/volumes/datastore1/log.sirmax9


firstboot

Установка машин - при первой загрузке. В пост-инсталл секции этого делать нельзя. Тут же (ниже) - включаю ssh

%firstboot --interpreter=busybox
vim-cmd hostsvc/enable_ssh
vim-cmd hostsvc/start_ssh
vim-cmd hostsvc/enable_esx_shell
vim-cmd hostsvc/start_esx_shell

Зарегистрировать машину:

/bin/vim-cmd solo/registervm /vmfs/volumes/datastore1/Vyatta_1/Vyatta_1.vmx 2>&1 >> /vmfs/volumes/datastore1/log.sirmax10

Попробовать включить:

/bin/vim-cmd vmsvc/power.on 1 & 2>&1  >> /vmfs/volumes/datastore1/log.sirmax11
<PRE>
После попытки включения возникает вопрос от системы - "это скопированная  машина? а что с ней делать то?" Потому, включение пускаю в фон, жду 10 сек. Без ответа на вопрос (на который можно ответить интерактивно в ГУИ - но это не путь джежая) - машина запуститься.
<BR>

Комманда ниже отвечает на вопрос:
<PRE>
sleep 10 2>&1  >> /vmfs/volumes/datastore1/log.sirmax12
/bin/vim-cmd vmsvc/message 1 _vmx2 2 2>&1  >> /vmfs/volumes/datastore1/log.sirmax13

Для машины настраиваю автостарт:

sleep 30
# Enable autostart
/bin/vim-cmd hostsvc/autostartmanager/enable_autostart true
/bin/vim-cmd hostsvc/autostartmanager/update_autostartentry 1 PowerOn  90 1 stop 90 yes