Provisionimi Bare-Metal me duar, ose Përgatitja Automatike e Serverëve nga E para

Përshëndetje, unë jam Denis dhe një nga drejtimet e mia të punës është zhvillimi i zgjidhjeve infrastrukturore në X5. Sot doja të ndaj me ju se si mund të krijoni një sistem automatizimi për përgatitjen e serverëve duke përdorur mjete të disponueshme publikisht. Sipas mendimit tim, kjo është një zgjidhje interesante, e thjeshtë dhe fleksibile.

Provisionimi Bare-Metal me duar, ose Përgatitja Automatike e Serverëve nga E para

Përgatitja nënkupton: të bëni nga një server të ri nga kutia, një server të plotë të konfiguruar me sistemin operativ Linux ose me hipervizorin ESXi (instalimi i Windows në këtë artikull nuk trajtohet). serverëve Windows nuk diskutohet në këtë artikull).

Terma:

  • serverët – serverët që duhet të konfigurohen.
  • serveri i instalimit – serveri kryesor që siguron tërë procesin e përgatitjes përmes rrjetit.

Pse është e nevojshme automatizimi?

Supozoni se ka një detyrë: të përgatisni në masë serverë nga e para, deri në 30 në ditë. Serverë të prodhuesve dhe modeleve të ndryshme, mbi to mund të instalohen sisteme operatives të ndryshme, hipervizori mund të jetë i pranishëm ose i munguar.

Cilat janë operacionet që përfshihen në procesin e konfigurimit (pa automatizim):

  • të lidhni tastierën, mausin, monitorin me serverin;
  • të konfiguroni BIOS-in, RAID, IPMI;
  • përditësoni firmware-in e komponenteve;
  • shkarkoni imazhin e sistemit të skedarëve (ose instaloni hipervizorin dhe kopjoni makinat virtuale);

Shënim. Si një opsion, deployimi i OS-së është i mundur përmes instalimit me një skedë përgjigjeje. Por kjo nuk do të diskutohet në artikull. Megjithatë, më poshtë do të shihni se shtimi i kësaj funksionaliteti nuk është i vështirë.

  • konfiguroni parametrat e OS-së (hostname, IP, të tjerë).

Me këtë qasje, konfigurimet e njëjta kryhen njëpasnjërisht në çdo server. Efikasiteti i një pune të tillë është shumë i ulët.

Shqetësimi i automatizimit është përjashtimi i përfshirjes së njeriut nga procesi i përgatitjes së serverit. Sa më shumë të jetë e mundur.

Falë automatizimit, kohëzgjatja e ndërprerjeve midis operacioneve reduktohet dhe shfaqet mundësia për të përgatitur disa serverë në të njëjtën kohë. Gjithashtu, ndjeshëm ulet probabiliteti i shfaqjes së gabimeve për shkak të faktorëve njerëzorë.

Provisionimi Bare-Metal me duar, ose Përgatitja Automatike e Serverëve nga E para

Si ndodh konfigurimi automatik i serverëve?

Le të shqyrtojmë të gjitha fazat në detaje.

Keni një server linux që e përdorni si server instalimi PXE. Në të janë instaluar dhe konfiguruar shërbimet: DHCP, TFTP.

Pra ndaj, ngarkoni serverin (i cili duhet konfiguruar) përmes PXE. Le të kujtojmë si funksionon:

  • Serveri ka zgjedhur ngarkimin në rrjet.
  • Serveri ngarkon PXE-ROM-in e kartës rrjetit dhe i drejtohet serverit të instalimit përmes DHCP për të marrë adresën e rrjetit.
  • DHCP i serverit të instalimit jep adresën, si dhe një udhëzim për ngarkimin e mëtejshëm përmes PXE.
  • Serveri ngarkon ngarkuesin rrjetit nga serveri i instalimit përmes PXE; ngarkimi i mëtejshëm ndodh sipas skedarit konfiguruese PXE.
  • Ngarkohet në përputhje me parametrat e marra (bërthama, initramfs, pikat e montimit, imazhi i squashfs dhe të tjera).

Shënim. Artikulli ofron një përshkrim të ngarkimit përmes PXE në mënyrën BIOS. Aktualisht, prodhuesit po implementojnë aktivisht mënyrën e ngarkimit UEFI. Ndryshimi për PXE do të jetë në konfigurimin e serverit DHCP dhe praninë e ngarkuesit shtesë.

Le t'i hedhim një sy një shembulli të konfigurimit të serverit PXE (menyja pxelinux).

Skedari 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 // menuja e paracaktuar
	MENU LABEL Linux Scripting Toolkits
	MENU default
	KERNEL menu.c32
	APPEND pxelinux.cfg/toolkit // kalimi në menunë tjetër

Skedha pxelinux.cfg/toolkit:

prompt 0
timeout 100
menu title X5 PXE Boot Menu
label mainmenu
    menu label ^Kthehu në Menun Kryesore
    kernel menu.c32
    append pxelinux.cfg/default
label x5toolkit-auto // në mënyrë default — modu automatik
        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 // për debuggim - konsola
        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="…"

Bërthamë dhe initramfs në këtë fazë – është një imazh përkohësor linux, me ndihmën e të cilit do të bëhet përgatitja dhe konfigurimi kryesor i serverit.

Siç shihni, bootloader-i kalon shumë parametra bërthamës. Një pjesë e këtyre parametrave përdoret nga bërthama vetë. Disa prej tyre mund t’i përdorim për qëllimet tona. Këto do të diskutohen më vonë, por tani mund ta mbani mend se të gjithë parametrat e kaluar do të jenë të disponueshëm në imazhin përkohësor linux përmes /proc/cmdline.

Ku t’i gjejmë, bërthamën dhe initramfs?
Si bazë, mund të zgjidhni çdo distribucion linux. Çfarë duhen marrë parasysh kur bëni zgjedhjen:

  • imazhi i ngarkesës duhet të jetë universal (prania e shoferëve, mundësitë për instalimin e utilitareve shtesë);
  • më shumë gjasa, do të kërkohet personalizimi i initramfs.

Si bëhet kjo në zgjidhjen tonë për X5? Si bazë është zgjedhur CentOS 7. Do të realizojmë këtë hile: do të përgatisim strukturën e ardhshme të imazhit, do ta paketojmë atë në një arkiv dhe do të krijojmë initramfs, brenda të cilit do të jetë arkivi ynë i sistemit të skedarëve. Kur ngarkohet imazhi, arkivi do të zbërthehet në ndarjen e krijuar tmpfs. Kështu do të kemi një imazh minimal, por të plotë live linux me të gjitha utilitarët e nevojshëm, i përbërë vetëm nga dy skedarë: vmkernel dhe 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

Pra, ne kemi specifikuar bërthamën dhe initramfs, të cilat duhet të ngarkohen. Si rezultat në këtë fazë, duke ngarkuar imazhin përkohësor linux nëpërmjet PXE, do t'i kemi konsolën e OS.

Shkëlqyeshëm, por tani duhet t'i kalojmë kontrollin “automatikës” tonë.

Kjo mund të bëhet kështu.

Le të supozojmë, pas ngarkimit të imazhit, planifikojmë të kalojmë kontrollin në skenarin mount.sh.
Do ta përfshijmë skriptin mount.sh në autostart. Për këtë do të kërkohet modifikimi i initramfs:

  • të zbërthehet initramfs (nëse përdorim variantin e lartpërmendur të initramfs, kjo nuk kërkohet)
  • aktivizoni kodin në autoload që do të analizojë parametrat e kaluar përmes /proc/cmdline dhe do të kalojë menaxhimin përpara;
  • pakoni initramfs.

Shënim. Në rastin e X5 toolkit, menaxhimi i boot-it kalon në scriptin /opt/x5/toolkit/bin/hook.sh с помощью override.conf в getty tty1 (ExecStart=…)

Pra, ngarkohet imazhi, në të cilin në autoload fillon scripti mount.sh. Më pas, scripti mount.sh gjatë ekzekutimit analizon parametrat e kaluar (script_cmd=) dhe nis programin/scriptin e nevojshëm.

etiketa toolkit-auto
kernel …
shtoni … nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh

etiketa toolkit-shell
kernel …
shtoni … nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash

Provisionimi Bare-Metal me duar, ose Përgatitja Automatike e Serverëve nga E para

Këtu në anën e majtë është menuja PXE, në të djathtën – skema e kalimit të menaxhimit.

Ne e kuptuam kalimin e menaxhimit. Në varësi të zgjedhjes në menu PXE, ekzekutohet ose scripti i konfigurimit automatik, ose konsola për debug.

Në rastin e konfigurimit automatik, merren direktoret e nevojshme nga serveri instalues, të cilat përmbajnë:

  • scriptet;
  • shabllonat e ruajtura BIOS/UEFI të serverave të ndryshëm;
  • firmware;
  • utilitat për serverat;
  • loget.

Më pas, scripti mount.sh kalon menaxhimin te scripti master-install.sh nga direktoria me scriptet.

Struktura e scriptëve (rendin e ekzekutimit të tyre) duket më pak kështu:

  • master-install
  • sharefunctions (funksione të përbashkëta)
  • info (dërgo informacionin)
  • modelet (konfigurimi i parametrave të instalimit bazuar në modelin e serverit)
  • prepare_utils (instalimi i utilitareve të nevojshme)
  • fwupdate (përditësimi i firmware)
  • diag (diagnostika elementare)
  • biosconf (konfigurimi i BIOS/UEFI)
  • clockfix (konfigurimi i kohës në pllakën kryesore)
  • srmconf (konfigurimi i ndërfaqes së distancës)
  • raidconf (konfigurimi i volumeve logjikë)

një nga:

  • preinstall (transferimi i kontrollit te instaluesi i OS ose hipervizori, për shembull ESXi)
  • merged-install (nisja e menjëhershme e nxjerrjes së imazhit)

Tani e dimë:

  • si të ngarkojmë serverin përmes PXE;
  • si të transferojmë kontrollin në skriptin tonë.


Le të vazhdojmë. Këto pyetje janë bërë aktuale:

  • Si ta identifikojmë serverin që po përgatitim?
  • Me cilat utilitare dhe si ta konfiguroni serverin?
  • Si të marrim konfigurimet për një server të caktuar?

Si ta identifikojmë serverin që po përgatitim?

Kjo është e thjeshtë – DMI:

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

Këtu ka gjithçka që ju nevojitet: furnizuesi, modeli, numri i seri. Nëse nuk jeni të sigurt se ky informacion është i pranishëm në të gjitha serverat, mund t'i identifikoni ata përmes adresës MAC. Ose me të dyja mënyrat në të njëjtën kohë, nëse furnizuesit e serverëve janë të ndryshëm dhe në disa modele informacioni për numrin e seri thjesht mungon.

Në bazë të informacionit të marrë, montohen dosjet rrjetësore me serverin e instalimit dhe ngarkohet gjithçka e nevojshme (utilitetet, firmware dhe të tjera).

Me cilat utilitare dhe si ta konfiguroni serverin?

Do të jap utilitete për Linux për disa prodhues. Të gjitha utilitetet janë të disponueshme në faqet zyrtare të furnizuesve.

Provisionimi Bare-Metal me duar, ose Përgatitja Automatike e Serverëve nga E para

Me firmware, mendoj se gjithçka është e qartë. Zakonisht ato ofrohen si skedarë ekzekutiv të paketuar. Skedari ekzekutiv kontrollon procesin e përditësimit të firmware dhe raporton kodin e kthejes.

BIOS dhe IPMI zakonisht konfigurohen përmes shablloneve. Nëse është e nevojshme, shablloni mund të redaktohet para ngarkesës.

Utilitetet RAID të disa furnizuesve gjithashtu mund të konfigurohen sipas shabllonit. Nëse kjo nuk është e mundur, do të duhet të shkruani një skript konfigurimi.

Rendi i konfigurimit të RAID zakonisht është si në vijim:

  • Kërkojmë konfigurimin aktual.
  • Nëse tashmë ka grupe logjikë – i fshijmë.
  • Shikojmë se cilët disqe fizikë janë të pranishëm dhe sa prej tyre janë.
  • Krijojmë një grup të ri logjik. Ndërpresim procesin në rast të një gabimi.

Si të marrim konfigurimet për një server të caktuar?

Le të supozojmë se konfigurimet e të gjitha serverëve do të ruhen në serverin e instalimit. Në këtë rast, për të përgjigjur mbi pyetjen tonë, duhet së pari të vendosim: si do të transferojmë konfigurimet në serverin e instalimit.

Në fillim, mjafton të përdoren skedarë tekstualë. (Në të ardhmen, mund të përdoret skedari tekstual si një mënyrë rezervë për transferimin e konfigurimeve).

Mund të "ndajmë" skedarin tekstual në serverin e instalimit. Dhe ta shtojmë montimin e tij në skenarin mount.sh.

Rreshtat do të jenë, për shembull, të këtij lloji:

Këta rreshta do të transferohen në skedarin nga inxhinieri nga makina e tij të punës. Dhe më tej, gjatë konfigurimit të serverit, parametrat për serverin e caktuar do të lexohen nga skedari.

Por, në perspektivë, është më mirë të angazhohet një Baza të Dhënash për ruajtjen e konfigurimeve, gjendjeve dhe regjistrave të instalimeve të serverëve.

Sigurisht, nuk mjafton vetëm një DB, dhe do të jetë e nevojshme të krijohet një pjesë klienti, me anë të së cilës do të transmetohen konfigurimet në bazën e të dhënave. Të realizosh këtë është më e komplikuar në krahasim me një skedar tekstual, por, në të vërtetë, gjithçka nuk është aq e vështirë sa duket. Versioni minimal i klientit, i cili do të transmetojë thjesht të dhënat në DB, është plotësisht e mundur të shkruhet vetë. Dhe për të përmirësuar programin e klientit më vonë, mund të punosh në mënyrë të lirë (raportet, printimi i etiketa, dërgimi i njoftimeve dhe çdo gjë tjetër që të vie në mendje).

Duke bërë një kërkesë të caktuar në bazën e të dhënave dhe duke treguar numrin serial të serverit, do të marrim parametrat e nevojshëm për konfigurimin e serverit.

Plus, nuk do të na nevojitet të shpikim bllokime për aksesin e përbashkët, siç ndodh me skedarin tekstual.

Revista e konfigurimit mund të shkruhet në DB në të gjitha fazat dhe procesi i instalimit të kontrollohet përmes ngjarjeve dhe flagjeve të fazave të përgatitjes.

Tani e dimë se si:

  • të ngarkojmë serverin përmes PXE;
  • të transmetojmë kontrollin në skriptin tonë;
  • të identifikojmë serverin që duhet përgatitur sipas numrit serial;
  • të konfigurojmë serverin me mjetet përkatëse;
  • të transmetoni cilësimet në DB të serverit të instalimit përmes pjesës klient.

E kuptuam se si:

  • serveri i instaluar merr cilësimet e nevojshme nga DB;
  • të gjithë përparimet e përgatitjes regjistrohen në DB (loge, ngjarje, flamuj fazash).

Çfarë ndodh me llojet e ndryshme të softuerit që instalohet? Si të instaloni hipervizorin, të kopjoni VM-në dhe të konfiguroni të gjitha këto?

Në rast të shpërndarjes së imazhit të sistemit të skedarëve (linux) në hardware, gjithçka është mjaft e thjeshtë:

  • Pas konfigurimit të të gjitha komponentëve të serverit, shpërndajmë imazhin.
  • Instalojmë bootloader-in grub.
  • Kryejmë chroot dhe konfigurojmë gjithçka që nevojitet.

Si të kaloni kontrollin te instaluesi i OS (për shembull, ESXi).

  • Organizojmë kalimin e kontrollit nga skenari ynë te instaluesi i hipervizorit përmes skedarit të përgjigjeve automatike (kickstart):
  • Fshijmë ndarjet aktuale në disk.
  • Krijojmë një ndarje prej 500MB.
  • E shënojmë atë si ndarje boot.
  • Formatojmë në FAT32.
  • Kopjojmë skedarët instalues të ESXi në rrënjën e saj.
  • Instalojmë syslinux.
  • Kopjojmë syslinux.cfg në /syslinux/

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

  • Kopjojmë mboot.c32 në /syslinux.
  • Në boot.cfg duhet të jetë kernelopt=ks=ftp:///ks_esxi.cfg
  • Rinisen serverin.

Pas rivendosjes së serverit, instaluesi i ESXi do të ngarkohet nga disku i tij i fortë. Të gjitha skedarët e nevojshëm të instaluesit do të ngarkohen në memorie dhe më pas do të fillojë instalimi i ESXi, në përputhje me skedarin e specifikuar të përgjigjeve automatike.

Do të paraqes disa rreshta nga skedari i përgjigjeve automatike ks_esxi.cfg:

%firstboot --interpreter=busybox
…
# merrim numrin serial

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

# merrim IP

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

# lidhemi NFS serverin e instalimit

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

# kopjojme konfigurimet përkohshme të ssh, për përdorimin e klientit ssh

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

# kopjojme ovftool, për deployimin e VM tani, plus mund të përdoret më vonë

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

# deployojme VM

/vmfs/volumes/datastore1/ovftool/tools/ovftool --acceptAllEulas --noSSLVerify --datastore=datastore1 --name=VM1 /vmfs/volumes/nfsshare1/VM_T/VM1.ova vi://root:esxi_password@127.0.0.1
/vmfs/volumes/datastore1/ovftool/tools/ovftool --acceptAllEulas --noSSLVerify --datastore=datastore1 --name=VM2 /vmfs/volumes/nfsshare1/VM_T/VM2.ova vi://root:esxi_password@127.0.0.1

# marrim rreshtin me configurimet e serverit tonë

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
...
# gjenerojme skenarin e konfigurimit të rrjetit

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

# vendosim parametrin guestinfo.esxihost.id, duke treguar numrin serial

echo "guestinfo.esxihost.id = "$SYSSN"" >> /vmfs/volumes/datastore1/VM1/VM1.vmx
echo "guestinfo.esxihost.id = "$SYSSN"" >> /vmfs/volumes/datastore1/VM2/VM2.vmx
...
# përditësojmë informacionin në bazë

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 ...""

# kthejm konfigurimet e SSH

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

# konfigurimin e rrjetit dhe rindezja

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

Në këtë fazë, është vendosur dhe konfiguruar hipervizori, janë kopjuar makinat virtuale.

Si të konfigurojmë tani makinat virtuale?

Ne bëmë një truk të vogël: gjatë instalimit, kemi vendosur parametrin guestinfo.esxihost.id = "$SYSSN" në skedarin VM1.vmx, ku kemi treguar numrin serial të serverit fizik.

Tani, pas nisjes, makina virtuale (me paketën vmware-tools të instaluar) mund të ketë akses në këtë parameter:

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

Domethënë, VM do të jetë në gjendje të identifikojë veten (e di numrin serial të hostit fizik), të bëjë një kërkesë në DB të serverit të instalimit dhe të marrë parametrat që duhet të konfigurohen. Të gjitha këto do të formohen në një skript, i cili duhet të startohet automatikisht gjatë nisjes së guestos vm (por vetëm një herë: RunOnce).

Tani e dimë se si:

  • të ngarkojmë serverin përmes PXE;
  • të transmetojmë kontrollin në skriptin tonë;
  • të identifikojmë serverin që duhet përgatitur sipas numrit serial;
  • konfigurojnë serverin me utilitetet përkatëse;
  • të transmetojnë konfigurimet në DB të serverit të instalimit me anë të pjesës klient;
  • të konfigurojnë lloje të ndryshme të P.O., duke përfshirë shpërndarjen e hipervizorit esxi dhe konfigurimin e makinave virtuale (dhe të gjithë automatikisht).

E kuptuam se si:

  • serveri i instaluar merr cilësimet e nevojshme nga DB;
  • të gjithë përparimet e përgatitjes regjistrohen në DB (loge, ngjarje, flamuj fazash).


Përfundimi:

Mendoj se unikësia e këtij zgjidhjeje qëndron në fleksibilitetin, thjeshtësinë, mundësitë dhe universialitetin e saj.

Ju lutem, shkruani në komentet se çfarë mendoni.

Burimi: habr.com

Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë 🔥 Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë | ProHoster