Is-ku-yeel-Bixinta Bare-Birta, ama Diyaarinta otomaatiga ah ee server-yada xoqan

Salaan, waxaan ahay Denis oo mid ka mid ah meelaha aan ka shaqeeyo waa horumarinta xalalka kaabayaasha X5. Maanta waxaan jeclaan lahaa inaan kula wadaago sida aad u geyn karto nidaamka diyaarinta server-ka tooska ah ee ku saleysan aaladaha la heli karo ee dadweynaha. Fikradayda, tani waa xal xiiso leh, fudud oo dabacsan.

Is-ku-yeel-Bixinta Bare-Birta, ama Diyaarinta otomaatiga ah ee server-yada xoqan

Diyaargarow ahaan waxaan ula jeednaa: ka soo saar server cusub sanduuqa oo si buuxda u habaysan oo OS leh. Linux ama la socda ESXi hypervisor (dirista server-yada Windows lagama hadlin qodobkan).

Shuruudaha:

  • server - server-yada u baahan in la habeeyo.
  • rakibaadda server-ka waa server-ka ugu weyn ee bixiya dhammaan habka diyaarinta ee shabakada.

Waa maxay sababta otomaatiga loogu baahan yahay?

Aynu nidhaahno waxaa jira hawl: in si weyn loo diyaariyo server-yada xoqan, marka ugu sarreysa - 30 maalintii. Adeegayaasha soosaarayaasha kala duwan iyo moodooyinka, nidaamyada hawlgalka kala duwan ayaa laga yaabaa in lagu rakibo iyaga, waxaana laga yaabaa ama laga yaabaa inaanay lahayn hypervisor.

Waa maxay hawlgallada lagu soo daray habka dejinta (automation la'aan):

  • ku xidh kiiboodhka, jiirka, kormeeraha serverka;
  • habaynta BIOS, RAID, IPMI;
  • cusboonaysii qaybta firmware;
  • geyn sawirka nidaamka faylalka (ama ku rakib hypervisor oo nuqul ka samee mashiinnada farsamada);

Ogow. Taas beddelkeeda, geynta OS-gu waxay ku suuroobaysaa in lagu rakibo faylka jawaab-celinta tooska ah. Laakiin tan lagama wada hadli doono maqaalka. In kasta oo aad hoos ku arki doonto in ku darista shaqadani aanay ahayn mid adag.

  • habee xuduudaha OS (magaca martida loo yahay, IP, iwm.).

Habkan, isla goobaha ayaa si isdaba joog ah loogu sameeyaa server kasta. Waxtarka shaqadan oo kale aad buu u hooseeyaa.

Nuxurka automation-ku waa in laga takhaluso ka qaybgalka bini'aadamka ee habka diyaarinta serverka. Inta suurtogalka ah.

Automation-ku wuxuu yareeyaa wakhtiga dhimista ee u dhexeeya hawlgallada wuxuuna suurtogaliyaa in la bixiyo adeegayaal badan isku mar. Suurtagalnimada khaladaadka ay sabab u tahay arrimaha aadanaha ayaa sidoo kale aad hoos ugu dhacay.

Is-ku-yeel-Bixinta Bare-Birta, ama Diyaarinta otomaatiga ah ee server-yada xoqan

Sidee si toos ah server-yada loo habeeyey?

Aynu si faahfaahsan u falanqeyno dhammaan marxaladaha.

Waxaad haysataa server Linux ah oo aad u isticmaasho sidii PXE server-ka rakibaadda. Adeegyada ayaa lagu rakibay oo lagu habeeyay: DHCP, TFTP.

Marka, waxaan ku dhejineynaa server-ka (kaas oo u baahan in la habeeyo) anagoo adeegsanayna PXE. Aan xasuusano sida ay u shaqeyso:

  • Kabaha shabakada ayaa lagu doortay server-ka.
  • Seerfarku waxa uu raraa PXE-ROM-ka kaadhka shabkada waxa uuna la xidhiidhaa server-ka rakibaadda iyada oo loo sii marayo DHCP si uu u helo ciwaanka shabakadda.
  • Adeegga rakibaadda DHCP wuxuu soo saaraa ciwaanka, iyo sidoo kale tilmaamo lagu soo dejiyo dheeraad ah iyada oo loo sii marayo PXE.
  • Seerfarku wuxuu ka soo qaadaa bootloader-ka shabakadda ee server-ka rakibaadda iyada oo loo sii marayo PXE, raritaan dheeri ah ayaa dhacda iyadoo loo eegayo faylka qaabeynta PXE.
  • Bootku wuxuu ku dhacaa iyadoo lagu salaynayo cabbirada la helay (kernel, initramfs, mount points, image squashfs, iwm.).

Ogow. Maqaalku wuxuu qeexayaa PXE booting iyada oo loo marayo habka BIOS. Hadda, soosaarayaashu waxay si firfircoon u hirgelinayaan bootmode UEFI. Dhanka PXE, farqigu wuxuu ahaan doonaa qaabeynta serverka DHCP iyo joogitaanka bootloader dheeraad ah.

Aynu eegno tusaale qaabaynta server-ka PXE (pxelinux menu).

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

Faylka 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 iyo initramfs marxaladan waa muuqaal Linux dhexdhexaad ah, iyadoo la kaashanayo taas oo diyaarinta ugu weyn iyo qaabeynta server-ku dhici doono.

Sida aad arki karto, bootloader-ku wuxuu u gudbiyaa xuduudo badan kernel-ka. Qaybahaan qaarkood waxaa isticmaala kernel laftiisa. Qaarna waxaan u adeegsan karnaa ujeeddooyinkeenna. Tan waa laga wada hadli doonaa mar dambe, laakiin hadda waxaad xasuusan kartaa in dhammaan cabbirada la gudbiyay laga heli doono sawirka dhexe ee Linux iyada oo loo sii marayo /proc/cmdline.

Halkee baan ka heli karaa iyaga, kernel iyo initramfs?
Saldhig ahaan, waxaad dooran kartaa qaybinta Linux kasta. Waxa aanu fiiro gaar ah u yeelano marka aanu dooranayno:

  • sawirka bootku waa inuu noqdaa mid caalami ah (helitaanka darawalada, awoodda lagu rakibo agabka dheeraadka ah);
  • Inta badan, waxaad u baahan doontaa inaad habayso initramfs.

Sidee tan lagu sameeyaa xalkeena X5? CentOS 7 ayaa loo doortay aasaaska. Aynu isku dayno khiyaamadan soo socota: diyaarino qaab dhismeedka sawirka mustaqbalka, ku xidho kaydka oo samee initramfs, kaas oo uu ku jiri doono nidaamka faylkayada kaydka. Marka la shubayo sawirka, kaydka waxa lagu balaadhin doonaa qaybta tmpfs ee la abuuray. Sidan waxaan ku heli doonaa muuqaal linux ah oo ugu yar, weli buuxa oo buuxa oo leh dhammaan agabyada lagama maarmaanka ah, oo ka kooban laba fayl oo keliya: vmkernel iyo 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

Markaa waxaanu cayimnay kernel-ka iyo initramf-yada ay tahay in la raro. Natiijo ahaan, marxaladan, adoo ku dhejinaya sawirka linux dhexe ee PXE, waxaan heli doonaa qalabka loo yaqaan 'OS console'.

Way fiicantahay, laakiin hadda waxaan u baahanahay inaan ku wareejino xakamaynta "automation".

Waxaa loo samayn karaa sidan oo kale.

Aynu ka soo qaadno ka dib marka la soo dhejiyo sawirka waxaan qorsheyneynaa inaan ku wareejino xakamaynta qoraalka mount.sh.
Aynu ku darno qoraalka mount.sh autorun. Si aad tan u samayso waxaad u baahan doontaa inaad wax ka beddesho initramfs:

  • xirxiro initramfs (haddii aan isticmaalno ikhtiyaarka sare ee initramfs, tan looma baahna)
  • ku dar kood bilawga ah kaas oo lafaguri doona halbeegyada la dhex mariyey /proc/cmdline oo sii wareejin doona xakamaynta;
  • xirmo initramfs.

Ogow. Marka laga hadlayo xirmada qalabka X5, xakamaynta rarka ayaa loo wareejiyaa qoraalka /opt/x5/toolkit/bin/hook.sh с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ override.conf Π² getty tty1 (ExecStart=…)

Markaa, sawirka waa la raray, kaas oo qoraalka mount.sh uu ka bilaabmayo autorun. Marka xigta, qoraalka mount.sh wuxuu falanqeeyaa cabbirada la gudbiyay (script_cmd=) inta lagu jiro fulinta oo bilaabaya barnaamijka/qoraalka lagama maarmaanka ah.

qalabka sumadda -baabuur
kernel...
lifaaq... nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh

qalabka sumadda -qolof
kernel...
lifaaq... nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash

Is-ku-yeel-Bixinta Bare-Birta, ama Diyaarinta otomaatiga ah ee server-yada xoqan

Halkan dhanka bidix waxaa ku yaal liiska PXE, dhanka midigna waa jaantuska wareejinta.

Waxaan ogaanay wareejinta xakamaynta. Iyada oo ku xidhan doorashada menu-ka PXE, mid ka mid ah qoraalka habaynta otomaatiga ah ama qalabka wax-ka-beddelka ayaa la bilaabay.

Xaaladda qaabeynta otomaatiga ah, hagaha lagama maarmaanka ah ayaa lagu rakibay server-ka rakibaadda, kaas oo ka kooban:

  • qoraallada;
  • Hababka BIOS/UEFI ee la keydiyay ee server-yada kala duwan;
  • firmware;
  • adeegyada adeegaha;
  • qoryo

Marka xigta, qoraalka mount.sh wuxuu u wareejinayaa xakamaynta qoraalka master-install.sh ee hagaha qoraalka.

Geedka qoraalka (sida ay u kala horreeyaan) waxa ay u eeg yihiin sidan.

  • master-ku rakib
  • hawlaha wadaaga (hawlaha la wadaago)
  • macluumaadka (wax soo saarka macluumaadka)
  • moodooyinka (dejinta cabbirrada rakibaadda ee ku saleysan qaabka serverka)
  • Prepare_utils (ku rakibida agabyada lagama maarmaanka ah)
  • fwupdate (cusboonaysiinta firmware)
  • ogaanshaha (baaritaannada hoose)
  • biosconf (BIOS/UEFI settings)
  • clockfix (waqtiga ku hagaajinaya Motherboard-ka)
  • srmconf (qaabaynta interface interface fog)
  • raidconf (habaynta qiyaasaha macquulka ah)

mid ka mid ah:

  • preinstall (u wareejinta xakamaynta OS ama rakibaha hypervisor, sida ESXi)
  • merged-install (bilaw degdeg ah oo furid sawirka)

Hadda waxaan ognahay:

  • sida loo furo server-ka PXE;
  • sida loogu wareejiyo gacanta qoraalkaaga.


Aan sii wadno. Su'aalaha soo socdaa waxay noqdeen kuwo khuseeya.

  • Sidee loo aqoonsan karaa server-ka aan diyaarineyno?
  • Waa maxay adeegyada iyo sida loo habeeyo serverka?
  • Sida loo helo dejinta server gaar ah?

Sidee loo aqoonsan karaa server-ka aan diyaarineyno?

Way fududahay - DMI:

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

Wax kasta oo aad u baahan tahay waa halkan: iibiyaha, model, lambarka taxanaha. Haddii aadan hubin in macluumaadkani uu ku jiro dhammaan server-yada, waxaad ku aqoonsan kartaa cinwaankooda MAC. Ama labada siyaabood isku mar, haddii iibiyeyaasha server-yadu ka duwan yihiin iyo moodooyinka qaarkood ma jiraan wax macluumaad ah oo ku saabsan lambarka taxanaha.

Iyada oo ku saleysan macluumaadka la helay, galka shabakada waxaa lagu rakibay server-ka rakibaadda wax kasta oo lagama maarmaan ahna waa la raray (utility, firmware, iwm.).

Waa maxay adeegyada iyo sida loo habeeyo serverka?

Waxaan siin doonaa utilities Linux qaar ka mid ah soosaarayaasha. Dhammaan adeegyada la isticmaalo waxaa laga heli karaa mareegaha rasmiga ah ee iibiyeyaasha.

Is-ku-yeel-Bixinta Bare-Birta, ama Diyaarinta otomaatiga ah ee server-yada xoqan

Iyadoo firmware-ka, waxaan u maleynayaa in wax walba ay cad yihiin. Caadi ahaan waxay ku yimaadaan qaab baakadaysan oo la fulin karo. Faylka la fulin karo ayaa kantaroola habka cusboonaysiinta firmware-ka wuxuuna ka warbixiyaa koodka soo celinta.

BIOS iyo IPMI inta badan waxaa lagu habeeyaa qaab-qaabeeya. Haddii loo baahdo, template-ka waa la daabici karaa ka hor inta aan la soo dejin.

Adeegyada RAID ee iibiyaasha qaar ayaa sidoo kale lagu habayn karaa iyadoo la isticmaalayo template. Haddii tani aysan ahayn xaaladdu, markaa waa inaad qortaa qoraalka qaabeynta.

Habka dejinta RAID waa inta badan sida soo socota:

  • Waxaan codsaneynaa qaabeynta hadda.
  • Haddi ay jiraan habab macquul ah, waanu tirtirnaa.
  • Aynu eegno waxa diskooga jira iyo inta ay yihiin.
  • Samee hab cusub oo macquul ah. Waxaan joojinaa habka haddii ay dhacdo qalad.

Sida loo helo dejinta server gaar ah?

Aynu ka soo qaadno in goobaha server-yada oo dhan lagu kaydin doono server-ka rakibaadda. Xaaladdan oo kale, si aan uga jawaabno su'aashayada, waa in aan marka hore go'aan ka gaarno sida loo wareejiyo goobaha server-ka rakibaadda.

Marka hore, waxaad ku heli kartaa faylasha qoraalka. (Mustaqbalka, waxaa laga yaabaa inaad rabto inaad u isticmaasho faylka qoraalka hab dib-u-dhac ah oo wareejinta dejinta.)

Waxaad "wadaagi kartaa" faylka qoraalka ah ee server-ka rakibaadda. Oo ku dar buurteeda qoraalka buurta.sh.

Khadadka ayaa, tusaale ahaan, u eegi doona sidan:

<lambarka taxan> <hostname> <subnet>

Khadadkan waxaa faylka u wareejin doona injineerku mashiinka shaqada. Kadibna, marka la dejinayo server, cabbirada server gaar ah ayaa laga akhrin doonaa faylka.

Laakiin, muddada dheer, way fiicantahay in la isticmaalo xog-ururinta si loo kaydiyo goobaha, gobolada iyo diiwaanka rakibaadda server-ka.

Dabcan, database kaligiis kuma filna, waxaadna u baahan doontaa inaad abuurto qayb macmiil ah iyada oo la kaashanayo goobaha loo wareejin doono database-ka. Tani aad ayey u adag tahay in la fuliyo marka la barbar dhigo faylka qoraalka, laakiin dhab ahaantii, wax walba maaha mid adag sida ay u muuqato. Waa suurtogal in la qoro nooca ugu yar ee macmiilka kaas oo si fudud xogta ugu wareejin doona xogta laftaada. Iyo mustaqbalka waxay suurtogal noqon doontaa in la hagaajiyo barnaamijka macmiilka ee qaabka bilaashka ah (warbixinaha, calaamadaha daabacaadda, soo dirida ogeysiisyada, iwm. ee maskaxda ku haya).

Markaad codsi gaar ah u samayso kaydka iyo qeexida lambarka taxanaha server-ka, waxaan heli doonaa cabbirada lagama maarmaanka u ah habaynta serverka.

Intaa waxaa dheer, uma baahnid inaan la nimaadno qufullo si isku mar ah loo galo, sida kiiska faylka qoraalka ah.

Waxaan ku qori karnaa diiwaanka qaabeynta xogta dhammaan marxaladaha oo dhan waxaanan xakameyn karnaa habka rakibidda iyada oo loo marayo dhacdooyinka iyo calanka heerarka diyaarinta.

Hadda waxaan ognahay sida:

  • ku xidho serverka PXE;
  • u wareejinta xakamaynta qoraalkayaga;
  • Aqoonso server-ka u baahan in lagu diyaariyo nambarkiisa taxanaha ah;
  • u habeeyo serverka adiga oo isticmaalaya agabka ku haboon;
  • u wareejinta goobaha kaydka kaydka kaydka ee serverka adoo isticmaalaya qaybta macmiilka.

Waxaan ogaanay sida:

  • server-ka la rakibay wuxuu ka helaa goobaha lagama maarmaanka ah ee xogta;
  • dhammaan horumarka diyaargarowga waxa lagu diiwaan geliyey kaydka xogta (log, dhacdooyinka, calanka marxaladda).

Ka warran noocyada kala duwan ee software-ka aad rakibto? Sida loo rakibo hypervisor, nuqul ka samee VM oo loo habeeyo dhammaan?

Xaaladda geynta sawirka nidaamka faylka (linux) qalabka, wax walba waa sahlan yihiin:

  • Ka dib markii la dejiyo dhammaan qaybaha server-ka, waxaan geynaa sawirka.
  • Ku rakib bootloader grub
  • Waxaan roodhi doonaa oo habayn wax kasta oo loo baahan yahay.

Sida loogu wareejiyo kantaroolka rakibaha OS (iyadoo la isticmaalayo ESXi tusaale ahaan).

  • Waxaanu abaabulnaa wareejinta xakamaynta qoraalkayaga una gudbinayna rakibaha hypervisor anagoo adeegsanayna faylka jawaabta tooska ah (kickstart):
  • Waxaan tirtirnaa qaybaha hadda ee saxanka.
  • Samee qayb cabirkeedu yahay 500MB.
  • Waxaan u calaamadeynaa sidii bootable.
  • Qaabka FAT32.
  • Waxaan koobiyeynaa faylasha rakibaadda ESXi xididka.
  • Ku rakibida syslinux.
  • Ku koobbi syslinux.cfg ilaa /syslinux/

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

  • Ku koobi kara boot.c32 kuna sii /syslinux.
  • Boot.cfg waa inuu lahaadaa kernelopt=ks=ftp:/ /ks_esxi.cfg
  • Waxaan dib u kicinay server-ka.

Ka dib markii serverku dib u bilaabo, rakibaha ESXi wuxuu ka soo dejisan doonaa darawalka adag ee serverka. Dhammaan faylasha rakibayaasha lagama maarmaanka ah waxaa lagu shubi doonaa xusuusta ka dibna rakibidda ESXi ayaa bilaaban doonta, sida ku cad faylka jawaabta tooska ah ee cayiman.

Halkan waxaa ah dhowr sadar oo ka yimid faylka 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

Marxaladdan, hypervisor-ka ayaa la rakibay oo la habeeyey, iyo mashiinnada farsamada waa la koobiyeeyay.

Sidee loo habeeyaa mishiinnada farsamada gacanta hadda?

Wax yar ayaanu khiyaanay: inta lagu guda jiro rakibaadda waxaanu dejinay halbeegga guestinfo.esxihost.id = "$ SYSSN" ee faylka VM1.vmx oo aanu ku muujinnay lambarka taxanaha ah ee server-ka jireed ee ku jira.

Hadda, ka dib markaad bilowdo, mashiinka farsamada (oo leh xirmada vmware-tools) ayaa geli kara cabbirkan:

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

Taasi waa, VM waxay awood u yeelan doontaa inay iskeed isu aqoonsato (waxay garanaysaa lambarka taxanaha ah ee martigeliyaha jireed), ka codso kaydinta kaydinta server-ka oo ay hesho xuduudaha u baahan in la habeeyo. Tan waxaa lagu soo ururiyey qoraal, kaas oo si toos ah loo bilaabo marka martida vm bilaabmo (laakin hal mar: RunOnce).

Hadda waxaan ognahay sida:

  • ku xidho serverka PXE;
  • u wareejinta xakamaynta qoraalkayaga;
  • Aqoonso server-ka u baahan in lagu diyaariyo nambarkiisa taxanaha ah;
  • u habeeyo serverka adiga oo isticmaalaya agabka ku haboon;
  • u wareejinta goobaha kaydka kaydka kaydka ee serverka adoo isticmaalaya qaybta macmiilka;
  • habeeyo noocyada kala duwan ee software, oo ay ku jiraan geynta esxi hypervisor iyo habaynta mashiinada farsamada (dhammaan si toos ah).

Waxaan ogaanay sida:

  • server-ka la rakibay wuxuu ka helaa goobaha lagama maarmaanka ah ee xogta;
  • dhammaan horumarka diyaargarowga waxa lagu diiwaan geliyey kaydka xogta (log, dhacdooyinka, calanka marxaladda).


line hoose:

Waxaan rumaysanahay in kala duwanaanshaha xalkani uu ku jiro dabacsanaantiisa, fududaantiisa, awoodiisa iyo kala duwanaanshihiisa.

Fadlan ku qor faallooyinka waxaad u malaynayso.

Source: www.habr.com

Add a comment