Dzichitireni nokha Bare-Metal Provisioning, kapena kukonzekera Ma seva kuyambira poyambira

Moni, ndine Denis ndipo imodzi mwazinthu zomwe ndimachita ndikukhazikitsa njira zothetsera mavuto pa X5. Lero ndikufuna kugawana nanu momwe mungakhazikitsire makina okonzekera seva pogwiritsa ntchito zida zopezeka pagulu. Malingaliro anga, iyi ndi njira yosangalatsa, yosavuta komanso yosinthika.

Dzichitireni nokha Bare-Metal Provisioning, kapena kukonzekera Ma seva kuyambira poyambira

Pokonzekera tikutanthauza: tembenuzani seva yatsopano kuchokera m'bokosilo kukhala seva yokhazikika ndi OS. Linux kapena ndi ESXi hypervisor (kutumiza kwa ma seva a Windows sikukukambidwa m'nkhaniyi).

Migwirizano:

  • ma seva - ma seva omwe amafunika kukonzedwa.
  • seva yoyika ndiye seva yayikulu yomwe imapereka njira yonse yokonzekera pamaneti.

N'chifukwa chiyani makina amafunikira?

Tiyerekeze kuti pali ntchito: kukonzekera ma seva kuyambira pachiyambi, pachimake - 30 patsiku. Ma seva a opanga ndi mitundu yosiyanasiyana, machitidwe osiyanasiyana amatha kukhazikitsidwa pa iwo, ndipo akhoza kukhala kapena alibe hypervisor.

Ndi ntchito ziti zomwe zikuphatikizidwa pakukhazikitsa (popanda zochita zokha):

  • kulumikiza kiyibodi, mbewa, kuwunika kwa seva;
  • sinthani BIOS, RAID, IPMI;
  • sinthani gawo la firmware;
  • tumizani chithunzi cha fayilo (kapena ikani hypervisor ndikukopera makina enieni);

Zindikirani. Kapenanso, kutumiza kwa OS kumatheka kudzera pakuyika ndi fayilo yoyankha yokha. Koma izi sizidzakambidwa m'nkhaniyi. Ngakhale muwona pansipa kuti kuwonjezera magwiridwe antchito sikovuta.

  • sintha magawo a OS (dzina la alendo, IP, ndi zina).

Ndi njirayi, makonda omwewo amachitidwa motsatizana pa seva iliyonse. Kuchita bwino kwa ntchito yotereyi kumakhala kochepa kwambiri.

Chofunikira cha automation ndikuchotsa kutenga nawo gawo kwa anthu pakukonzekera kwa seva. Momwe ndingathere.

Zochita zokha zimachepetsa kutsika pakati pa ntchito ndikupangitsa kuti zitheke kupereka ma seva angapo nthawi imodzi. Kuthekera kwa zolakwika chifukwa cha zinthu zaumunthu kumachepetsedwanso kwambiri.

Dzichitireni nokha Bare-Metal Provisioning, kapena kukonzekera Ma seva kuyambira poyambira

Kodi ma seva amasinthidwa bwanji?

Tiyeni tiwunike magawo onse mwatsatanetsatane.

Muli ndi seva ya Linux yomwe mumagwiritsa ntchito ngati seva yoyika PXE. Ntchito zimayikidwa ndikusinthidwa pa izo: DHCP, TFTP.

Chifukwa chake, timayambitsa seva (yomwe iyenera kukonzedwa) kudzera pa PXE. Tikumbukire momwe zimagwirira ntchito:

  • Network boot imasankhidwa pa seva.
  • Seva imanyamula PXE-ROM ya netiweki khadi ndikulumikizana ndi seva yoyika kudzera pa DHCP kuti mupeze adilesi ya netiweki.
  • Seva yoyika DHCP imatulutsa adilesi, komanso malangizo oti mutsitsenso kudzera pa PXE.
  • Seva imanyamula bootloader ya network kuchokera pa seva yoyika kudzera pa PXE, kutsitsa kwina kumachitika molingana ndi fayilo ya kasinthidwe ya PXE.
  • Boot imachitika potengera magawo omwe adalandira (kernel, initramfs, mount point, squashfs image, etc.).

Zindikirani. Nkhaniyi ikufotokoza kuyambika kwa PXE kudzera mu BIOS mode. Pakadali pano, opanga akugwiritsa ntchito UEFI bootmode. Kwa PXE, kusiyana kudzakhala mu kasinthidwe ka seva ya DHCP ndi kukhalapo kwa bootloader yowonjezera.

Tiyeni tiwone chitsanzo cha kasinthidwe ka seva ya PXE (menyu ya pxelinux).

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

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

Kernel ndi initramfs pa siteji iyi ndi chithunzi cha Linux chapakati, mothandizidwa ndi zomwe kukonzekera kwakukulu ndi kasinthidwe ka seva kudzachitika.

Monga mukuonera, bootloader imadutsa magawo ambiri ku kernel. Zina mwazigawozi zimagwiritsidwa ntchito ndi kernel yokha. Ndipo tikhoza kugwiritsa ntchito zina pa zolinga zathu. Izi zidzakambidwa pambuyo pake, koma pakadali pano mutha kungokumbukira kuti magawo onse odutsa adzakhalapo pazithunzi zapakatikati za Linux kudzera /proc/cmdline.

Kodi ndingazipeze kuti, kernel ndi initramfs?
Monga maziko, mutha kusankha kugawa kulikonse kwa Linux. Zomwe timasamala posankha:

  • chithunzi cha boot chiyenera kukhala chapadziko lonse (kukhalapo kwa madalaivala, kukwanitsa kukhazikitsa zina zowonjezera);
  • Mwachidziwikire, mudzafunika kusintha ma initramfs.

Kodi izi zimachitika bwanji mu yankho lathu la X5? CentOS 7 idasankhidwa kukhala maziko.Tiyeni tiyese chinyengo chotsatirachi: konzani chithunzithunzi chamtsogolo, chinyamuleni muzosungirako ndikupanga initramfs, mkati mwake mudzakhala fayilo yathu yosungirako mafayilo. Mukatsitsa chithunzicho, zosungidwazo zidzakulitsidwa kugawo lopangidwa la tmpfs. Mwanjira iyi tipeza chithunzi chochepa, koma chodzaza ndi zonse za linux ndi zofunikira zonse, zomwe zili ndi mafayilo awiri okha: vmkernel ndi 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

Chifukwa chake tafotokoza kernel ndi initramfs zomwe ziyenera kukwezedwa. Zotsatira zake, pakadali pano, pokweza chithunzi chapakatikati cha linux kudzera pa PXE, tidzalandira cholumikizira cha OS.

Zabwino, koma tsopano tiyenera kusamutsa ulamuliro ku "automation" yathu.

Zitha kuchitika motere.

Tiyerekeze kuti titatha kutsitsa chithunzichi, tikukonzekera kusamutsa kuwongolera ku script ya mount.sh.
Tiyeni tiphatikizepo mount.sh script mu autorun. Kuti muchite izi muyenera kusintha initramfs:

  • unpack initramfs (ngati tigwiritsa ntchito initramfs yomwe ili pamwambapa, izi sizofunikira)
  • kuphatikiza kachidindo koyambira komwe kusanthula magawo omwe adadutsa /proc/cmdline ndikuwongoleranso kusamutsa;
  • paketi initramfs.

Zindikirani. Pankhani ya zida za X5, zowongolera zimasamutsidwa ku script /opt/x5/toolkit/bin/hook.sh с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ override.conf Π² getty tty1 (ExecStart=…)

Kotero, chithunzicho chimayikidwa, momwe mount.sh script imayambira pa autorun. Kenako, mount.sh script imasanthula magawo omwe adadutsa (script_cmd=) panthawi yakupha ndikuyambitsa pulogalamu/script yofunikira.

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

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

Dzichitireni nokha Bare-Metal Provisioning, kapena kukonzekera Ma seva kuyambira poyambira

Apa kumanzere pali menyu ya PXE, kumanja pali chojambula chowongolera.

Tinaganiza kusintha kwa ulamuliro. Kutengera kusankha kwa menyu ya PXE, mwina script yosinthira yokha kapena chowongolera chowongolera chimayambitsidwa.

Pankhani ya kasinthidwe kodziwikiratu, zolemba zofunika zimayikidwa kuchokera pa seva yoyika, yomwe ili ndi:

  • zolemba;
  • zosungidwa za BIOS/UEFI za ma seva osiyanasiyana;
  • firmware;
  • zofunikira za seva;
  • mitengo

Kenako, script ya mount.sh imasamutsa chiwongolero kupita ku master-install.sh script kuchokera pa script directory.

Mtengo wa script (madongosolo omwe amakhazikitsidwa) umawoneka motere:

  • master-install
  • sharefunctions (ntchito zogawana)
  • chidziwitso (chidziwitso)
  • zitsanzo (kukhazikitsa magawo oyika kutengera mtundu wa seva)
  • ready_utils (kukhazikitsa zofunikira)
  • fwupdate (kusintha kwa firmware)
  • diag (zofufuza zoyambirira)
  • biosconf (zokonda za BIOS/UEFI)
  • clockfix (kukhazikitsa nthawi pa bolodi la amayi)
  • srmconf (kusintha kwa mawonekedwe akutali)
  • raidconf (kukonza ma voliyumu omveka)

imodzi mwa:

  • preinstall (kutumiza kuwongolera ku OS kapena oyika hypervisor, monga ESXi)
  • merged-install (chiyambi chotsegula chithunzicho)

Tsopano tikudziwa:

  • momwe mungayambitsire seva kudzera pa PXE;
  • momwe mungasinthire zowongolera ku script yanu.


Tiyeni tipitilize. Mafunso otsatirawa adakhala ofunikira:

  • Kodi tingadziwe bwanji seva yomwe tikukonzekera?
  • Ndi zida ziti komanso momwe mungasinthire seva?
  • Kodi mungapeze bwanji zokonda pa seva inayake?

Kodi tingadziwe bwanji seva yomwe tikukonzekera?

Ndi zophweka - DMI:

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

Chilichonse chomwe mungafune chili pano: wogulitsa, chitsanzo, nambala yachinsinsi. Ngati simukutsimikiza kuti izi zilipo m'maseva onse, mutha kuwazindikira ndi adilesi yawo ya MAC. Kapena m'njira zonse ziwiri panthawi imodzi, ngati ogulitsa seva ali osiyana ndipo pazitsanzo zina palibe chidziwitso chokhudza nambala ya serial.

Kutengera zomwe zalandilidwa, zikwatu zapaintaneti zimayikidwa kuchokera pa seva yoyika ndipo zonse zofunika zimakwezedwa (zothandizira, firmware, ndi zina).

Ndi zida ziti komanso momwe mungasinthire seva?

Ndipereka zida za Linux kwa opanga ena. Zothandizira zonse zimapezeka patsamba lovomerezeka la ogulitsa.

Dzichitireni nokha Bare-Metal Provisioning, kapena kukonzekera Ma seva kuyambira poyambira

Ndi firmware, ndikuganiza zonse ndi zomveka. Nthawi zambiri amabwera ngati mafayilo ophatikizidwa. Fayilo yomwe ingagwiritsidwe ntchito imayang'anira ndondomeko yosinthira firmware ndikuwonetsa nambala yobwerera.

BIOS ndi IPMI nthawi zambiri zimakonzedwa kudzera mu ma templates. Ngati ndi kotheka, template akhoza kusinthidwa pamaso otsitsira.

Zida za RAID zochokera kwa ogulitsa ena zitha kukhazikitsidwanso pogwiritsa ntchito template. Ngati sizili choncho, ndiye kuti muyenera kulemba script yosinthira.

Njira yokhazikitsira RAID nthawi zambiri imakhala motere:

  • Tikupempha masinthidwe apano.
  • Ngati pali zida zomveka kale, timazichotsa.
  • Tiyeni tiwone zomwe ma disks omwe alipo komanso kuti alipo angati.
  • Pangani gulu latsopano lomveka. Timasokoneza ndondomekoyi pakachitika cholakwika.

Kodi mungapeze bwanji zokonda pa seva inayake?

Tiyerekeze kuti zosintha za ma seva onse zidzasungidwa pa seva yoyika. Pankhaniyi, kuti tiyankhe funso lathu, choyamba tiyenera kusankha momwe tingasamutsire makonda ku seva yoyika.

Poyamba, mutha kupitilira ndi mafayilo amawu. (M'tsogolomu, mungafune kugwiritsa ntchito fayilo ngati njira yobwereranso pakusamutsa makonda.)

Mutha "kugawana" fayilo yamawu pa seva yoyika. Ndipo onjezani phiri lake ku mount.sh script.

Mizere, mwachitsanzo, idzawoneka motere:

<serial number> <hostname> <subnet>

Mizere iyi idzasamutsidwa ku fayilo ndi injiniya kuchokera ku makina ake ogwira ntchito. Ndiyeno, pokhazikitsa seva, magawo a seva inayake adzawerengedwa kuchokera pafayilo.

Koma, m'kupita kwa nthawi, ndi bwino kugwiritsa ntchito database kusunga zoikamo, mayiko ndi zipika za makhazikitsidwe a seva.

Zachidziwikire, database yokha siyokwanira, ndipo muyenera kupanga gawo la kasitomala mothandizidwa ndi zomwe makonda adzasamutsidwira ku database. Izi ndizovuta kukhazikitsa poyerekeza ndi fayilo yamawu, koma kwenikweni, zonse sizovuta momwe zimawonekera. Ndizotheka kulemba mtundu wochepera wa kasitomala womwe ungangosamutsa deta ku database nokha. Ndipo m'tsogolomu zidzatheka kukonza pulogalamu ya kasitomala mumayendedwe aulere (malipoti, zolemba zosindikiza, kutumiza zidziwitso, ndi zina zomwe zimabwera m'maganizo).

Mwa kupanga pempho lachindunji ku database ndikutchula nambala ya seva, tidzalandira magawo ofunikira pakukonzekera seva.

Komanso, sitidzafunika kubwera ndi maloko kuti tipeze nthawi imodzi, monga momwe zimakhalira ndi fayilo.

Titha kulemba chipika chosinthira ku database pamagawo onse ndikuwongolera njira yoyikamo kudzera muzochitika ndi mbendera za magawo okonzekera.

Tsopano tikudziwa momwe:

  • yambitsani seva kudzera pa PXE;
  • kusamutsa ulamuliro ku script yathu;
  • zindikirani seva yomwe ikuyenera kukonzedwa ndi nambala yake ya seri;
  • sinthani seva pogwiritsa ntchito zofunikira zoyenera;
  • sinthani makonda ku database ya seva yoyika pogwiritsa ntchito gawo la kasitomala.

Tinapeza bwanji:

  • seva yoyika imalandira zoikamo zofunika kuchokera ku database;
  • zonse zokonzekera zimalembedwa mu nkhokwe (zolemba, zochitika, mbendera za siteji).

Nanga bwanji mitundu yosiyanasiyana ya mapulogalamu omwe mumayika? Momwe mungayikitsire hypervisor, kukopera VM ndikuyikonza zonse?

Pankhani yotumiza chithunzi cha fayilo (linux) ku hardware, zonse ndizosavuta:

  • Pambuyo pokhazikitsa zigawo zonse za seva, timayika chithunzicho.
  • Ikani grub bootloader.
  • Timakonza ndi kukonza zonse zofunika.

Momwe mungasinthire kuwongolera kwa okhazikitsa Os (pogwiritsa ntchito ESXi monga chitsanzo).

  • Timakonza kusamutsa kuwongolera kuchokera pa script kupita kwa oyika hypervisor pogwiritsa ntchito fayilo yoyankha yokha (kickstart):
  • Timachotsa magawo omwe alipo pa disk.
  • Pangani magawo okhala ndi kukula kwa 500MB.
  • Timayika chizindikiro ngati choyambira.
  • Fomu ya FAT32.
  • Timatengera owona ESXi unsembe muzu.
  • Kukhazikitsa syslinux.
  • Lembani syslinux.cfg ku /syslinux/

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

  • Koperani mboot.c32 ku /syslinux.
  • Boot.cfg iyenera kukhala ndi kernelopt=ks=ftp:// /ks_esxi.cfg
  • Timayambiranso seva.

Seva ikayambiranso, okhazikitsa ESXi adzatsitsa kuchokera pa hard drive ya seva. Mafayilo onse oyika ofunikira amasungidwa kukumbukira ndiyeno kuyika kwa ESXi kudzayamba, molingana ndi fayilo yoyankhidwa yokha.

Nayi mizere ingapo kuchokera pa fayilo ya 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

Panthawiyi, hypervisor imayikidwa ndikukonzedwa, ndipo makina enieni amakopera.

Kodi mungakonze bwanji makina enieni tsopano?

Tidanyenga pang'ono: pakukhazikitsa timayika parameter guestinfo.esxihost.id = "$SYSSN" mu fayilo ya VM1.vmx ndikuwonetsa nambala ya seri ya seva yomwe ili mmenemo.

Tsopano, mutayamba, makina enieni (omwe ali ndi pulogalamu ya vmware-Tools) atha kupeza izi:

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

Ndiko kuti, VM idzatha kudzizindikiritsa yokha (imadziwa nambala yachinsinsi ya wolandira thupi), funsani ku database ya seva yoyika ndikulandira magawo omwe akuyenera kukonzedwa. Zonsezi zimaphatikizidwa kukhala script, yomwe iyenera kukhazikitsidwa yokha guestos vm ikayamba (koma kamodzi: RunOnce).

Tsopano tikudziwa momwe:

  • yambitsani seva kudzera pa PXE;
  • kusamutsa ulamuliro ku script yathu;
  • zindikirani seva yomwe ikuyenera kukonzedwa ndi nambala yake ya seri;
  • sinthani seva pogwiritsa ntchito zofunikira zoyenera;
  • sinthani makonda ku database ya seva yoyika pogwiritsa ntchito gawo la kasitomala;
  • sinthani mapulogalamu osiyanasiyana, kuphatikiza kutumiza esxi hypervisor ndikusintha makina enieni (zonse zokha).

Tinapeza bwanji:

  • seva yoyika imalandira zoikamo zofunika kuchokera ku database;
  • zonse zokonzekera zimalembedwa mu nkhokwe (zolemba, zochitika, mbendera za siteji).


Pansi mzere:

Ndikukhulupirira kuti yankho lapaderali lili mu kusinthasintha kwake, kuphweka, luso komanso kusinthasintha.

Chonde lembani mu ndemanga zomwe mukuganiza.

Source: www.habr.com

Kuwonjezera ndemanga