Hana ʻoe iā Bare-Metal Provisioning, a i ʻole ka hoʻomākaukau ʻana i nā kikowaena mai ka wā ʻōpala

Aloha ʻoe, ʻo wau ʻo Denis a ʻo kekahi o kaʻu wahi o ka hana ʻo ka hoʻomohala ʻana i nā hoʻonā ʻenehana ma X5. I kēia lā makemake wau e kaʻana like iā ʻoe pehea e hiki ai iā ʻoe ke hoʻolālā i kahi ʻōnaehana hoʻomākaukau kikowaena ma muli o nā mea hana i loaʻa i ka lehulehu. I koʻu manaʻo, he hopena hoihoi, maʻalahi a maʻalahi kēia.

Hana ʻoe iā Bare-Metal Provisioning, a i ʻole ka hoʻomākaukau ʻana i nā kikowaena mai ka wā ʻōpala

ʻO ka hoʻomākaukau ʻana mākou: e hoʻohuli i kahi kikowaena hou mai ka pahu i kahi kikowaena paʻa piha me OS. Linux a i ʻole me ka ESXi hypervisor (ʻaʻole i kūkākūkā ʻia ka hoʻonohonoho ʻana o nā kikowaena Windows ma kēia ʻatikala).

Nā Kūlana:

  • nā kikowaena - nā kikowaena pono e hoʻonohonoho.
  • ʻO ke kikowaena hoʻonohonoho ke kikowaena nui e hoʻolako i ke kaʻina hana hoʻomākaukau holoʻokoʻa ma luna o ka pūnaewele.

No ke aha e pono ai ka automation?

E ʻōlelo mākou aia kahi hana: e hoʻomākaukau nui i nā kikowaena mai ka wā ʻōpala, ma kahi kiʻekiʻe - 30 i kēlā me kēia lā. Hiki ke kau ʻia nā kikowaena o nā mea hana like ʻole a me nā hiʻohiʻona, nā ʻōnaehana hana like ʻole ma luna o lākou, a loaʻa paha kahi hypervisor.

He aha nā hana i hoʻokomo ʻia i ke kaʻina hoʻonohonoho (me ka ʻole o ka automation):

  • hoʻohui i kahi kī, ʻiole, nānā i ke kikowaena;
  • hoʻonohonoho i ka BIOS, RAID, IPMI;
  • hōʻano hou i ka firmware ʻāpana;
  • hoʻolālā i kahi kiʻi ʻōnaehana faila (a i ʻole e hoʻokomo i kahi hypervisor a kope i nā mīkini virtual);

Nānā. ʻO kahi ʻē aʻe, hiki ke hoʻonohonoho ʻia ʻo OS ma o ka hoʻokomo ʻana me kahi faila pane auto. Akā ʻaʻole e kūkākūkā ʻia kēia ma ka ʻatikala. ʻOiai e ʻike ʻoe ma lalo nei ʻaʻole paʻakikī ka hoʻohui ʻana i kēia hana.

  • hoʻonohonoho i nā ʻāpana OS (hostname, IP, etc.).

Me kēia ala, hana ʻia nā hoʻonohonoho like ma kēlā me kēia kikowaena. He haʻahaʻa loa ka maikaʻi o ia hana.

ʻO ke kumu o ka automation ka hoʻopau ʻana i ke komo ʻana o ke kanaka mai ke kaʻina hoʻomākaukau kikowaena. Ma ka nui i hiki.

Hoʻemi ʻo Automation i ka manawa haʻahaʻa ma waena o nā hana a hiki ke hoʻolako i nā kikowaena lehulehu i ka manawa like. Hoʻemi nui ʻia ka nui o nā hewa ma muli o nā kumu kanaka.

Hana ʻoe iā Bare-Metal Provisioning, a i ʻole ka hoʻomākaukau ʻana i nā kikowaena mai ka wā ʻōpala

Pehea e ho'onohonoho 'akomi 'ia ai nā kikowaena?

E nānā pono kākou i nā pae a pau.

Loaʻa iā ʻoe kahi kikowaena Linux āu e hoʻohana ai ma ke ʻano he kikowaena hoʻonohonoho PXE. Hoʻokomo ʻia nā lawelawe a hoʻonohonoho ʻia ma luna: DHCP, TFTP.

No laila, kā mākou i ka kikowaena (pono e hoʻonohonoho ʻia) ma o PXE. E hoomanao kakou i ka hana ana:

  • Koho ʻia ka boot network ma ke kikowaena.
  • Hoʻouka ke kikowaena i ka PXE-ROM o ke kāleka pūnaewele a hoʻopili i ke kikowaena hoʻonohonoho ma o DHCP e kiʻi i kahi helu pūnaewele.
  • Hoʻopuka ke kikowaena DHCP i kahi helu wahi, a me nā ʻōlelo kuhikuhi no ka hoʻoiho hou ʻana ma o PXE.
  • Hoʻouka ke kikowaena i ka bootloader pūnaewele mai ka kikowaena hoʻonohonoho ma o PXE, e hoʻouka hou ʻia e like me ka faila hoʻonohonoho PXE.
  • Hana ʻia ka boot ma muli o nā ʻāpana i loaʻa (kernel, initramfs, mount point, squashfs image, etc.).

Nānā. Hōʻike ka ʻatikala i ka booting ma PXE ma o ke ʻano BIOS. I kēia manawa, ke hoʻokō nei nā mea hana i ka bootmode UEFI. No ka PXE, aia ka ʻokoʻa i ka hoʻonohonoho ʻana o ka server DHCP a me ke alo o kahi bootloader hou.

E nānā kākou i kahi laʻana o kahi hoʻonohonoho kikowaena PXE (panu pxelinux).

Kōnae pxelinux.cfg/default:

default menu.c32
prompt 0
timeout 100
menu title X5 PXE Boot Menu
LABEL InstallServer Menu
	MENU LABEL InstallServer
	KERNEL menu.c32
	APPEND pxelinux.cfg/installserver
LABEL VMware Menu
	MENU LABEL VMware ESXi Install
	KERNEL menu.c32
	APPEND pxelinux.cfg/vmware
LABEL toolkit // меню по умолчанию
	MENU LABEL Linux Scripting Toolkits
	MENU default
	KERNEL menu.c32
	APPEND pxelinux.cfg/toolkit // переход на следующее меню

Kōnae pxelinux.cfg/toolkit:

prompt 0
timeout 100
menu title X5 PXE Boot Menu
label mainmenu
    menu label ^Return to Main Menu
    kernel menu.c32
    append pxelinux.cfg/default
label x5toolkit-auto // по умолчанию — автоматический режим
        menu label x5 toolkit autoinstall
        menu default
        kernel toolkit/tkcustom-kernel
        append initrd=toolkit/tk-initramfs.gz quiet net.ifnames=0 biosdevname=0 nfs_toolkit_ip=192.168.200.1 nfs_toolkit_path=tftpboot/toolkit nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh CMDIS2=”…”
label x5toolkit-shell // для отладки - консоль
        menu label x5 toolkit shell
        kernel toolkit/tkcustom-kernel
        append initrd=toolkit/tkcustom-initramfs.gz quiet net.ifnames=0 biosdevname=0 nfs_toolkit_ip=192.168.200.1 nfs_toolkit_path=tftpboot/toolkit nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash CMDIS2=”…”

ʻO ka kernel a me ka initramfs i kēia manawa he kiʻi Linux waena, me ke kōkua o ka hoʻomākaukau nui a me ka hoʻonohonoho ʻana o ka server.

E like me kāu e ʻike ai, hāʻawi ka bootloader i nā ʻāpana he nui i ka kernel. Hoʻohana ʻia kekahi o kēia mau ʻāpana e ka kernel ponoʻī. A hiki iā mākou ke hoʻohana i kekahi no kā mākou hana ponoʻī. E kūkākūkā ʻia kēia ma hope, akā i kēia manawa hiki iā ʻoe ke hoʻomanaʻo e loaʻa nā ʻāpana āpau āpau i ke kiʻi Linux waena ma o /proc/cmdline.

Ma hea e loaʻa ai iaʻu, kernel a me initramfs?
Ma ke kumu, hiki iā ʻoe ke koho i kekahi mahele Linux. He aha kā mākou e nānā ai i ke koho ʻana:

  • pono ke kiʻi kiʻi kiʻi ma ke ao holoʻokoʻa (loaʻa o nā mea hoʻokele, hiki ke hoʻokomo i nā pono hana hou);
  • ʻO ka mea maʻamau, pono ʻoe e hana i nā initramfs.

Pehea e hana ʻia ai kēia i kā mākou hoʻonā no X5? Ua koho ʻia ʻo CentOS 7 i kumu. E hoʻāʻo kāua i kēia hana: hoʻomākaukau i ka hoʻolālā kiʻi e hiki mai ana, hoʻokomo iā ia i loko o kahi waihona a hana i initramfs, i loko e loaʻa ai kā mākou waihona pūnaewele waihona. I ka hoʻouka ʻana i ke kiʻi, e hoʻonui ʻia ka waihona i ka ʻāpana tmpfs i hana ʻia. Ma kēia ala e loaʻa ai iā mākou kahi kiʻi liʻiliʻi, akā piha piha i ka linux ola me nā pono pono āpau, ʻelua wale nō faila: vmkernel a me initramfs.

#создаем директории: 

mkdir -p /tftpboot/toolkit/CustomTK/rootfs /tftpboot/toolkit/CustomTK/initramfs/bin

#подготавливаем структуру:

yum groups -y install "Minimal Install" --installroot=/tftpboot/toolkit/CustomTK/rootfs/
yum -y install nfs-utils mariadb ntpdate mtools syslinux mdadm tbb libgomp efibootmgr dosfstools net-tools pciutils openssl make ipmitool OpenIPMI-modalias rng-tools --installroot=/tftpboot/toolkit/CustomTK/rootfs/
yum -y remove biosdevname --installroot=/tftpboot/toolkit/CustomTK/rootfs/

# подготавливаем initramfs:

wget https://busybox.net/downloads/binaries/1.31.0-defconfig-multiarch-musl/busybox-x86_64 -O /tftpboot/toolkit/CustomTK/initramfs/bin/busybox
chmod a+x /tftpboot/toolkit/CustomTK/initramfs/bin/busybox
cp /tftpboot/toolkit/CustomTK/rootfs/boot/vmlinuz-3.10.0-957.el7.x86_64 /tftpboot/toolkit/tkcustom-kernel

# создаем /tftpboot/toolkit/CustomTK/initramfs/init (ниже содержание скрипта):

#!/bin/busybox sh
/bin/busybox --install /bin
mkdir -p /dev /proc /sys /var/run /newroot
mount -t proc proc /proc
mount -o mode=0755 -t devtmpfs devtmpfs /dev
mkdir -p /dev/pts /dev/shm /dev/mapper /dev/vc
mount -t devpts -o gid=5,mode=620 devpts /dev/pts
mount -t sysfs sysfs /sys
mount -t tmpfs -o size=4000m tmpfs /newroot
echo -n "Extracting rootfs... "
xz -d -c -f rootfs.tar.xz | tar -x -f - -C /newroot
echo "done"
mkdir -p /newroot/dev /newroot/proc /newroot/sys
mount --move /sys  /newroot/sys
mount --move /proc /newroot/proc
mount --move /dev  /newroot/dev
exec switch_root /newroot /sbin/init

# упаковываем rootfs и initramfs:

cd /tftpboot/toolkit/CustomTK/rootfs
tar cJf /tftpboot/toolkit/CustomTK/initramfs/rootfs.tar.xz --exclude ./proc --exclude ./sys --exclude ./dev .
cd /tftpboot/toolkit/CustomTK/initramfs
find . -print0 | cpio --null -ov --format=newc | gzip -9 > /tftpboot/toolkit/tkcustom-initramfs-new.gz

No laila ua kuhikuhi mākou i ka kernel a me initramfs e hoʻouka ʻia. ʻO ka hopena, i kēia manawa, ma ka hoʻouka ʻana i ke kiʻi linux waena ma o PXE, e loaʻa iā mākou ka console OS.

Nui, akā i kēia manawa pono mākou e hoʻololi i ka mana i kā mākou "automation".

Hiki ke hana pela.

E manaʻo mākou ma hope o ka hoʻouka ʻana i ke kiʻi e hoʻolālā mākou e hoʻololi i ka mana i ka palapala mount.sh.
E hoʻokomo i ka palapala mount.sh i autorun. No ka hana ʻana i kēia, pono ʻoe e hoʻololi i nā initramfs:

  • wehe i nā initramfs (inā mākou e hoʻohana i ka koho initramfs ma luna, ʻaʻole pono kēia)
  • e hoʻokomo i ke code i ka hoʻomaka ʻana e nānā i nā ʻāpana i hele ma / proc/cmdline a me ka hoʻololi hou ʻana i ka mana;
  • pack initramfs.

Nānā. I ka hihia o ka pahu hana X5, hoʻoili ʻia ka mana hoʻouka i ka palapala /opt/x5/toolkit/bin/hook.sh с помощью override.conf в getty tty1 (ExecStart=…)

No laila, hoʻouka ʻia ke kiʻi, kahi e hoʻomaka ai ka palapala mount.sh ma autorun. Ma hope aʻe, ʻike ka mount.sh script i nā ʻāpana i hala (script_cmd=) i ka wā o ka hoʻokō ʻana a hoʻokuʻu i ka papahana / script pono.

lepili mea hana-ola auto
ʻala...
hoʻopili...nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh

lepili mea hana-iwi
ʻala...
hoʻopili...nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash

Hana ʻoe iā Bare-Metal Provisioning, a i ʻole ka hoʻomākaukau ʻana i nā kikowaena mai ka wā ʻōpala

Aia ma ka hema ka papa kuhikuhi PXE, ma ka ʻākau ke kiʻi hoʻoili mana.

Ua noʻonoʻo mākou i ka hoʻololi o ka mana. Ma muli o ke koho ʻana o ka papa kuhikuhi PXE, ua hoʻomaka ʻia ka hōʻailona hoʻonohonoho ʻokoʻa a i ʻole ka console debugging.

I ka hihia o ka hoʻonohonoho maʻalahi, ua kau ʻia nā papa kuhikuhi pono mai ka kikowaena hoʻonohonoho, aia nā:

  • palapala;
  • i mālama ʻia nā laʻana BIOS/UEFI no nā kikowaena like ʻole;
  • firmware;
  • nā lako kikowaena;
  • lāʻau lāʻau

A laila, hoʻololi ka mount.sh script i ka mana i ka master-install.sh script mai ka papa kuhikuhi palapala.

ʻO ka lāʻau script (ke kauoha i hoʻomaka ʻia ai) ke ʻano like me kēia:

  • haku-hoʻokomo
  • kaʻana like (hana like)
  • ʻike (hoʻopuka ʻike)
  • nā hiʻohiʻona (hoʻonohonoho ʻana i nā ʻāpana hoʻonohonoho e pili ana i ke kumu kikowaena)
  • prepare_utils (hoʻokomo i nā pono pono)
  • fwupdate (hōʻano hou firmware)
  • diag (nā diagnostics kumu)
  • biosconf (nā hoʻonohonoho BIOS/UEFI)
  • clockfix (hoʻonohonoho i ka manawa ma ka motherboard)
  • srmconf (ka hoʻonohonoho hoʻonohonoho hoʻonohonoho mamao mamao)
  • raidconf (ka hoʻonohonoho ʻana i nā puke loiloi)

kekahi o:

  • preinstall (hoʻololi i ka mana i ka OS a i ʻole ka mea hoʻonoho hypervisor, e like me ESXi)
  • merged-install (hoʻomaka koke o ka wehe ʻana i ke kiʻi)

I kēia manawa ua ʻike mākou:

  • pehea e hoʻomaka ai i kahi kikowaena ma o PXE;
  • pehea e hoʻololi ai i ka mana i kāu palapala ponoʻī.


E hoʻomau kāua. Ua pili kēia mau nīnau:

  • Pehea e ʻike ai i ke kikowaena a mākou e hoʻomākaukau nei?
  • He aha nā pono hana a pehea e hoʻonohonoho ai i ke kikowaena?
  • Pehea e loaʻa ai nā hoʻonohonoho no kahi kikowaena kikoʻī?

Pehea e ʻike ai i ke kikowaena a mākou e hoʻomākaukau nei?

He mea maʻalahi - DMI:

dmidecode –s system-product-name
dmidecode –s system-manufacturer
dmidecode –s system-serial-number

Aia nā mea a pau āu e makemake ai: ka mea kūʻai aku, ke kumu hoʻohālike, ka helu serial. Inā ʻaʻole maopopo ʻoe aia kēia ʻike i nā kikowaena āpau, hiki iā ʻoe ke ʻike iā lākou ma kā lākou helu MAC. A i ʻole ma nā ala ʻelua i ka manawa like, inā ʻokoʻa nā mea kūʻai kikowaena a ma kekahi mau hiʻohiʻona ʻaʻohe ʻike e pili ana i ka helu serial.

Ma muli o ka ʻike i loaʻa, ua kau ʻia nā waihona pūnaewele mai ka kikowaena hoʻonohonoho a hoʻouka ʻia nā mea āpau e pono ai (nā pono, firmware, etc.).

He aha nā pono hana a pehea e hoʻonohonoho ai i ke kikowaena?

E hāʻawi wau i nā pono no Linux no kekahi mau mea hana. Loaʻa nā pono āpau ma nā pūnaewele kūhelu o nā mea kūʻai aku.

Hana ʻoe iā Bare-Metal Provisioning, a i ʻole ka hoʻomākaukau ʻana i nā kikowaena mai ka wā ʻōpala

Me ka firmware, manaʻo wau ua maopopo nā mea a pau. Hele mai lākou ma ke ʻano o nā faila hiki ke hoʻokō ʻia. Mālama ka faila hoʻokō i ke kaʻina hana hou firmware a hōʻike i ke code hoʻihoʻi.

Hoʻonohonoho pinepine ʻia ʻo BIOS a me IPMI ma o nā templates. Inā pono, hiki ke hoʻoponopono ʻia ke ʻano ma mua o ka hoʻoiho ʻana.

Hiki ke hoʻonohonoho ʻia nā pono RAID mai kekahi mau mea kūʻai aku me ka hoʻohana ʻana i kahi template. Inā ʻaʻole kēia ka hihia, a laila pono ʻoe e kākau i kahi palapala hoʻonohonoho.

ʻO ke kaʻina hana no ka hoʻonohonoho ʻana i ka RAID e like me kēia:

  • Noi mākou i ka hoʻonohonoho o kēia manawa.
  • Inā loaʻa nā papa kuhikuhi, holoi mākou iā lākou.
  • E nānā kākou i nā diski kino a me ka nui.
  • E hana i kahi hoʻonohonoho loiloi hou. Hoʻopau mākou i ke kaʻina hana inā he hewa.

Pehea e loaʻa ai nā hoʻonohonoho no kahi kikowaena kikoʻī?

E manaʻo mākou e mālama ʻia nā hoʻonohonoho o nā kikowaena āpau ma ka kikowaena hoʻonohonoho. I kēia hihia, e pane i kā mākou nīnau, pono mākou e hoʻoholo mua pehea e hoʻololi ai i nā hoʻonohonoho i ke kikowaena hoʻonohonoho.

I ka wā mua, hiki iā ʻoe ke loaʻa me nā faila kikokikona. (I ka wā e hiki mai ana, makemake paha ʻoe e hoʻohana i kahi faila ma ke ʻano he ala hāʻule no ka hoʻololi ʻana i nā hoʻonohonoho.)

Hiki iā ʻoe ke "kaʻana like" i kahi faila ma ka kikowaena hoʻonohonoho. A hoʻohui i kona mauna i ka palapala mount.sh.

ʻO nā laina e like me kēia:

<serial number> <hostname> <subnet>

E hoʻoili ʻia kēia mau laina i ka faila e ka ʻenekinia mai kāna mīkini hana. A laila, i ka hoʻonohonoho ʻana i kahi kikowaena, e heluhelu ʻia nā ʻāpana no kahi kikowaena kikoʻī mai ka faila.

Akā, i ka wā lōʻihi, ʻoi aku ka maikaʻi o ka hoʻohana ʻana i kahi waihona no ka mālama ʻana i nā hoʻonohonoho, nā mokuʻāina a me nā loina o nā hoʻonohonoho kikowaena.

ʻOiaʻiʻo, ʻaʻole lawa ka waihona wale nō, a pono ʻoe e hana i kahi ʻāpana o ka mea kūʻai aku me ke kōkua o nā hoʻonohonoho e hoʻololi ʻia i ka waihona. ʻOi aku ka paʻakikī o ka hoʻokō ʻana i ka hoʻohālikelike ʻana i kahi faila kikokikona, akā ʻoiaʻiʻo, ʻaʻole paʻakikī nā mea āpau e like me ka mea i ʻike ʻia. Hiki paha ke kākau i kahi mana liʻiliʻi o kahi mea kūʻai aku e hoʻololi wale i ka ʻikepili i ka waihona ʻikepili iā ʻoe iho. A i ka wā e hiki mai ana e hiki ke hoʻomaikaʻi i ka papahana mea kūʻai aku ma ke ʻano manuahi (nā hōʻike, paʻi ʻana i nā lepili, hoʻouna ʻana i nā leka, etc.

Ma ka hana ʻana i kahi noi kikoʻī i ka waihona a me ka wehewehe ʻana i ka helu serial server, e loaʻa iā mākou nā ʻāpana kūpono no ka hoʻonohonoho ʻana i ke kikowaena.

Eia kekahi, ʻaʻole pono mākou e hoʻopuka i nā laka no ke komo ʻana i ka manawa like, e like me ka hihia me kahi faila kikokikona.

Hiki iā mākou ke kākau i ka log hoʻonohonoho i ka waihona ma nā pae āpau a mālama i ke kaʻina hoʻonohonoho ma o nā hanana a me nā hae o nā pae hoʻomākaukau.

I kēia manawa ua ʻike mākou pehea:

  • hoʻopaʻa i ke kikowaena ma o PXE;
  • hoʻololi i ka mana i kā mākou palapala;
  • e hoʻomaopopo i ke kikowaena pono e hoʻomākaukau ʻia e kāna helu serial;
  • hoʻonohonoho i ke kikowaena me ka hoʻohana ʻana i nā pono kūpono;
  • hoʻololi i nā hoʻonohonoho i ka waihona kikowaena kikowaena me ka hoʻohana ʻana i ka ʻāpana mea kūʻai aku.

Ua ʻike mākou pehea:

  • loaʻa i ke kikowaena i hoʻonohonoho ʻia nā hoʻonohonoho pono mai ka waihona;
  • Hoʻopaʻa ʻia nā holomua hoʻomākaukau āpau i ka waihona (nā lāʻau, nā hanana, nā hae kahua).

Pehea e pili ana i nā ʻano polokalamu like ʻole āu e hoʻokomo ai? Pehea e hoʻouka ai i kahi hypervisor, kope i kahi VM a hoʻonohonoho i nā mea āpau?

I ka hihia o ka hoʻoili ʻana i kahi kiʻi ʻōnaehana faila (linux) i ka lako, maʻalahi nā mea āpau:

  • Ma hope o ka hoʻonohonoho ʻana i nā ʻāpana kikowaena āpau, hoʻolaha mākou i ke kiʻi.
  • E hoʻouka i ka grub bootloader.
  • Hoʻopili mākou a hoʻonohonoho i nā mea āpau e pono ai.

Pehea e hoʻololi ai i ka mana i ka OS installer (hoʻohana iā ESXi ma ke ʻano he laʻana).

  • Hoʻonohonoho mākou i ka hoʻololi ʻana o ka mana mai kā mākou palapala i ka mea hoʻonohonoho hypervisor me ka hoʻohana ʻana i ka faila pane ʻakomi (kickstart):
  • Holoi mākou i nā ʻāpana o kēia manawa ma ka disk.
  • E hana i kahi ʻāpana me ka nui o 500MB.
  • Hoʻomaopopo mākou iā ia ma ke ʻano he bootable.
  • Hōʻano i ka FAT32.
  • Hoʻopili mākou i nā faila hoʻonohonoho ESXi i ke kumu.
  • Ke hoʻokomo nei i ka syslinux.
  • E kope i ka syslinux.cfg i /syslinux/

default esxi
prompt 1
timeout 50
label esxi
kernel mboot.c32
append -c boot.cfg

  • E kope i ka mboot.c32 i /syslinux.
  • Loaʻa iā Boot.cfg kernelopt=ks=ftp:// /ks_esxi.cfg
  • Hoʻomaka hou mākou i ke kikowaena.

Ma hope o ka hoʻomaka hou ʻana o ke kikowaena, e hoʻoiho ka mea hoʻonoho ESXi mai ka paʻa paʻa o ke kikowaena. E hoʻouka ʻia nā faila installer pono a pau i ka hoʻomanaʻo a laila e hoʻomaka ka hoʻonohonoho ESXi, e like me ka faila pane auto i kuhikuhi ʻia.

Eia kekahi mau laina mai ka waihona autoresponse ks_esxi.cfg:

%firstboot --interpreter=busybox
…
# получаем серийный номер

SYSSN=$(esxcli hardware platform get | grep Serial | awk -F " " '{print $3}')

# получаем IP

IPADDRT=$(esxcli network ip interface ipv4 get | grep vmk0 | awk -F " " '{print $2}')
LAST_OCTET=$(echo $IPADDRT | awk -F'.' '{print $4}')

# подключаем NFS инсталл-сервера

esxcli storage nfs add -H is -s /srv/nfs_share -v nfsshare1

# копируем временные настройки ssh, для использования ssh-клиента

mv /etc/ssh /etc/ssh.tmp
cp -R /vmfs/volumes/nfsshare1/ssh /etc/
chmod go-r /etc/ssh/ssh_host_rsa_key

# копируем ovftool, для развертывания ВМ сейчас, плюс возможно пригодится позже

cp -R /vmfs/volumes/nfsshare1/ovftool /vmfs/volumes/datastore1/

# развертываем ВМ

/vmfs/volumes/datastore1/ovftool/tools/ovftool --acceptAllEulas --noSSLVerify --datastore=datastore1 --name=VM1 /vmfs/volumes/nfsshare1/VM_T/VM1.ova vi://root:[email protected]
/vmfs/volumes/datastore1/ovftool/tools/ovftool --acceptAllEulas --noSSLVerify --datastore=datastore1 --name=VM2 /vmfs/volumes/nfsshare1/VM_T/VM2.ova vi://root:[email protected]

# получаем строку с настройками нашего сервера

ssh root@is "mysql -h'192.168.0.1' -D'servers' -u'user' -p'secretpassword' -e "SELECT ... WHERE servers.serial='$SYSSN'"" | grep -v ^$ | sed 's/NULL//g' > /tmp/servers
...
# генерируем скрипт настройки сети

echo '#!/bin/sh' > /vmfs/volumes/datastore1/netconf.sh
echo "esxcli network ip interface ipv4 set -i=vmk0 -t=static --ipv4=$IPADDR --netmask=$S_SUB || exit 1" >> /vmfs/volumes/datastore1/netconf.sh
echo "esxcli network ip route ipv4 add -g=$S_GW -n=default || exit 1" >> /vmfs/volumes/datastore1/netconf.sh
chmod a+x /vmfs/volumes/datastore1/netconf.sh

# задаем параметр guestinfo.esxihost.id, указываем в нем серийный номер

echo "guestinfo.esxihost.id = "$SYSSN"" >> /vmfs/volumes/datastore1/VM1/VM1.vmx
echo "guestinfo.esxihost.id = "$SYSSN"" >> /vmfs/volumes/datastore1/VM2/VM2.vmx
...
# обновляем информацию в базе

SYSNAME=$(esxcli hardware platform get | grep Product | sed 's/Product Name://' | sed 's/^ *//')
UUID=$(vim-cmd hostsvc/hostsummary | grep uuid | sed 's/ //g;s/,$//' | sed 's/^uuid="//;s/"$//')
ssh root@is "mysql -D'servers' -u'user' -p'secretpassword' -e "UPDATE servers ... SET ... WHERE servers.serial='$SYSSN'""
ssh root@is "mysql -D'servers' -u'user' -p'secretpassword' -e "INSERT INTO events ...""

# возвращаем настройки SSH

rm -rf /etc/ssh
mv /etc/ssh.tmp /etc/ssh

# настраиваем сеть и перезагружаемся

esxcli system hostname set --fqdn=esx-${G_NICK}.x5.ru
/vmfs/volumes/datastore1/netconf.sh
reboot

I kēia pae, hoʻokomo ʻia ka hypervisor a hoʻonohonoho ʻia, a kope ʻia nā mīkini virtual.

Pehea e hoʻonohonoho ai i nā mīkini virtual i kēia manawa?

Ua hoʻopunipuni liʻiliʻi mākou: i ka wā o ka hoʻokomo ʻana ua hoʻonohonoho mākou i ka parameter guestinfo.esxihost.id = "$SYSSN" i ka faila VM1.vmx a hōʻike i ka helu serial o ka kikowaena kino i loko.

I kēia manawa, ma hope o ka hoʻomaka ʻana, hiki i ka mīkini virtual (me ka vmware-tools package) ke komo i kēia ʻāpana:

ESXI_SN=$(vmtoolsd --cmd "info-get guestinfo.esxihost.id")

ʻO ia hoʻi, hiki i ka VM ke hoʻomaopopo iā ia iho (ʻike ia i ka helu serial o ka mea hoʻokipa kino), e noi i ka waihona kikowaena kikowaena a loaʻa i nā ʻāpana e pono e hoʻonohonoho. Hoʻopili ʻia kēia i kahi palapala, pono e hoʻokuʻu ʻia i ka wā e hoʻomaka ai guestos vm (akā hoʻokahi: RunOnce).

I kēia manawa ua ʻike mākou pehea:

  • hoʻopaʻa i ke kikowaena ma o PXE;
  • hoʻololi i ka mana i kā mākou palapala;
  • e hoʻomaopopo i ke kikowaena pono e hoʻomākaukau ʻia e kāna helu serial;
  • hoʻonohonoho i ke kikowaena me ka hoʻohana ʻana i nā pono kūpono;
  • hoʻololi i nā hoʻonohonoho i ka waihona kikowaena kikowaena me ka hoʻohana ʻana i ka ʻāpana mea kūʻai aku;
  • e hoʻonohonoho i nā ʻano polokalamu like ʻole, me ka hoʻohana ʻana i ka esxi hypervisor a me ka hoʻonohonoho ʻana i nā mīkini virtual (akomi āpau).

Ua ʻike mākou pehea:

  • loaʻa i ke kikowaena i hoʻonohonoho ʻia nā hoʻonohonoho pono mai ka waihona;
  • Hoʻopaʻa ʻia nā holomua hoʻomākaukau āpau i ka waihona (nā lāʻau, nā hanana, nā hae kahua).


Lalo laina:

Ke manaʻoʻiʻo nei au aia ka ʻokoʻa o kēia hoʻonā i kona maʻalahi, maʻalahi, hiki a me ka versatility.

E ʻoluʻolu e kākau i nā manaʻo i kou manaʻo.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka