Do-it-yourself Bare-Metal Provisioning, o Awtomatikong pag-andam sa mga server gikan sa wala

Kumusta, Ako si Denis ug usa sa akong mga lugar sa kalihokan mao ang pagpauswag sa mga solusyon sa imprastraktura sa X5. Karon gusto nakong ipaambit kanimo kung giunsa nimo pag-deploy ang usa ka awtomatikong sistema sa pag-andam sa server base sa magamit sa publiko nga mga himan. Sa akong opinyon, kini usa ka makapaikag, yano ug flexible nga solusyon.

Do-it-yourself Bare-Metal Provisioning, o Awtomatikong pag-andam sa mga server gikan sa wala

Pinaagi sa pag-andam among gipasabot: paghimo sa usa ka bag-ong server gikan sa kahon ngadto sa usa ka bug-os nga na-configure nga server nga adunay OS. Linux o sa ESXi hypervisor (ang pag-deploy sa mga Windows server wala hisgoti niini nga artikulo).

Mga Termino:

  • mga server - mga server nga kinahanglan nga ma-configure.
  • Ang server sa pag-install mao ang nag-unang server nga naghatag sa tibuuk nga proseso sa pag-andam sa network.

Nganong gikinahanglan ang automation?

Ingnon ta nga adunay usa ka buluhaton: sa pag-andam sa daghang mga server gikan sa wala, sa usa ka peak - 30 matag adlaw. Ang mga server sa lainlaing mga tiggama ug modelo, lainlaing mga operating system mahimong ma-install sa kanila, ug mahimo o wala’y hypervisor.

Unsa nga mga operasyon ang gilakip sa proseso sa pag-setup (walay automation):

  • Sumpaysumpaya ang usa ka keyboard, mouse, monitor sa server;
  • i-configure ang BIOS, RAID, IPMI;
  • update sa component firmware;
  • pag-deploy og imahe sa file system (o pag-install og hypervisor ug pagkopya sa mga virtual machine);

Nota. Sa laing paagi, ang pag-deploy sa OS posible pinaagi sa pag-install gamit ang auto-response file. Apan dili kini hisgotan sa artikulo. Bisan kung imong makita sa ubos nga ang pagdugang niini nga pagpaandar dili lisud.

  • i-configure ang mga parameter sa OS (hostname, IP, ug uban pa).

Uban niini nga pamaagi, ang parehas nga mga setting gihimo nga sunud-sunod sa matag server. Ang pagka-epektibo sa maong trabaho ubos kaayo.

Ang diwa sa automation mao ang pagwagtang sa partisipasyon sa tawo gikan sa proseso sa pag-andam sa server. Kutob sa mahimo.

Ang pag-automate nagpamenos sa downtime tali sa mga operasyon ug nagpaposible sa paghatag sa daghang mga server nga dungan. Ang posibilidad sa mga kasaypanan tungod sa mga hinungdan sa tawo labi usab nga pagkunhod.

Do-it-yourself Bare-Metal Provisioning, o Awtomatikong pag-andam sa mga server gikan sa wala

Giunsa ang awtomatikong pag-configure sa mga server?

Atong analisahon ang tanang yugto sa detalye.

Aduna kay Linux server nga imong gigamit isip PXE installation server. Ang mga serbisyo gi-install ug gi-configure niini: DHCP, TFTP.

Busa, gi-boot namo ang server (nga kinahanglang i-configure) pinaagi sa PXE. Atong hinumdoman kung giunsa kini paglihok:

  • Ang boot sa network gipili sa server.
  • Ang server nagkarga sa PXE-ROM sa network card ug nakigkontak sa instalasyon nga server pinaagi sa DHCP aron makakuha og network address.
  • Ang server sa pag-install sa DHCP nag-isyu sa usa ka adres, ingon man mga panudlo alang sa dugang nga pag-download pinaagi sa PXE.
  • Ang server nagkarga sa network bootloader gikan sa instalasyon nga server pinaagi sa PXE, ang dugang nga loading mahitabo sumala sa PXE configuration file.
  • Ang boot mahitabo base sa nadawat nga mga parameter (kernel, initramfs, mount point, squashfs image, etc.).

Nota. Gihubit sa artikulo ang pag-boot pinaagi sa PXE pinaagi sa BIOS mode. Sa pagkakaron, ang mga tiggama aktibo nga nagpatuman sa UEFI bootmode. Alang sa PXE, ang kalainan naa sa pag-configure sa DHCP server ug ang presensya sa usa ka dugang nga bootloader.

Atong tan-awon ang usa ka pananglitan sa usa ka PXE server configuration (pxelinux menu).

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

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

Ang kernel ug initramfs sa kini nga yugto usa ka intermediate nga imahe sa Linux, uban ang tabang diin ang panguna nga pag-andam ug pag-configure sa server mahitabo.

Sama sa imong nakita, ang bootloader nagpasa sa daghang mga parameter sa kernel. Ang pipila niini nga mga parameter gigamit sa kernel mismo. Ug mahimo natong gamiton ang uban alang sa atong kaugalingong mga katuyoan. Kini hisgutan sa ulahi, apan sa pagkakaron mahimo nimong hinumdoman nga ang tanan nga gipasa nga mga parameter mahimong magamit sa intermediate nga imahe sa Linux pinaagi sa /proc/cmdline.

Asa nako makuha kini, kernel ug initramfs?
Isip basehan, makapili ka ug bisan unsang distribusyon sa Linux. Unsa ang atong hatagan pagtagad sa diha nga pagpili:

  • ang hulagway sa boot kinahanglan nga unibersal (pagkaanaa sa mga drayber, abilidad sa pag-instalar sa dugang nga mga utilities);
  • Lagmit, kinahanglan nimo nga ipasibo ang initramfs.

Giunsa kini pagbuhat sa among solusyon alang sa X5? Gipili ang CentOS 7 isip basihan. Atong sulayan ang mosunod nga limbong: andama ang umaabot nga estraktura sa imahe, i-pack kini sa usa ka archive ug paghimo og initramfs, diin anaa ang atong file system archive. Kung nagkarga sa imahe, ang archive mapalapad sa gihimo nga partisyon sa tmpfs. Niining paagiha makakuha kami usa ka gamay, apan hingpit nga imahe sa live linux nga adunay tanan nga kinahanglan nga mga gamit, nga gilangkuban sa duha ra nga mga file: vmkernel ug 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

Mao nga among gitino ang kernel ug initramfs nga kinahanglan i-load. Ingon usa ka sangputanan, sa kini nga yugto, pinaagi sa pagkarga sa intermediate nga imahe sa linux pinaagi sa PXE, madawat namon ang OS console.

Nindot, apan karon kinahanglan namong ibalhin ang kontrol sa among "automation".

Mahimo kini nga sama niini.

Atong hunahunaon nga pagkahuman sa pagkarga sa imahe nagplano kami nga ibalhin ang kontrol sa mount.sh script.
Atong iapil ang mount.sh script sa autorun. Aron mahimo kini kinahanglan nimo nga usbon ang initramfs:

  • i-unpack ang initramfs (kung gamiton nato ang opsyon sa initramfs sa ibabaw, dili kini gikinahanglan)
  • ilakip ang code sa pagsugod nga mag-analisar sa mga parameter nga gipasa sa /proc/cmdline ug dugang nga pagkontrol sa pagbalhin;
  • pack initramfs.

Nota. Sa kaso sa X5 toolkit, ang pagkontrol sa pagkarga gibalhin sa script /opt/x5/toolkit/bin/hook.sh с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ override.conf Π² getty tty1 (ExecStart=…)

Busa, ang imahe gikarga, diin ang mount.sh script nagsugod sa autorun. Sunod, ang script sa mount.sh nag-analisar sa mga gipasa nga mga parameter (script_cmd=) sa panahon sa pagpatuman ug naglansad sa gikinahanglan nga programa / script.

label toolkit-sakyanan
kernel...
idugang...nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh

label toolkit-kabhang
kernel...
idugang...nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash

Do-it-yourself Bare-Metal Provisioning, o Awtomatikong pag-andam sa mga server gikan sa wala

Dinhi sa wala mao ang PXE menu, sa tuo mao ang control transfer diagram.

Nahibal-an namon ang pagbalhin sa kontrol. Depende sa pagpili sa PXE nga menu, ang auto-configuration script o ang debugging console kay gilansad.

Sa kaso sa awtomatikong pag-configure, ang gikinahanglan nga mga direktoryo gi-mount gikan sa server sa pag-install, nga adunay:

  • mga script;
  • gitipigan nga BIOS/UEFI nga mga templates alang sa lain-laing mga server;
  • firmware;
  • mga gamit sa server;
  • mga troso

Sunod, ang mount.sh script nagbalhin sa kontrol sa master-install.sh nga script gikan sa direktoryo sa script.

Ang script tree (ang han-ay diin kini gilusad) ingon niini:

  • master-instalar
  • sharefunctions (gipaambit nga mga gimbuhaton)
  • impormasyon (inpormasyon output)
  • mga modelo (pagbutang sa mga parameter sa pag-install base sa modelo sa server)
  • prepare_utils (pag-instalar sa gikinahanglan nga mga utilities)
  • fwupdate (pag-update sa firmware)
  • diag (elementarya nga diagnostics)
  • biosconf (mga setting sa BIOS/UEFI)
  • clockfix (pagbutang sa oras sa motherboard)
  • srmconf (hilit nga interface interface configuration)
  • raidconf (pag-configure sa lohikal nga mga volume)

usa sa:

  • preinstall (pagbalhin sa kontrol sa OS o hypervisor installer, sama sa ESXi)
  • merged-install (diha-diha nga pagsugod sa pag-unpack sa imahe)

Karon nahibal-an namon:

  • unsaon pag-boot sa usa ka server pinaagi sa PXE;
  • unsaon pagbalhin sa kontrol sa imong kaugalingong script.


Padayon ta. Ang mosunod nga mga pangutana nahimong may kalabutan:

  • Giunsa pag-ila ang server nga among giandam?
  • Unsa nga mga utilities ug unsaon pag-configure ang server?
  • Giunsa pagkuha ang mga setting alang sa usa ka piho nga server?

Giunsa pag-ila ang server nga among giandam?

Yano ra - DMI:

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

Ang tanan nga imong gikinahanglan ania dinhi: vendor, modelo, serial number. Kung dili ka sigurado nga kini nga kasayuran naa sa tanan nga mga server, mahimo nimong mailhan sila pinaagi sa ilang MAC address. O sa duha nga mga paagi sa parehas nga oras, kung ang mga tigbaligya sa server lahi ug sa pipila nga mga modelo wala’y kasayuran bahin sa serial number.

Pinasukad sa kasayuran nga nadawat, ang mga folder sa network gi-mount gikan sa server sa pag-install ug ang tanan nga gikinahanglan gikarga (mga utility, firmware, ug uban pa).

Unsa nga mga utilities ug unsaon pag-configure ang server?

Maghatag ako mga utilities alang sa Linux alang sa pipila nga mga tiggama. Ang tanan nga mga utilities anaa sa opisyal nga mga website sa mga vendor.

Do-it-yourself Bare-Metal Provisioning, o Awtomatikong pag-andam sa mga server gikan sa wala

Uban sa firmware, sa akong hunahuna ang tanan klaro. Kasagaran kini moabut sa porma sa mga naka-pack nga executable nga mga file. Ang executable file nagkontrol sa proseso sa pag-update sa firmware ug nagreport sa return code.

Ang BIOS ug IPMI kasagarang gi-configure pinaagi sa mga templates. Kung gikinahanglan, ang template mahimong i-edit sa dili pa i-download.

Ang mga utility sa RAID gikan sa pipila ka mga vendor mahimo usab nga ma-configure gamit ang usa ka template. Kung dili kini ang kahimtang, nan kinahanglan ka nga magsulat usa ka script sa pag-configure.

Ang pamaagi sa pag-set up sa RAID kasagaran mao ang mosunod:

  • Gihangyo namo ang kasamtangan nga configuration.
  • Kung aduna nay mga lohikal nga arrays, atong papason kini.
  • Atong tan-awon kung unsang mga pisikal nga disk ang naa ug pila ang naa.
  • Paghimo og bag-ong logical array. Among gibalda ang proseso kung adunay sayup.

Giunsa pagkuha ang mga setting alang sa usa ka piho nga server?

Ibutang ta nga ang mga setting sa tanan nga mga server itago sa instalasyon nga server. Sa kini nga kaso, aron matubag ang among pangutana, kinahanglan una namon nga magdesisyon kung giunsa pagbalhin ang mga setting sa server sa pag-install.

Sa sinugdan, mahimo nimong mapadayon ang mga text file. (Sa umaabot, mahimo nimong gamiton ang usa ka text file isip usa ka fallback nga paagi sa pagbalhin sa mga setting.)

Mahimo nimong "ipaambit" ang usa ka text file sa server sa pag-install. Ug idugang ang mount niini sa mount.sh script.

Ang mga linya, pananglitan, tan-awon sama niini:

<serial number> <hostname> <subnet>

Kini nga mga linya ibalhin sa file sa engineer gikan sa iyang work machine. Ug unya, kung mag-set up sa usa ka server, ang mga parameter alang sa usa ka piho nga server basahon gikan sa file.

Apan, sa taas nga termino, mas maayo nga mogamit usa ka database sa pagtipig sa mga setting, estado ug mga log sa mga pag-install sa server.

Siyempre, ang usa ka database nga nag-inusara dili igo, ug kinahanglan nimo nga maghimo usa ka bahin sa kliyente sa tabang kung unsang mga setting ang ibalhin sa database. Kini mas lisud nga ipatuman kon itandi sa usa ka text file, apan sa pagkatinuod, ang tanan dili ingon ka lisud sama sa daw. Posible nga magsulat usa ka gamay nga bersyon sa usa ka kliyente nga magbalhin ra sa datos sa database sa imong kaugalingon. Ug sa umaabot posible nga mapauswag ang programa sa kliyente sa libre nga mode (mga taho, mga label sa pag-imprenta, pagpadala mga pahibalo, ug uban pa nga naa sa hunahuna).

Pinaagi sa paghimo sa usa ka piho nga hangyo sa database ug pagtino sa serial number sa server, makadawat kami sa gikinahanglan nga mga parameter alang sa pag-configure sa server.

Dugang pa, dili na kinahanglan nga maghimo kami og mga kandado alang sa dungan nga pag-access, sama sa kaso sa usa ka text file.

Mahimo natong isulat ang configuration log sa database sa tanang yugto ug makontrol ang proseso sa pag-instalar pinaagi sa mga panghitabo ug mga bandera sa mga yugto sa pagpangandam.

Karon nahibal-an namon kung giunsa:

  • i-boot ang server pinaagi sa PXE;
  • pagbalhin sa kontrol sa among script;
  • pag-ila sa server nga kinahanglang andamon pinaagi sa serial number niini;
  • i-configure ang server gamit ang angay nga mga utilities;
  • pagbalhin sa mga setting sa database sa instalasyon sa server gamit ang bahin sa kliyente.

Nahibal-an namon kung giunsa:

  • ang na-install nga server makadawat sa gikinahanglan nga mga setting gikan sa database;
  • ang tanan nga pag-uswag sa pagpangandam natala sa database (mga troso, mga panghitabo, mga bandila sa entablado).

Unsa ang mahitungod sa lain-laing mga matang sa software nga imong gi-install? Giunsa ang pag-install sa usa ka hypervisor, pagkopya sa usa ka VM ug i-configure kini tanan?

Sa kaso sa pag-deploy sa usa ka file system image (linux) sa hardware, ang tanan yano ra:

  • Pagkahuman sa pag-set up sa tanan nga mga sangkap sa server, among gi-deploy ang imahe.
  • I-install ang grub bootloader.
  • Among gi-chroot ug gi-configure ang tanan nga gikinahanglan.

Giunsa pagbalhin ang kontrol sa OS installer (gamit ang ESXi ingon usa ka pananglitan).

  • Among giorganisar ang pagbalhin sa kontrol gikan sa among script ngadto sa hypervisor installer gamit ang automatic response file (kickstart):
  • Atong tangtangon ang kasamtangan nga mga partisyon sa disk.
  • Paghimo usa ka partisyon nga adunay gidak-on nga 500MB.
  • Gimarkahan namon kini ingon bootable.
  • Format sa FAT32.
  • Gikopya namo ang mga file sa pag-install sa ESXi ngadto sa gamut.
  • Pag-instalar sa syslinux.
  • Kopyaha ang syslinux.cfg sa /syslinux/

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

  • Kopyaha ang mboot.c32 sa /syslinux.
  • Ang boot.cfg kinahanglan adunay kernelopt=ks=ftp:// /ks_esxi.cfg
  • Gi-reboot namo ang server.

Pagkahuman sa pag-reboot sa server, ang installer sa ESXi mag-download gikan sa hard drive sa server. Ang tanan nga gikinahanglan nga mga file sa installer i-load sa memorya ug unya ang pag-instalar sa ESXi magsugod, sumala sa gitakda nga auto-response file.

Ania ang pipila ka linya gikan sa autoresponse file 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

Niini nga yugto, ang hypervisor gi-install ug gi-configure, ug ang mga virtual nga makina gikopya.

Giunsa ang pag-configure sa mga virtual machine karon?

Kami nanglimbong gamay: sa panahon sa pag-instalar among gibutang ang parameter guestinfo.esxihost.id = "$SYSSN" sa VM1.vmx file ug gipakita ang serial number sa pisikal nga server niini.

Karon, human magsugod, ang virtual machine (nga na-install ang vmware-tools package) maka-access niini nga parameter:

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

Kana mao, ang VM makahimo sa pag-ila sa iyang kaugalingon (kini nahibal-an ang serial number sa pisikal nga host), paghimo usa ka hangyo sa database sa pag-install sa server ug makadawat sa mga parameter nga kinahanglan nga ma-configure. Kining tanan gihugpong ngadto sa usa ka script, nga kinahanglang awtomatikong ilunsad kon guestos vm magsugod (apan kausa: RunOnce).

Karon nahibal-an namon kung giunsa:

  • i-boot ang server pinaagi sa PXE;
  • pagbalhin sa kontrol sa among script;
  • pag-ila sa server nga kinahanglang andamon pinaagi sa serial number niini;
  • i-configure ang server gamit ang angay nga mga utilities;
  • pagbalhin sa mga setting sa database sa instalasyon sa server gamit ang bahin sa kliyente;
  • i-configure ang lainlaing klase sa software, lakip ang pag-deploy sa esxi hypervisor ug pag-configure sa mga virtual machine (awtomatiko tanan).

Nahibal-an namon kung giunsa:

  • ang na-install nga server makadawat sa gikinahanglan nga mga setting gikan sa database;
  • ang tanan nga pag-uswag sa pagpangandam natala sa database (mga troso, mga panghitabo, mga bandila sa entablado).


Bottom line:

Nagtuo ako nga ang pagkatalagsaon sa kini nga solusyon naa sa pagka-flexible, kayano, kapabilidad ug versatility.

Palihug isulat sa mga komento kung unsa ang imong gihunahuna.

Source: www.habr.com

Idugang sa usa ka comment