ESXi kickstart: различия между версиями
Sirmax (обсуждение | вклад) (→Links) |
Sirmax (обсуждение | вклад) |
||
(не показано 12 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория:ESXi]] |
||
=ESXi kickstart file= |
=ESXi kickstart file= |
||
Строка 4: | Строка 5: | ||
* Существует файл ответа по умолчанию, который установит ESX без лишних вопросов, с паролем root = mypassword. |
* Существует файл ответа по умолчанию, который установит ESX без лишних вопросов, с паролем root = mypassword. |
||
* Так же, можно подложить свой файл ответов, как и раньше по сети, или на USB флешке. |
* Так же, можно подложить свой файл ответов, как и раньше по сети, или на USB флешке. |
||
+ | * и наконец можно развернуть готовую систему с предустановленными и настроенными ВМ |
||
Строка 19: | Строка 21: | ||
<PRE>cp ks_custom.cfg /esxi_cdrom</PRE> |
<PRE>cp ks_custom.cfg /esxi_cdrom</PRE> |
||
− | *исправить |
+ | *исправить ISOLINUX.CFG file в соответвии с требованиеми: |
+ | |||
+ | В моем случае он выгляит вот так: |
||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | На что тут стоит обратить внимание: |
||
+ | * ks=cdrom:/KS1.CFG - указывает на файл кикстарта, собственно это ключевой момент. внимание - файл должен быть в верхнем регистре, с этим есть проблема. Я не особо искал решение но факт - фай в нижнем регистре не находиться при загрузке хотя на диске существует. С этим же столкнулся при установке виртуальных машин. |
||
+ | * Отладка конфига кикстарта муторное дело - быть предельно внимательным. |
||
* Пересоздать образ. |
* Пересоздать образ. |
||
+ | Так советует дока: |
||
− | <PRE>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</PRE> |
||
+ | <PRE>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</PRE> |
||
+ | Так делал я т.к. у меня был образ больше размера ДВД (тестовая установка на виртуальную машину, да да именно nested VM) |
||
+ | <PRE>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/ </PRE> |
||
+ | |||
+ | |||
+ | После чего загружаемся с полученного диска, и система должна установиться сама, без вмешательства <s>человека</s> обезьяны |
||
+ | |||
+ | ==пример установочного конфига== |
||
+ | Ниже я постараюсь прокомментировать конфиг, как можно подробнее: |
||
+ | |||
+ | ===install=== |
||
+ | * куда ставить |
||
+ | <PRE> |
||
+ | install --firstdisk --overwritevmfs |
||
+ | </PRE> |
||
+ | * настройка сети (для хост системы). В примерах часто приводят настройку из секции пост-инсталл - смыла если честно не вижу. |
||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | * Задать пароль |
||
+ | <PRE> |
||
+ | rootpw ТутПароль |
||
+ | </PRE> |
||
+ | |||
+ | * Перезагрузить после установки (опционально - не вынимая диск) |
||
+ | <PRE> |
||
+ | reboot |
||
+ | #--noeject |
||
+ | </PRE> |
||
+ | |||
+ | * Обязательный параметр - принять лицензию. |
||
+ | <PRE> |
||
+ | vmaccepteula |
||
+ | </PRE> |
||
+ | |||
+ | * Необязательная секция - пакеты |
||
+ | <PRE> |
||
+ | #%packages |
||
+ | #@ ESX Server |
||
+ | #kernel-smp |
||
+ | # |
||
+ | </PRE> |
||
+ | |||
+ | ===post-install=== |
||
+ | Пост-инсталл - секция удобна для работы с диском. |
||
+ | Диск еще примонтирован, потому можно скопировать файлы ВМ. |
||
+ | На всякий случай - пробую монтировать еще раз, но вероятнее всего это не обязательно. |
||
+ | |||
+ | <PRE> |
||
+ | %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 |
||
+ | </PRE> |
||
+ | |||
+ | * Копирую файлы виртуальных машин. |
||
+ | На диске все файлы <s>внезапно</s> в формате 8.3 и в верхнем регистре, это надо учитывать. Потому, собственно все машины я предпочел тащить в архиве. |
||
+ | <PRE> |
||
+ | # 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 |
||
+ | </PRE> |
||
+ | |||
+ | |||
+ | ===firstboot=== |
||
+ | Установка машин - при первой загрузке. |
||
+ | В пост-инсталл секции этого делать нельзя. Тут же (ниже) - включаю ssh |
||
+ | <PRE> |
||
+ | %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 |
||
+ | </PRE> |
||
+ | |||
+ | Зарегистрировать машину: |
||
+ | <PRE> |
||
+ | /bin/vim-cmd solo/registervm /vmfs/volumes/datastore1/Vyatta_1/Vyatta_1.vmx 2>&1 >> /vmfs/volumes/datastore1/log.sirmax10 |
||
+ | </PRE> |
||
+ | |||
+ | Попробовать включить: |
||
+ | <PRE> |
||
+ | /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 |
||
+ | </PRE> |
||
+ | |||
+ | Для машины настраиваю автостарт: |
||
+ | <PRE> |
||
+ | 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 |
||
+ | </PRE> |
||
+ | === весь конфиг одним куском=== |
||
− | ==Links== |
||
+ | Кой-что для дебага, комменты и пустые строки вырезаны: |
||
− | * http://www.virtuallyghetto.com/2010/09/automating-esxi-41-kickstart-tips.html |
||
+ | <PRE> |
||
− | * http://pubs.vmware.com/vsphere-50/index.jsp?topic=/com.vmware.vsphere.install.doc_50/GUID-C03EADEA-A192-4AB4-9B71-9256A9CB1F9C.html |
||
+ | cat KS1.cfg | grep -v "#" | grep -v ^$ |
||
− | * http://communities.vmware.com/thread/276792 |
||
+ | install --firstdisk --overwritevmfs |
||
− | * http://www.virtuallyghetto.com/2011_02_01_archive.html |
||
+ | 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 |
||
− | * http://www.virtuallyghetto.com/2011/02/automating-active-directory-domain-join.html |
||
+ | rootpw ТутПароль |
||
− | * http://www.virtuallyghetto.com/2010/09/automating-esxi-41-kickstart-tips.html |
||
+ | reboot |
||
− | * http://vmprofessional.com/index.php?content=kickstart_2 |
||
+ | vmaccepteula |
||
− | * http://vmprofessional.com/material/ks.cfg |
||
+ | %post --interpreter=busybox |
||
− | * http://vmprofessional.com/index.php?content=kickstart_1 |
||
+ | sleep 10 |
||
− | * http://blogs.balius.com/2010/12/24/esxi-creating-new-virtual-machines-servers-from-the-command-line/ |
||
+ | echo Step 1 >> /vmfs/volumes/datastore1/log.sirmax1 |
||
− | * http://lib.ru/unixhelp/vmware.txt |
||
+ | 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 |
||
+ | 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 --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 |
||
+ | 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 |
||
+ | /bin/vim-cmd hostsvc/autostartmanager/enable_autostart true |
||
+ | /bin/vim-cmd hostsvc/autostartmanager/update_autostartentry 1 PowerOn 90 1 stop 90 yes |
||
+ | </PRE> |
Текущая версия на 15:48, 28 сентября 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
После попытки включения возникает вопрос от системы - "это скопированная машина? а что с ней делать то?" Потому, включение пускаю в фон, жду 10 сек. Без ответа на вопрос (на который можно ответить интерактивно в ГУИ - но это не путь джежая) - машина запуститься.
Комманда ниже отвечает на вопрос:
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
весь конфиг одним куском
Кой-что для дебага, комменты и пустые строки вырезаны:
cat KS1.cfg | grep -v "#" | grep -v ^$ 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 vmaccepteula %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 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 --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 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 /bin/vim-cmd hostsvc/autostartmanager/enable_autostart true /bin/vim-cmd hostsvc/autostartmanager/update_autostartentry 1 PowerOn 90 1 stop 90 yes