Ita-iwe-iwe pachako Bare-Metal Provisioning, kana otomatiki kugadzirira maseva kubva kutanga

Mhoroi, ini ndiri Denis uye imwe yenzvimbo dzangu dzekuita ndeyekuvandudza kwezvigadziriso zvigadziriso paX5. Nhasi ndinoda kugovera newe maitiro aungaita otomatiki sevha yekugadzirira sisitimu zvichienderana nemidziyo inowanikwa pachena. Mune maonero angu, iyi inofadza, iri nyore uye inogadziriswa mhinduro.

Ita-iwe-iwe pachako Bare-Metal Provisioning, kana otomatiki kugadzirira maseva kubva kutanga

Nekugadzirira isu tinoreva: shandura sevha nyowani kubva mubhokisi kuita yakanyatso gadziridzwa sevha ine OS. Linux kana ne ESXi hypervisor (kuendeswa kweWindows server hakuna kukurukurwa munyaya ino).

Terms:

  • maseva - maseva anoda kugadzirwa.
  • yekuisa server ndiyo huru server inopa iyo yese yekugadzirira maitiro pamusoro petiweki.

Nei otomatiki ichidiwa?

Ngatitii pane basa: kugadzirira zvakanyanya maseva kubva pakutanga, pakakwirira - makumi matatu pazuva. Masevha evagadziri vakasiyana uye modhi, akasiyana masisitimu anoshanda anogona kuiswa paari, uye anogona kana asina hypervisor.

Ndeapi mashandisirwo anosanganisirwa mugadziriro yekuseta (pasina otomatiki):

  • batanidza keyboard, mouse, monitor kune server;
  • gadzirisa BIOS, RAID, IPMI;
  • gadziridza chikamu firmware;
  • shandisa mufananidzo wefaira system (kana kuisa hypervisor uye kukopa chaiwo michina);

Cherechedza. Neimwe nzira, kutumirwa kweOS kunogoneka kuburikidza nekuisa neauto-response faira. Asi izvi hazvizokurukurwa munyaya yacho. Kunyangwe iwe uchaona pazasi kuti kuwedzera basa iri hakuna kuoma.

  • gadzirisa OS parameters (zita rekutambira, IP, nezvimwewo).

Neiyi nzira, zvigadziriso zvakafanana zvinoitwa zvakateerana pane yega yega sevha. Kubudirira kwebasa rakadaro kwakaderera zvikuru.

Izvo zvakakosha zve otomatiki ndeyekubvisa kutora chikamu kwevanhu kubva kune server kugadzirira maitiro. Zvakawanda sezvinobvira.

Automation inoderedza kuderera pakati pekushanda uye inoita kuti zvikwanise kupa akawanda maseva panguva imwe chete. Mukana wekukanganisa nekuda kwezvikonzero zvevanhu wakaderedzwawo zvakanyanya.

Ita-iwe-iwe pachako Bare-Metal Provisioning, kana otomatiki kugadzirira maseva kubva kutanga

Masevha anogadziriswa sei otomatiki?

Ngationgororei matanho ose zvakadzama.

Une sevha yeLinux yaunoshandisa sePXE yekuisa server. Masevhisi akaiswa uye akagadziriswa pairi: DHCP, TFTP.

Saka, isu tinotanga sevha (iyo inoda kugadzirwa) kuburikidza nePXE. Ngatirangarirei kuti zvinoshanda sei:

  • Network boot inosarudzwa pane server.
  • Sevha inotakura PXE-ROM yetiweki kadhi uye inobata sevha yekuisa kuburikidza neDHCP kuti iwane kero yetiweki.
  • Iyo DHCP yekumisikidza server inoburitsa kero, pamwe nemirairo yekuwedzera kudhawunirodha kuburikidza nePXE.
  • Iyo sevha inoremedza network bootloader kubva kune yekuisa server kuburikidza nePXE, kuwedzera kurodha kunoitika zvinoenderana nePXE yekumisikidza faira.
  • Bhutsu inoitika zvichienderana neyakagamuchirwa paramita (kernel, initramfs, mount points, squashfs mufananidzo, nezvimwewo).

Cherechedza. Chinyorwa chinotsanangura kubhowa kuburikidza nePXE kuburikidza neBIOS modhi. Parizvino, vagadziri vari kushingaira kuita UEFI bootmode. Kune PXE, musiyano uchange uri mukugadziriswa kweDHCP server uye kuvapo kweimwe bootloader yekuwedzera.

Ngatitarisei muenzaniso wePXE server kumisikidza (pxelinux menyu).

Faira 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 // ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ мСню

Faira 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=”…”

Iyo kernel uye initramfs pane ino nhanho ndeyepakati Linux mufananidzo, nerubatsiro rwekuti kugadzirira kukuru uye kugadziridzwa kweseva kuchaitika.

Sezvauri kuona, iyo bootloader inopfuudza akawanda ma paramita kune kernel. Mamwe eaya ma parameter anoshandiswa ne kernel pachayo. Uye tinogona kushandisa zvimwe kune zvinangwa zvedu. Izvi zvichakurukurwa gare gare, asi ikozvino iwe unogona kungoyeuka kuti ese akapfuudzwa maparamita achave aripo mune yepakati Linux mufananidzo kuburikidza /proc/cmdline.

Ndingazviwane kupi, kernel uye initramfs?
Sehwaro, unogona kusarudza chero kugoverwa kweLinux. Zvatinoteerera pakusarudza:

  • mufananidzo webhoti unofanirwa kuva wepasi rose (kuwanikwa kwevatyairi, kukwanisa kuisa mamwe mashandisi);
  • Zvingangodaro, iwe uchafanirwa kugadzirisa iyo initramfs.

Izvi zvinoitwa sei mumhinduro yedu yeX5? CentOS 7 yakasarudzwa sehwaro.Ngatiedzei hunyengeri hunotevera: gadzirira chimiro cheramangwana remufananidzo, rongedza mudura uye gadzira initramfs, mukati mayo pachava nefaira yedu system archive. Paunenge uchirodha mufananidzo, iyo dura ichawedzerwa mune yakagadzirwa tmpfs chikamu. Nenzira iyi tichawana diki, asi yakazara-yakazara live linux chifananidzo chine zvese zvinodiwa zvinoshandiswa, zvinosanganisira mafaera maviri chete: vmkernel uye 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

Saka isu tatsanangura kernel uye initramfs dzinofanirwa kutakurwa. Nekuda kweizvozvo, panguva ino, nekurodha yepakati linux mufananidzo kuburikidza nePXE, isu tichagamuchira iyo OS console.

Zvakanaka, asi ikozvino tinoda kuendesa kutonga kune yedu "otomatiki".

Zvinogona kuitwa sezvizvi.

Ngatifungei kuti mushure mekurodha chifananidzo tinoronga kuendesa kutonga kune mount.sh script.
Ngatisanganise iyo mount.sh script mu autorun. Kuti uite izvi iwe uchafanirwa kugadzirisa iyo initramfs:

  • unpack initramfs (kana tikashandisa iri pamusoro initramfs sarudzo, izvi hazvidiwi)
  • sanganisira kodhi mukutanga iyo inoongorora iyo paramita yakapfuura ne / proc/cmdline uye kutamisa kutonga mberi;
  • pack initramfs.

Cherechedza. Panyaya yeX5 toolkit, kurodha kutonga kunoendeswa kune script /opt/x5/toolkit/bin/hook.sh с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ override.conf Π² getty tty1 (ExecStart=…)

Saka, mufananidzo wacho wakatakurwa, umo mount.sh script inotanga pa autorun. Tevere, iyo mount.sh script inoongorora iyo yakapfuura paramita (script_cmd=) panguva yekuuraya uye inotanga inodiwa chirongwa/script.

label toolkit-motokari
kernel...
append...nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh

label toolkit-deko
kernel...
append...nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash

Ita-iwe-iwe pachako Bare-Metal Provisioning, kana otomatiki kugadzirira maseva kubva kutanga

Pano kuruboshwe kune menyu yePXE, kurudyi kune dhayagiramu yekufambisa.

Takafunga kuchinjisa control. Zvichienderana nesarudzo yemenu yePXE, ingave iyo auto-configuration script kana debugging console inotangwa.

Panyaya yekugadziriswa otomatiki, madhairekitori anodiwa anoiswa kubva kune yekuisa server, ine:

  • zvinyorwa;
  • yakachengetwa BIOS/UEFI matemplate emaseva akasiyana-siyana;
  • firmware;
  • server utilities;
  • logs

Tevere, iyo mount.sh script inotamisa control kune master-install.sh script kubva kune script dhairekitori.

Iyo script muti (kurongeka kwavanotangwa) inotaridzika seizvi:

  • master-install
  • sharefunctions (akagovaniswa mabasa)
  • ruzivo (kubuda kwemashoko)
  • mamodheru (kuseta kumisikidza paramita zvichibva pane sevha modhi)
  • gadzirira_utils (kuiswa kwezvinhu zvinodiwa)
  • fwupdate (firmware update)
  • diag (yekutanga diagnostics)
  • biosconf (BIOS/UEFI marongero)
  • clockfix (kuisa nguva pane motherboard)
  • srmconf (kure interface interface kumisikidza)
  • raidconf (kugadzirisa zvine musoro mavhoriyamu)

imwe ye:

  • preinstall (kutumira kutonga kune OS kana hypervisor simisi, senge ESXi)
  • merged-install (pakarepo kutanga kwekusunungura mufananidzo)

Iye zvino tinoziva:

  • nzira yekubhuya sevha kuburikidza nePXE;
  • nzira yekuendesa kutonga kune yako script.


Ngatienderere mberi. Mibvunzo inotevera yakave yakakosha:

  • Nzira yekuziva sei server yatiri kugadzirira?
  • Ndezvipi zvinoshandiswa uye maitiro ekugadzirisa server?
  • Nzira yekuwana sei zvigadziriso zveimwe server?

Nzira yekuziva sei server yatiri kugadzirira?

Zviri nyore - DMI:

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

Zvese zvaunoda zviri pano: mutengesi, modhi, serial nhamba. Kana iwe usina chokwadi chekuti ruzivo urwu rwuripo mumaseva ese, unogona kuvaziva nekero yavo yeMAC. Kana munzira mbiri panguva imwe chete, kana vatengesi veseva vakasiyana uye pane mamwe mamodheru hapana ruzivo nezve serial nhamba.

Zvichienderana neruzivo rwakagamuchirwa, maforodha etiweki anoiswa kubva kune yekumisikidza server uye zvese zvinodiwa zvinotakurwa (zvishandiso, firmware, nezvimwewo).

Ndezvipi zvinoshandiswa uye maitiro ekugadzirisa server?

Ini ndichapa zvishandiso zveLinux kune vamwe vagadziri. Zvese zvinoshandiswa zviripo pawebhusaiti yepamutemo yevatengesi.

Ita-iwe-iwe pachako Bare-Metal Provisioning, kana otomatiki kugadzirira maseva kubva kutanga

Neiyo firmware, ndinofunga zvese zvakajeka. Ivo kazhinji vanouya muchimiro chemapakiti eexecutable mafaera. Iyo faira inoteedzera inodzora iyo firmware yekuvandudza maitiro uye inoshuma iyo yekudzoka kodhi.

BIOS uye IPMI kazhinji inogadziriswa kuburikidza nematemplate. Kana zvichidikanwa, iyo template inogona kugadziridzwa isati yarodha.

RAID zvishandiso kubva kune vamwe vatengesi zvinogona zvakare kugadzirwa uchishandisa template. Kana zvisiri izvo, saka iwe uchafanirwa kunyora script yekumisikidza.

Maitiro ekumisikidza RAID anowanzo seanotevera:

  • Tinokumbira kugadzirisa ikozvino.
  • Kana paine zvatova zvine musoro arrays, tinodzidzima.
  • Ngatitarisei kuti madhisiki emuviri aripo uye kuti mangani aripo.
  • Gadzira mutsva unonzwisisika array. Isu tinokanganisa maitiro kana kukanganisa.

Nzira yekuwana sei zvigadziriso zveimwe server?

Ngatifungei kuti zvigadziriso zveese maseva zvichachengetwa pane yekuisa server. Muchiitiko ichi, kuti tipindure mubvunzo wedu, tinofanira kutanga tasarudza nzira yekuendesa zvigadziriso kune server yekuisa.

Pakutanga, unogona kuwana nemameseji mafaera. (Mune ramangwana, ungangoda kushandisa mameseji faira senzira yekudzosera yekuchinjisa marongero.)

Iwe unogona "kugovera" mameseji faira pane yekuisa server. Uye wedzera gomo rayo kune mount.sh script.

Mitsetse, semuenzaniso, ichaita seizvi:

<serial number> <hostname> <subnet>

Iyi mitsetse ichaendeswa kune faira nainjiniya kubva pamushini wake webasa. Uye zvino, pakumisikidza sevha, iyo parameter yeimwe server ichaverengwa kubva mufaira.

Asi, nekufamba kwenguva, zviri nani kushandisa dhatabhesi kuchengetedza marongero, nyika uye matanda ekuisa server.

Ehe, dhatabhesi chete haina kukwana, uye iwe uchafanirwa kugadzira chikamu chemutengi nerubatsiro rwezvirongwa zvichaendeswa kune database. Izvi zvakanyanya kuoma kuita zvichienzaniswa nefaira remavara, asi kutaura zvazviri, zvese hazvina kuoma sezvazvinoratidzika. Zvinogoneka kunyora diki vhezheni yemutengi inongoendesa data kune dhatabhesi iwe pachako. Uye mune ramangwana zvichave zvichigoneka kuvandudza chirongwa chemutengi mumahara mode (mishumo, kudhinda mavara, kutumira zviziviso, nezvimwe zvinouya mupfungwa).

Nekuita chikumbiro chakananga kune dhatabhesi uye nekutsanangura iyo server serial nhamba, isu tinogashira inodiwa ma paramita ekugadzirisa server.

Uyezve, isu hatizoda kuuya nemakiyi ekuwana panguva imwe chete, sezvazvakaita nefaira remavara.

Isu tinokwanisa kunyora dhizaini yekumisikidza kune dhatabhesi pamatanho ese uye kutonga maitiro ekuisa kuburikidza nezviitiko uye mireza yematanho ekugadzirira.

Iye zvino tinoziva sei:

  • boot server kuburikidza nePXE;
  • kutamisa kutonga kune script yedu;
  • tsvaga sevha inoda kugadzirirwa ne serial nhamba yayo;
  • gadzirisa sevha uchishandisa zvishandiso zvakakodzera;
  • endesa zvigadziriso kune yekuisa server database uchishandisa chikamu chemutengi.

Takaona sei:

  • iyo yakaiswa sevha inogamuchira zvigadziro zvinodiwa kubva kune database;
  • kufambira mberi kwese kwekugadzirira kunonyorwa mudhatabhesi (matanda, zviitiko, mireza yematanho).

Zvakadini nemhando dzakasiyana dzesoftware dzaunoisa? Maitiro ekuisa hypervisor, kukopa VM uye gadzirisa zvese?

Panyaya yekuendesa faira system mufananidzo (linux) kune Hardware, zvese zviri nyore:

  • Mushure mekugadzirisa zvese zvikamu zve server, tinotumira mufananidzo.
  • Isa iyo grub bootloader.
  • Isu chroot uye kugadzirisa zvese zvinodiwa.

Maitiro ekuchinjisa kutonga kune iyo OS installer (uchishandisa ESXi semuenzaniso).

  • Isu tinoronga kuendesa kwekutonga kubva kune yedu script kuenda kune hypervisor simisi tichishandisa otomatiki mhinduro faira (kickstart):
  • Isu tinodzima zvikamu zvazvino pane diski.
  • Gadzira chikamu chine saizi ye500MB.
  • Isu tinoimaka seinogoneka.
  • Fomati kune FAT32.
  • Isu tinotevedzera ESXi yekuisa mafaera kumudzi.
  • Kuisa syslinux.
  • Kopa syslinux.cfg ku /syslinux/

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

  • Kopa mboot.c32 ku /syslinux.
  • Boot.cfg inofanira kuva kernelopt=ks=ftp:// /ks_esxi.cfg
  • Isu tinotangazve server.

Mushure mekunge sevha yatangazve, mugadziri weESXi anozodhawunirodha kubva kune server's hard drive. Ese anodiwa ekuisa mafaera anozoiswa mundangariro uye ipapo iyo ESXi yekumisikidza ichatanga, zvinoenderana neyakatsanangurwa auto-mhinduro faira.

Heino mitsetse mishoma kubva ku autoresponse faira 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

Panguva ino, iyo hypervisor inoiswa uye inogadziriswa, uye chaiwo michina inoteererwa.

Maitiro ekugadzirisa sei virtual muchina izvozvi?

Isu takabiridzira zvishoma: panguva yekuisa isu takaisa parameter guestinfo.esxihost.id = "$SYSSN" muVM1.vmx faira uye yakaratidza serial nhamba yemuviri server mairi.

Zvino, mushure mekutanga, iyo chaiyo muchina (ine vmware-zvishandiso package yakaiswa) inogona kuwana iyi parameter:

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

Ndiko kuti, iyo VM ichakwanisa kuzvizivisa pachayo (inoziva serial nhamba yemuiti wemuviri), ita chikumbiro kune yekuisa server database uye ugamuchire ma parameter anoda kugadziridzwa. Izvi zvese zvinounganidzwa kuita script, iyo inofanirwa kutangwa otomatiki kana guestos vm yatanga (asi kamwe chete: RunOnce).

Iye zvino tinoziva sei:

  • boot server kuburikidza nePXE;
  • kutamisa kutonga kune script yedu;
  • tsvaga sevha inoda kugadzirirwa ne serial nhamba yayo;
  • gadzirisa sevha uchishandisa zvishandiso zvakakodzera;
  • kuendesa zvigadziriso kune yekuisa server database uchishandisa mutengi chikamu;
  • gadzirisa mhando dzakasiyana dzesoftware, kusanganisira kuendesa iyo esxi hypervisor uye kugadzirisa chaiwo michina (ese otomatiki).

Takaona sei:

  • iyo yakaiswa sevha inogamuchira zvigadziro zvinodiwa kubva kune database;
  • kufambira mberi kwese kwekugadzirira kunonyorwa mudhatabhesi (matanda, zviitiko, mireza yematanho).


Chinonyanya kukosha:

Ini ndinotenda kuti kusarudzika kwemhinduro iyi kuri mukuchinjika kwayo, kuve nyore, kugona uye kuita zvakasiyana.

Ndapota nyora mumashoko zvaunofunga.

Source: www.habr.com

Voeg