Egin ezazu zeure burua Bare-Metal Hornidura edo zerbitzarien prestaketa automatikoa hutsetik

Kaixo, Denis naiz eta nire jarduera-eremuetako bat X5-en azpiegitura-soluzioen garapena da. Gaur, publikoki eskuragarri dauden tresnetan oinarritutako zerbitzariak prestatzeko sistema automatikoa nola zabaldu dezakezun partekatu nahiko nuke. Nire ustez, hau irtenbide interesgarria, sinplea eta malgua da.

Egin ezazu zeure burua Bare-Metal Hornidura edo zerbitzarien prestaketa automatikoa hutsetik

Prestaketarekin esan nahi dugu: zerbitzari berri bat kutxatik aterata guztiz konfiguratutako zerbitzari bat bihurtu sistema eragilearekin. Linux edo ESXi hipervisorarekin (Windows zerbitzarien inplementazioa ez da artikulu honetan eztabaidatzen).

Termino:

  • zerbitzariak – konfiguratu behar diren zerbitzariak.
  • instalazio zerbitzaria sarean prestatzeko prozesu osoa ematen duen zerbitzari nagusia da.

Zergatik behar da automatizazioa?

Demagun zeregin bat dagoela: zerbitzariak hutsetik masiboki prestatzea, gailurrean - 30 eguneko. Fabrikatzaile eta modelo ezberdinetako zerbitzariak, sistema eragile desberdinak instalatu daitezke horietan, eta hipervisor bat izan edo ez.

Zer eragiketa sartzen diren konfigurazio-prozesuan (automatizaziorik gabe):

  • konektatu teklatua, sagua, monitorea zerbitzarira;
  • konfiguratu BIOS, RAID, IPMI;
  • eguneratu osagaien firmwarea;
  • inplementatu fitxategi-sistemaren irudi bat (edo instalatu hipervisor bat eta kopiatu makina birtualak);

Ohar. Bestela, sistema eragilearen inplementazioa posible da erantzun automatikoko fitxategi batekin instalazioaren bidez. Baina hori ez da artikuluan eztabaidatuko. Jarraian ikusiko duzun arren funtzionalitate hau gehitzea ez dela zaila.

  • konfiguratu OS parametroak (ostalari-izena, IP, etab.).

Planteamendu honekin, ezarpen berdinak egiten dira sekuentzialki zerbitzari bakoitzean. Lan horien eraginkortasuna oso baxua da.

Automatizazioaren funtsa zerbitzariaren prestaketa prozesutik giza parte-hartzea ezabatzea da. Ahal den neurrian.

Automatizazioak eragiketen arteko geldialdi-denbora murrizten du eta hainbat zerbitzari aldi berean hornitzea ahalbidetzen du. Giza faktoreen ondorioz akatsen probabilitatea ere asko murrizten da.

Egin ezazu zeure burua Bare-Metal Hornidura edo zerbitzarien prestaketa automatikoa hutsetik

Nola konfiguratzen dira automatikoki zerbitzariak?

Azter ditzagun etapa guztiak zehatz-mehatz.

PXE instalazio zerbitzari gisa erabiltzen duzun Linux zerbitzari bat duzu. Zerbitzuak bertan instalatu eta konfiguratuta daude: DHCP, TFTP.

Beraz, zerbitzaria (konfiguratu behar dena) abiarazten dugu PXE bidez. Gogora dezagun nola funtzionatzen duen:

  • Sareko abioa hautatuta dago zerbitzarian.
  • Zerbitzariak sare-txarteleko PXE-ROMa kargatzen du eta instalazio-zerbitzariarekin harremanetan jartzen da DHCP bidez sare-helbide bat lortzeko.
  • DHCP instalazio zerbitzariak helbide bat ematen du, baita PXE bidez deskargatzeko argibideak ere.
  • Zerbitzariak sareko abiarazlea instalatzeko zerbitzaritik kargatzen du PXE bidez, karga gehiago PXE konfigurazio fitxategiaren arabera gertatzen da.
  • Jasotako parametroetan (kernel, initramfs, muntatze-puntuak, squashfs irudia, etab.) oinarrituta gertatzen da abiaraztea.

Ohar. Artikuluak PXE bidez abiarazteko BIOS moduaren bidez deskribatzen du. Gaur egun, fabrikatzaileak aktiboki inplementatzen ari dira UEFI bootmode. PXErako, aldea DHCP zerbitzariaren konfigurazioan eta abiarazle gehigarri baten presentzian egongo da.

Ikus dezagun PXE zerbitzariaren konfigurazio baten adibide bat (pxelinux menua).

pxelinux.cfg/default fitxategia:

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

Pxelinux.cfg/toolkit fitxategia:

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

Fase honetan nukleoa eta initramfs tarteko Linux irudi bat dira, eta horren laguntzarekin zerbitzariaren prestaketa eta konfigurazio nagusia egingo da.

Ikus dezakezunez, abio-kargatzaileak parametro asko pasatzen dizkio nukleoari. Parametro horietako batzuk kernelak berak erabiltzen ditu. Eta batzuk gure helburuetarako erabil ditzakegu. Geroago eztabaidatuko da, baina oraingoz gogoratu besterik ez duzu pasatako parametro guztiak eskuragarri egongo direla Linux tarteko irudian /proc/cmdline bidez.

Non lor ditzaket, kernel eta initramfs?
Oinarri gisa, edozein Linux banaketa aukeratu dezakezu. Zeri erreparatzen diogu aukeratzerakoan:

  • abioko irudiak unibertsala izan behar du (gidarien erabilgarritasuna, utilitate osagarriak instalatzeko gaitasuna);
  • Seguruenik, initramfs pertsonalizatu beharko duzu.

Nola egiten da hau X5-rako gure soluzioan? Oinarri gisa CentOS 7 aukeratu zen. Saia gaitezen trikimailu hau: prestatu etorkizuneko irudien egitura, ontziratu artxibo batean eta sortu initramfs bat, zeinaren barruan gure fitxategi-sistemaren artxiboa egongo den. Irudia kargatzean, artxiboa sortutako tmpfs partiziora zabalduko da. Modu honetan, beharrezko utilitate guztiekin zuzeneko linux irudi minimo bat lortuko dugu, baina erabatekoa, bi fitxategiz soilik osatua: vmkernel eta 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

Beraz, kargatu behar diren nukleoa eta initramfs zehaztu ditugu. Ondorioz, fase honetan, tarteko linux irudia PXE bidez kargatuz, OS kontsola jasoko dugu.

Bikaina, baina orain kontrola gure "automatizaziora" transferitu behar dugu.

Horrela egin daiteke.

Demagun irudia kargatu ondoren kontrola mount.sh script-era transferitzeko asmoa dugula.
Sar dezagun mount.sh script-a autorun-en. Horretarako initramfs aldatu beharko duzu:

  • deskonprimitu initramfs (goiko initramfs aukera erabiltzen badugu, hau ez da beharrezkoa)
  • sartu /proc/cmdlinetik pasatako parametroak eta kontrola gehiago transferituko dituen abiaraztean kodea;
  • pack initramfs.

Ohar. X5 tresna-kitaren kasuan, karga-kontrola script-era transferitzen da /opt/x5/toolkit/bin/hook.sh с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ override.conf Π² getty tty1 (ExecStart=…)

Beraz, irudia kargatzen da, eta bertan mount.sh script-a abiarazitakoan hasten da. Ondoren, mount.sh script-ak gainditutako parametroak (script_cmd=) aztertzen ditu exekuzioan zehar eta beharrezko programa/scripta abiarazten du.

etiketa tresna-autoa
nukleoa...
erantsi... nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh

etiketa tresna-shell
nukleoa...
erantsi... nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash

Egin ezazu zeure burua Bare-Metal Hornidura edo zerbitzarien prestaketa automatikoa hutsetik

Hemen ezkerrean PXE menua dago, eskuinean kontrol transferentzia diagrama.

Kontrolaren transferentzia asmatu genuen. PXE menuaren aukeraketaren arabera, konfigurazio automatikoko script-a edo arazketa-kontsola abiarazten da.

Konfigurazio automatikoaren kasuan, instalazio zerbitzaritik beharrezkoak diren direktorioak muntatzen dira, hauek dituztenak:

  • gidoiak;
  • gordetako BIOS/UEFI txantiloiak hainbat zerbitzaritarako;
  • firmwarea;
  • zerbitzariaren utilitateak;
  • erregistroak

Ondoren, mount.sh script-ak kontrola transferitzen du master-install.sh script-era script-en direktoriotik.

Gidoien zuhaitzak (abiarazten diren ordena) honelako itxura du:

  • master-instalatu
  • partekatu funtzioak (funtzio partekatuak)
  • informazioa (informazio irteera)
  • ereduak (zerbitzariaren ereduan oinarritutako instalazio-parametroak ezartzea)
  • prepare_utils (beharrezko utilitateen instalazioa)
  • fwupdate (firmware eguneratzea)
  • diag (oinarrizko diagnostikoa)
  • biosconf (BIOS/UEFI ezarpenak)
  • clockfix (ordua plakan ezartzea)
  • srmconf (urruneko interfazearen konfigurazioa)
  • raidconf (bolumen logikoak konfiguratzea)

horietako bat:

  • aurreinstalatu (kontrola OS edo hipervisor instalatzailera transferituz, hala nola ESXi)
  • merged-install (irudia deskonprimitzen berehala hasten da)

Orain badakigu:

  • nola abiarazi zerbitzari bat PXE bidez;
  • nola transferitu kontrola zure script-era.


Jarrai dezagun. Galdera hauek garrantzitsuak bihurtu ziren:

  • Nola identifikatu prestatzen ari garen zerbitzaria?
  • Zein utilitate eta nola konfiguratu zerbitzaria?
  • Nola lortu zerbitzari jakin baterako ezarpenak?

Nola identifikatu prestatzen ari garen zerbitzaria?

Sinplea da - DMI:

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

Behar duzun guztia hemen dago: saltzailea, modeloa, serie zenbakia. Informazio hori zerbitzari guztietan dagoela ziur ez bazaude, haien MAC helbidearen bidez identifika ditzakezu. Edo bi modu batera aldi berean, zerbitzarien saltzaileak desberdinak badira eta modelo batzuetan ez dago serie-zenbakiari buruzko informaziorik.

Jasotako informazioaren arabera, sareko karpetak muntatzen dira instalazio zerbitzaritik eta beharrezko guztia kargatzen da (utilitateak, firmwarea, etab.).

Zein utilitate eta nola konfiguratu zerbitzaria?

Fabrikatzaile batzuentzat Linuxerako utilitateak emango ditut. Utilitate guztiak saltzaileen webgune ofizialetan daude eskuragarri.

Egin ezazu zeure burua Bare-Metal Hornidura edo zerbitzarien prestaketa automatikoa hutsetik

Firmwarearekin, dena argi dagoela uste dut. Normalean paketeatutako fitxategi exekutagarrien forman etortzen dira. Fitxategi exekutagarriak firmwarearen eguneratze prozesua kontrolatzen du eta itzultzeko kodearen berri ematen du.

BIOS eta IPMI txantiloien bidez konfiguratu ohi dira. Beharrezkoa izanez gero, txantiloia edita daiteke deskargatu aurretik.

Saltzaile batzuen RAID utilitateak ere konfigura daitezke txantiloi bat erabiliz. Horrela ez bada, konfigurazio script bat idatzi beharko duzu.

RAID konfiguratzeko prozedura gehienetan honako hau da:

  • Oraingo konfigurazioa eskatzen dugu.
  • Dagoeneko matrize logikoak badaude, ezabatuko ditugu.
  • Ikus dezagun zein disko fisiko dauden eta zenbat dauden.
  • Sortu matrize logiko berri bat. Akatsen bat gertatuz gero prozesua eteten dugu.

Nola lortu zerbitzari jakin baterako ezarpenak?

Demagun zerbitzari guztien ezarpenak instalazio zerbitzarian gordeko direla. Kasu honetan, gure galderari erantzuteko, lehenik eta behin ezarpenak instalazio zerbitzarira nola transferitu erabaki behar dugu.

Hasieran, testu fitxategiekin aurrera egin dezakezu. (Etorkizunean, baliteke testu-fitxategi bat erabili nahi izatea ezarpenak transferitzeko ordezko metodo gisa.)

Testu-fitxategi bat "partekatu" dezakezu instalazio zerbitzarian. Eta gehitu bere muntaketa mount.sh script-ari.

Lerroak, adibidez, honelakoak izango dira:

<serie-zenbakia> <ostalari-izena> <azpisarea>

Lerro hauek fitxategira eramango ditu ingeniariak bere lan-makinatik. Eta gero, zerbitzari bat konfiguratzean, zerbitzari zehatz baten parametroak irakurriko dira fitxategitik.

Baina, epe luzera, hobe da datu-base bat erabiltzea zerbitzariaren instalazioen ezarpenak, egoerak eta erregistroak gordetzeko.

Jakina, datu-base bat bakarrik ez da nahikoa, eta bezeroaren zati bat sortu beharko duzu ezarpenak datu-basera transferituko diren laguntzarekin. Hau inplementatzea zailagoa da testu-fitxategi batekin alderatuta, baina egia esan, dena ez da dirudien bezain zaila. Oso posible da bezero baten bertsio minimo bat idaztea, datuak datu-basera zuk zeuk transferituko dituena. Eta etorkizunean bezeroaren programa hobetu ahal izango da modu librean (txostenak, etiketak inprimatzea, jakinarazpenak bidaltzea, etab. burura etortzen zaizkigunak).

Datu-baseari eskaera zehatz bat eginez eta zerbitzariaren serie-zenbakia zehaztuz, zerbitzaria konfiguratzeko beharrezko parametroak jasoko ditugu.

Gainera, ez dugu blokeorik sortu behar aldi berean sartzeko, testu-fitxategi batekin gertatzen den bezala.

Konfigurazio-erregistroa datu-basean idatz dezakegu fase guztietan eta instalazio-prozesua kontrolatu dezakegu prestaketa-faseetako gertaeren eta banderen bidez.

Orain badakigu nola:

  • abiarazi zerbitzaria PXE bidez;
  • transferitu kontrola gure gidoiari;
  • identifikatu behar den zerbitzaria bere serie-zenbakiaren bidez;
  • konfiguratu zerbitzaria utilitate egokiak erabiliz;
  • transferitu ezarpenak instalazio zerbitzariaren datu-basera bezeroaren zatia erabiliz.

Nola jakin dugu:

  • instalatutako zerbitzariak datu-basetik beharrezko ezarpenak jasotzen ditu;
  • prestaketa aurrerapen guztiak datu-basean erregistratzen dira (erregistroak, gertaerak, etapako banderak).

Zer gertatzen da instalatzen dituzun software mota ezberdinekin? Nola instalatu hipervisor bat, VM bat kopiatu eta dena konfiguratu?

Fitxategi-sistemaren irudi bat (linux) hardwarera hedatzearen kasuan, dena nahiko erraza da:

  • Zerbitzariaren osagai guztiak konfiguratu ondoren, irudia zabalduko dugu.
  • Instalatu grub bootloader.
  • Behar den guztia chroot eta konfiguratzen dugu.

Nola transferitu kontrola OS instalatzailera (ESXi erabiliz adibide gisa).

  • Kontrolaren transferentzia gure scriptetik hipervisorearen instalatzailera antolatzen dugu erantzun automatikoaren fitxategia erabiliz (kickstart):
  • Diskoko uneko partizioak ezabatzen ditugu.
  • Sortu 500 MB-ko tamaina duen partizioa.
  • Abiagarri gisa markatzen dugu.
  • FAT32rako formatua.
  • ESXi instalazio fitxategiak errora kopiatzen ditugu.
  • Syslinux instalatzen.
  • Kopiatu syslinux.cfg /syslinux/ helbidera

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

  • Kopiatu mboot.c32 /syslinux-era.
  • Boot.cfg-k kernelopt=ks=ftp:// izan beharko luke /ks_esxi.cfg
  • Zerbitzaria berrabiaraziko dugu.

Zerbitzaria berrabiarazi ondoren, ESXi instalatzailea zerbitzariaren disko gogorretik deskargatuko da. Beharrezko instalatzaile-fitxategi guztiak memorian kargatuko dira eta, ondoren, ESXi instalazioa hasiko da, zehaztutako erantzun automatikoaren fitxategiaren arabera.

Hona hemen ks_esxi.cfg erantzun automatikoaren fitxategiko lerro batzuk:

%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

Fase honetan, hipervisorea instalatu eta konfiguratzen da, eta makina birtualak kopiatzen dira.

Nola konfiguratu orain makina birtualak?

Apur bat iruzur egin dugu: instalazioan guestinfo.esxihost.id = "$SYSSN" parametroa ezarri dugu VM1.vmx fitxategian eta bertan zerbitzari fisikoaren serie zenbakia adierazi dugu.

Orain, hasi eta gero, makina birtualak (vmware-tools paketea instalatuta duela) parametro honetara sar dezake:

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

Hau da, VM-ak bere burua identifikatu ahal izango du (ostalari fisikoaren serie-zenbakia ezagutzen du), instalazio-zerbitzariaren datu-baseari eskaera egin eta konfiguratu beharreko parametroak jaso ahal izango ditu. Hau guztia script batean biltzen da, automatikoki abiarazi beharko litzateke guestos vm abiaraztean (baina behin: RunOnce).

Orain badakigu nola:

  • abiarazi zerbitzaria PXE bidez;
  • transferitu kontrola gure gidoiari;
  • identifikatu behar den zerbitzaria bere serie-zenbakiaren bidez;
  • konfiguratu zerbitzaria utilitate egokiak erabiliz;
  • transferitu ezarpenak instalazio zerbitzariaren datu-basera bezeroaren zatia erabiliz;
  • hainbat software mota konfiguratu, besteak beste, esxi hipervisorea zabaltzea eta makina birtualak konfiguratzea (guztiak automatikoki).

Nola jakin dugu:

  • instalatutako zerbitzariak datu-basetik beharrezko ezarpenak jasotzen ditu;
  • prestaketa aurrerapen guztiak datu-basean erregistratzen dira (erregistroak, gertaerak, etapako banderak).


Beheko lerroa:

Uste dut irtenbide honen berezitasuna malgutasunean, sinpletasunean, gaitasunetan eta aldakortasunean dagoela.

Mesedez, idatzi iruzkinetan zer iruditzen zaizun.

Iturria: www.habr.com

Gehitu iruzkin berria