Pêşkêşkirina Bare-Metal, an Amadekirina Otomatîk a pêşkêşkeran ji nû ve bi xwe bikin

Silav, ez Denis im û yek ji qadên çalakiya min pêşkeftina çareseriyên binesaziyê li X5 e. Îro ez dixwazim bi we re parve bikim ka hûn çawa dikarin pergalek amadekirina servera otomatîkî ya li ser bingeha amûrên berdest ên gelemperî bicîh bikin. Bi dîtina min, ev çareseriyek balkêş, hêsan û maqûl e.

Pêşkêşkirina Bare-Metal, an Amadekirina Otomatîk a pêşkêşkeran ji nû ve bi xwe bikin

Mebesta me ji amadekirinê ev e: serverek nû ji qutiyê veguherîne serverek bi tevahî mîhengkirî ya bi OS-ê. Linux an bi hîpervisorê ESXi (bicihkirina serverên Windows-ê di vê gotarê de nayê nîqaş kirin).

Mercên:

  • pêşkêşker - pêşkêşkerên ku divê bêne mîheng kirin.
  • servera sazkirinê servera sereke ye ku tevahiya pêvajoya amadekariyê li ser torê peyda dike.

Çima otomasyon hewce ye?

Ka em bibêjin peywirek heye: bi girseyî pêşkêşkeran ji sifirê amade bikin, di lûtkeyê de - rojê 30. Dibe ku serverên çêker û modelên cihêreng, pergalên xebitandinê yên cihêreng li ser wan werin saz kirin, û dibe ku hîpervisorek hebe an nebe.

Di pêvajoya sazkirinê de (bêyî otomatê) çi operasyon hene:

  • klavyeyek, mişk, çavdêr bi serverê ve girêdin;
  • BIOS, RAID, IPMI mîheng bikin;
  • nûvekirina firmware ya pêkhateyê;
  • wêneyek pergala pelê bicîh bikin (an jî hypervisor saz bikin û makîneyên virtual kopî bikin);

Not. Alternatîf, bicîhkirina OS-ê bi sazkirina bi pelê bersivek otomatîkî ve gengaz e. Lê ev dê di gotarê de neyê nîqaş kirin. Her çend hûn ê li jêr bibînin ku lê zêdekirina vê fonksiyonê ne dijwar e.

  • Parametreyên OS-ê mîheng bikin (navê mêvandar, IP, hwd.).

Bi vê nêzîkbûnê re, heman mîhengan li ser her serverê bi rêz têne kirin. Karbidestiya xebata weha pir kêm e.

Esasê otomasyonê ew e ku beşdariya mirovî ji pêvajoya amadekirina serverê derxîne. Bi qasî ku pêkan e.

Otomatî di navbera operasyonan de dema bêhnvedanê kêm dike û peydakirina gelek serveran bi hevdemî gengaz dike. Îhtîmala xeletiyên ji ber faktorên mirovî jî pir kêm dibe.

Pêşkêşkirina Bare-Metal, an Amadekirina Otomatîk a pêşkêşkeran ji nû ve bi xwe bikin

Pêşkêşker bixweber çawa têne mîheng kirin?

Ka em hemî qonaxan bi hûrgulî analîz bikin.

Hûn serverek Linux heye ku hûn wekî serverek sazkirinê ya PXE bikar tînin. Karûbar li ser wê têne saz kirin û mîheng kirin: DHCP, TFTP.

Ji ber vê yekê, em serverê (ya ku pêdivî ye ku were mîheng kirin) bi navgîniya PXE-ê vedike. Ka em bînin bîra xwe ka ew çawa dixebite:

  • Boota torê li ser serverê tê hilbijartin.
  • Pêşkêşkar PXE-ROM-a qerta torê bar dike û bi DHCP-ê bi servera sazkirinê re têkilî datîne da ku navnîşek torê bistîne.
  • Pêşkêşkara sazkirinê ya DHCP navnîşanek, û her weha rêwerzên ji bo dakêşana bêtir bi PXE derdixe.
  • Pêşkêşker bootloader torê ji servera sazkirinê bi PXE bar dike, barkirina din li gorî pelê veavakirina PXE pêk tê.
  • Boot li ser bingeha pîvanên wergirtî pêk tê (kernel, initramfs, xalên mount, wêneya squashf, hwd.).

Not. Gotar bootkirina bi PXE bi moda BIOS-ê vedibêje. Heya nuha, hilberîner bi awayekî çalak bootmode UEFI bicîh dikin. Ji bo PXE, cûdahî dê di veavakirina servera DHCP û hebûna bootloaderek din de be.

Ka em li mînakek veavakirina servera PXE (menuya pxelinux) binêrin.

Pelê 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 // переход на следующее меню

Pelê 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 û initramfs di vê qonaxê de wêneyek Linux-ya navîn e, bi arîkariya wê dê amadekirin û veavakirina sereke ya serverê pêk were.

Wekî ku hûn dikarin bibînin, bootloader gelek parametreyan ji kernelê re derbas dike. Hin ji van pîvanan ji hêla kernel bixwe ve têne bikar anîn. Û em dikarin hinekan ji bo armancên xwe bikar bînin. Ev ê paşê were nîqaş kirin, lê ji bo naha hûn tenê dikarin ji bîr mekin ku hemî pîvanên derbasbûyî dê di nav wêneya Linux-a navîn de bi navgîniya /proc/cmdline peyda bibin.

Ez dikarim wan, kernel û initramfs ji ku derê bistînim?
Wekî bingeh, hûn dikarin her belavkirina Linux hilbijêrin. Dema hilbijartina em bala xwe didinê:

  • wêneya bootê divê gerdûnî be (hebûna ajokaran, şiyana sazkirina karûbarên zêde);
  • Bi îhtîmalek mezin, hûn ê hewce bikin ku initramfs xweş bikin.

Di çareseriya me ya X5 de ev çawa tê kirin? CentOS 7 wekî bingeh hate hilbijartin. Werin em vê hîleyê biceribînin: avahiya wêneya pêşerojê amade bikin, wê di arşîvekê de pak bikin û initramfsek çêbikin, ku di hundurê wê de dê arşîva pergala pelan a me hebe. Dema ku wêneyê bar dike, arşîv dê di nav dabeşkirina tmpfs-a hatî afirandin de were berfireh kirin. Bi vî rengî em ê wêneyek linux-a zindî ya hindiktirîn, di heman demê de bêkêmasî bi hemî karûbarên pêdivî, ku tenê ji du pelan pêk tê, bistînin: vmkernel û 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

Ji ber vê yekê me kernel û initramfên ku divê werin barkirin diyar kirine. Wekî encamek, di vê qonaxê de, bi barkirina wêneya navberê ya linux bi riya PXE, em ê konsolê OS-ê bistînin.

Mezin, lê naha em hewce ne ku kontrola xwe veguhezînin "xweseriya xwe".

Dikare bi vî rengî were kirin.

Ka em bifikirin ku piştî barkirina wêneyê em plan dikin ku kontrolê veguhezînin skrîpta mount.sh.
Werin em skrîpta mount.sh di autorun de bihewînin. Ji bo vê yekê hûn hewce ne ku initramfs biguherînin:

  • initramfs vekin (heke em vebijarka initramfs ya jorîn bikar bînin, ev ne hewce ye)
  • di destpêkê de kodê vehewîne ku dê pîvanên ku di /proc/cmdline re derbas bûne analîz bike û kontrola bêtir veguhezîne;
  • pack initramfs.

Not. Di doza amûra X5 de, kontrola barkirinê li senaryoyê tê veguheztin /opt/x5/toolkit/bin/hook.sh с помощью override.conf в getty tty1 (ExecStart=…)

Ji ber vê yekê, wêne tê barkirin, ku tê de skrîpta mount.sh li autorun dest pê dike. Dûv re, skrîpta mount.sh di dema darvekirinê de pîvanên derbasbûyî (script_cmd=) analîz dike û bername/skrîpta pêwîst dide destpêkirin.

amûra labelê-auto
kernel...
pêvekirin... nfs_toolkit_script=skrîpt/mount.sh script_cmd=master-install.sh

amûra labelê-legan
kernel...
pêvekirin... nfs_toolkit_script=skrîpt/mount.sh script_cmd=/bin/bash

Pêşkêşkirina Bare-Metal, an Amadekirina Otomatîk a pêşkêşkeran ji nû ve bi xwe bikin

Li vir li milê çepê menuya PXE ye, li milê rastê diyagrama veguheztina kontrolê ye.

Me veguhertina kontrolê fehm kir. Bi bijartina menuya PXE ve girêdayî, an skrîpta veavakirina otomatîkî an jî konsolê debugkirinê tê destpêkirin.

Di doza veavakirina otomatîkî de, pelrêçayên pêwîst ji servera sazkirinê têne hilanîn, ku tê de hene:

  • scripts;
  • Şablonên BIOS/UEFI yên ji bo serverên cihêreng hatine tomar kirin;
  • firmware;
  • karûbarên serverê;
  • têketin

Dûv re, skrîpta mount.sh ji pelrêça skrîptê kontrolê vediguhêze skrîpta master-install.sh.

Dara skrîptê (fermana ku ew têne destpêkirin) bi vî rengî xuya dike:

  • master-sazkirin
  • fonksiyonên parvekirî (fonksiyonên hevpar)
  • agahî (derketina agahiyê)
  • model (sazkirina parametreyên sazkirinê li ser bingeha modela serverê)
  • amade_utils (sazkirina karûbarên pêdivî)
  • fwupdate (nûvekirina firmware)
  • teşhîs (nasîna bingehîn)
  • biosconf (mîhengên BIOS/UEFI)
  • demjimêrk (sazkirina demjimêrê li ser motherboard)
  • srmconf (veavakirina pêwendiya pêwendiya dûr)
  • raidconf (avakirina cildên mantiqî)

yek ji:

  • pêş-sazkirin (veguheztina kontrolê bo OS an sazkerê hîpervisor, wek ESXi)
  • yekbûn-sazkirin (destpêka tavilê ji pakkirina wêneyê)

Niha em dizanin:

  • Meriv çawa serverek bi PXE-ê boot dike;
  • meriv çawa kontrolê li skrîpta xwe veguhezîne.


Em berdewam bikin. Pirsên jêrîn têkildar bûn:

  • Meriv çawa servera ku em amade dikin nas dikin?
  • Kîjan karûbar û meriv çawa serverê mîheng dike?
  • Meriv çawa mîhengên ji bo serverek taybetî digire?

Meriv çawa servera ku em amade dikin nas dikin?

Ew hêsan e - DMI:

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

Her tiştê ku hûn hewce ne li vir e: firoşkar, model, jimareya rêzê. Heke hûn ne bawer in ku ev agahdarî li ser hemî serveran heye, hûn dikarin wan bi navnîşana MAC-a wan nas bikin. An jî bi her du awayan di heman demê de, heke firoşkerên serverê cûda bin û li ser hin modelan bi tenê di derheqê jimareya rêzê de agahdarî tune.

Li ser bingeha agahdariya ku hatî wergirtin, peldankên torê ji servera sazkirinê têne danîn û her tiştê pêwîst tê barkirin (bikarhêner, firmware, hwd.).

Kîjan karûbar û meriv çawa serverê mîheng dike?

Ez ê ji bo hin hilberîneran ji bo Linux-ê karûbaran peyda bikim. Hemî karûbar li ser malperên fermî yên firoşkaran hene.

Pêşkêşkirina Bare-Metal, an Amadekirina Otomatîk a pêşkêşkeran ji nû ve bi xwe bikin

Bi firmware, ez difikirim ku her tişt zelal e. Ew bi gelemperî di forma pelên darvekirî yên pakkirî de têne. Pelê darvekirî pêvajoya nûvekirina firmware kontrol dike û koda vegerê radigihîne.

BIOS û IPMI bi gelemperî bi şablonan têne mîheng kirin. Ger hewce be, şablon dikare berî dakêşanê were sererast kirin.

Karûbarên RAID-ê yên ji hin firoşkaran jî dikarin bi karanîna şablonek bêne mîheng kirin. Ger ne wusa be, wê hingê hûn neçar in ku skrîptek veavakirinê binivîsin.

Pêvajoya sazkirina RAID-ê bi gelemperî wekî jêrîn e:

  • Em veavakirina heyî daxwaz dikin.
  • Ger jixwe rêzikên mentiqî hebin, em wan jê dikin.
  • Ka em binihêrin ka dîskên fizîkî çi ne û çend hene.
  • Rêzek mentiqî ya nû biafirînin. Di rewşeke xelet de em pêvajoyê qut dikin.

Meriv çawa mîhengên ji bo serverek taybetî digire?

Ka em bihesibînin ku mîhengên hemî pêşkêşkeran dê li ser servera sazkirinê werin hilanîn. Di vê rewşê de, ji bo bersiva pirsa me, divê em pêşî biryar bidin ka meriv çawa mîhengan veguherîne servera sazkirinê.

Di destpêkê de, hûn dikarin bi pelên nivîsê re bibin. (Di pêşerojê de, dibe ku hûn bixwazin pelek nivîsê wekî rêbazek paşverû ji bo veguheztina mîhengan bikar bînin.)

Hûn dikarin pelek nivîsê li ser servera sazkirinê "parve bikin". Û çîyayê wê li skrîpta mount.sh zêde bike.

Ji bo nimûne, rêz dê bi vî rengî xuya bikin:

<hejmara rêzê> <navê mêvandar> <subnet>

Van rêzan dê ji hêla endezyar ve ji makîneya wî ya xebatê veguhezînin dosyayê. Û dûv re, dema ku serverek saz dike, pîvanên ji bo serverek taybetî dê ji pelê werin xwendin.

Lê, di demek dirêj de, çêtir e ku meriv databasek bikar bîne da ku mîheng, rewş û têketinên sazkirinên serverê hilîne.

Bê guman, databasek tenê ne bes e, û hûn ê hewce bikin ku beşek xerîdar bi arîkariya kîjan mîhengan veguhezînin databasê biafirînin. Pêkanîna vê yekê li gorî pelek nivîsê dijwartir e, lê bi rastî, her tişt ne ew qas ku xuya dike ne dijwar e. Pir mimkun e ku meriv guhertoyek hindiktirîn a xerîdar binivîsîne ku dê bi xwe daneyan veguhezîne databasê. Û di pêşerojê de dê gengaz be ku bernameya xerîdar di moda belaş de (rapor, çapkirina etîketan, şandina agahdariyan, hwd. ya ku tê hişê xwe) baştir bike.

Bi kirina daxwazek taybetî ji databasê re û destnîşankirina jimareya rêzeya serverê, em ê ji bo mîhengkirina serverê pîvanên pêwîst bistînin.

Zêdeyî, em ê ne hewce ne ku ji bo gihîştina hevdem, wekî ku di dosyayek nivîsê de ye, kilît peyda bikin.

Em dikarin di hemî qonaxan de qeyda veavakirinê li databasê binivîsin û bi bûyer û alayên qonaxên amadekariyê ve pêvajoya sazkirinê kontrol bikin.

Niha em dizanin çawa:

  • serverê bi PXE-ê boot bikin;
  • veguheztina kontrola li ser nivîsara me;
  • servera ku pêdivî ye ku ji hêla serjimara wê ve were amadekirin nas bike;
  • serverê bi karanîna karûbarên guncan veava bike;
  • mîhengan bi karanîna beşa xerîdar veguhezînin databasa servera sazkirinê.

Me dît ku çawa:

  • servera sazkirî mîhengên pêwîst ji databasê distîne;
  • hemî pêşkeftina amadekariyê di databasê de (têketin, bûyer, alên qonaxê) têne tomar kirin.

Çi li ser cureyên cuda yên nermalava ku hûn saz dikin? Meriv çawa hîpervisorek saz dike, VM-yek kopî bike û wê hemî mîheng bike?

Di mijara bicîhkirina wêneyek pergala pelê (linux) de li ser hardware, her tişt pir hêsan e:

  • Piştî sazkirina hemî hêmanên serverê, em wêneyê bicîh dikin.
  • Grub bootloader saz bikin.
  • Em her tiştê ku hewce dike chroot û mîheng dikin.

Meriv çawa kontrolê vediguhezîne sazkerê OS-ê (mînakek ESXi bikar tîne).

  • Em veguheztina kontrolê ji nivîsara xwe ji sazkerê hîpervisor re bi karanîna pelê bersiva otomatîk (kickstart) organîze dikin:
  • Em dabeşên heyî yên li ser dîskê jêbirin.
  • Parçeyek bi mezinahiya 500 MB çêbikin.
  • Em wê wekî bootable destnîşan dikin.
  • Format bikin FAT32.
  • Em pelên sazkirina ESXi li root kopî dikin.
  • Sazkirina syslinux.
  • syslinux.cfg li /syslinux/ kopî bikin

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

  • Boot.c32 li /syslinux kopî bikin.
  • Boot.cfg divê kernelopt=ks=ftp:// /ks_esxi.cfg
  • Em serverê ji nû ve saz bikin.

Piştî ku server ji nû ve dest pê dike, sazkerê ESXi dê ji dîska serverê dakêşîne. Hemî pelên sazkerê yên pêwîst dê di bîranînê de werin barkirin û dûv re dê sazkirina ESXi dest pê bike, li gorî pelê bersivdana otomatîkî ya diyarkirî.

Li vir çend rêzek ji pelê ks_esxi.cfg-a xweberpirsînê hene:

%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

Di vê qonaxê de, hypervisor tê sazkirin û mîheng kirin, û makîneyên virtual têne kopî kirin.

Meriv çawa makîneyên virtual naha mîheng dike?

Me piçek xapandin: di dema sazkirinê de me di pela VM1.vmx de parametreya guestinfo.esxihost.id = "$SYSSN" danî û jimareya rêzeya servera fîzîkî ya tê de destnîşan kir.

Naha, piştî destpêkirinê, makîneya virtual (bi pakêta vmware-tools ve hatî saz kirin) dikare bigihîje vê parametreyê:

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

Ango, VM dê bikaribe xwe bide nasîn (ew jimareya rêzê ya mêvandarê laşî dizane), daxwazek ji databasa servera sazkirinê bike û pîvanên ku divê bêne mîheng kirin werbigire. Ev hemî di nav skrîptekê de tête berhev kirin, ku gava mêvanan vm dest pê dike divê bixweber were destpêkirin (lê carekê: RunOnce).

Niha em dizanin çawa:

  • serverê bi PXE-ê boot bikin;
  • veguheztina kontrola li ser nivîsara me;
  • servera ku pêdivî ye ku ji hêla serjimara wê ve were amadekirin nas bike;
  • serverê bi karanîna karûbarên guncan veava bike;
  • mîhengan bi karanîna beşa xerîdar veguhezînin databasa servera sazkirinê;
  • cûrbecûr nermalava mîheng bikin, di nav de bicihkirina esxi hypervisor û mîhengkirina makîneyên virtual (hemû bixweber).

Me dît ku çawa:

  • servera sazkirî mîhengên pêwîst ji databasê distîne;
  • hemî pêşkeftina amadekariyê di databasê de (têketin, bûyer, alên qonaxê) têne tomar kirin.


Bi kurtahî:

Ez bawer dikim ku taybetmendiya vê çareseriyê di nermbûn, sadebûn, şiyan û pirrengiya wê de ye.

Ji kerema xwe di şîroveyan de binivîsin ka hûn çi difikirin.

Source: www.habr.com

Add a comment