Darparu Metel Moel, neu baratoi gweinyddion yn awtomatig o'r dechrau

Helo, Denis ydw i ac un o'm meysydd gweithgaredd yw datblygu datrysiadau seilwaith yn X5. Heddiw hoffwn rannu gyda chi sut y gallwch chi ddefnyddio system paratoi gweinydd awtomatig yn seiliedig ar offer sydd ar gael yn gyhoeddus. Yn fy marn i, mae hwn yn ddatrysiad diddorol, syml a hyblyg.

Darparu Metel Moel, neu baratoi gweinyddion yn awtomatig o'r dechrau

Wrth baratoi rydym yn golygu: troi gweinydd newydd allan o'r bocs yn weinydd wedi'i ffurfweddu'n llawn gydag OS. Linux neu gyda'r hypervisor ESXi (ni thrafodir defnyddio gweinyddwyr Windows yn yr erthygl hon).

Telerau:

  • gweinyddwyr - gweinyddwyr y mae angen eu ffurfweddu.
  • gweinydd gosod yw'r prif weinydd sy'n darparu'r broses baratoi gyfan dros y rhwydwaith.

Pam mae angen awtomeiddio?

Gadewch i ni ddweud bod yna dasg: paratoi gweinyddwyr yn aruthrol o'r dechrau, ar eu hanterth - 30 y dydd. Gellir gosod gweinyddwyr gwahanol wneuthurwyr a modelau, systemau gweithredu gwahanol arnynt, ac efallai y bydd ganddynt hypervisor neu beidio.

Pa weithrediadau sydd wedi'u cynnwys yn y broses sefydlu (heb awtomeiddio):

  • cysylltu bysellfwrdd, llygoden, monitor i'r gweinydd;
  • ffurfweddu BIOS, RAID, IPMI;
  • diweddaru firmware cydran;
  • gosod delwedd system ffeiliau (neu osod hypervisor a chopΓ―o peiriannau rhithwir);

Nodyn. Fel arall, mae'n bosibl defnyddio OS trwy osod ffeil ymateb awtomatig. Ond ni fydd hyn yn cael ei drafod yn yr erthygl. Er y gwelwch isod nad yw ychwanegu'r swyddogaeth hon yn anodd.

  • ffurfweddu paramedrau OS (enw gwesteiwr, IP, ac ati).

Gyda'r dull hwn, mae'r un gosodiadau yn cael eu perfformio yn olynol ar bob gweinydd. Mae effeithlonrwydd gwaith o'r fath yn isel iawn.

Hanfod awtomeiddio yw dileu cyfranogiad dynol o'r broses paratoi gweinydd. Cymaint Γ’ phosib.

Mae awtomeiddio yn lleihau amser segur rhwng gweithrediadau ac yn ei gwneud hi'n bosibl darparu gweinyddwyr lluosog ar yr un pryd. Mae'r tebygolrwydd o gamgymeriadau oherwydd ffactorau dynol hefyd yn lleihau'n fawr.

Darparu Metel Moel, neu baratoi gweinyddion yn awtomatig o'r dechrau

Sut mae gweinyddwyr yn cael eu ffurfweddu'n awtomatig?

Gadewch i ni ddadansoddi'r holl gamau yn fanwl.

Mae gennych weinydd Linux rydych chi'n ei ddefnyddio fel gweinydd gosod PXE. Mae gwasanaethau'n cael eu gosod a'u ffurfweddu arno: DHCP, TFTP.

Felly, rydyn ni'n cychwyn y gweinydd (y mae angen ei ffurfweddu) trwy PXE. Gadewch i ni gofio sut mae'n gweithio:

  • Dewisir cist rhwydwaith ar y gweinydd.
  • Mae'r gweinydd yn llwytho PXE-ROM y cerdyn rhwydwaith ac yn cysylltu Γ’'r gweinydd gosod trwy DHCP i gael cyfeiriad rhwydwaith.
  • Mae gweinydd gosod DHCP yn cyhoeddi cyfeiriad, yn ogystal Γ’ chyfarwyddiadau ar gyfer lawrlwytho ymhellach trwy PXE.
  • Mae'r gweinydd yn llwytho'r cychwynnydd rhwydwaith o'r gweinydd gosod trwy PXE, mae llwytho pellach yn digwydd yn Γ΄l ffeil ffurfweddu PXE.
  • Mae'r gist yn digwydd yn seiliedig ar y paramedrau a dderbyniwyd (cnewyllyn, initramfs, pwyntiau gosod, delwedd sboncen, ac ati).

Nodyn. Mae'r erthygl yn disgrifio cychwyn trwy PXE trwy'r modd BIOS. Ar hyn o bryd, mae gweithgynhyrchwyr wrthi'n gweithredu modd cychwyn UEFI. Ar gyfer PXE, bydd y gwahaniaeth yng nghyfluniad y gweinydd DHCP a phresenoldeb cychwynnydd ychwanegol.

Gadewch i ni edrych ar enghraifft o gyfluniad gweinydd PXE (dewislen pxelinux).

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

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

Mae'r cnewyllyn a'r initramfs ar y cam hwn yn ddelwedd Linux ganolraddol, a gyda chymorth y bydd prif baratoi a chyfluniad y gweinydd yn digwydd.

Fel y gallwch weld, mae'r cychwynnydd yn trosglwyddo llawer o baramedrau i'r cnewyllyn. Defnyddir rhai o'r paramedrau hyn gan y cnewyllyn ei hun. A gallwn ddefnyddio rhai at ein dibenion ein hunain. Bydd hyn yn cael ei drafod yn nes ymlaen, ond am y tro gallwch gofio y bydd yr holl baramedrau a basiwyd ar gael yn y ddelwedd Linux canolradd trwy / proc/cmdline.

Ble alla i eu cael, cnewyllyn ac initramfs?
Fel sail, gallwch ddewis unrhyw ddosbarthiad Linux. Beth rydyn ni'n talu sylw iddo wrth ddewis:

  • rhaid i'r ddelwedd gychwyn fod yn gyffredinol (argaeledd gyrwyr, y gallu i osod cyfleustodau ychwanegol);
  • Yn fwyaf tebygol, bydd angen i chi addasu'r initramfs.

Sut mae hyn yn cael ei wneud yn ein datrysiad ar gyfer X5? Dewiswyd CentOS 7 fel sail. Gadewch i ni roi cynnig ar y tric canlynol: paratowch y strwythur delwedd yn y dyfodol, ei bacio i mewn i archif a chreu initramfs, y tu mewn iddo bydd ein archif system ffeiliau. Wrth lwytho'r ddelwedd, bydd yr archif yn cael ei ehangu i'r rhaniad tmpfs a grΓ«wyd. Fel hyn byddwn yn cael delwedd linux byw fach ond llawn gyda'r holl gyfleustodau angenrheidiol, sy'n cynnwys dwy ffeil yn unig: vmkernel ac 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

Felly rydym wedi nodi'r cnewyllyn a'r initramfs y dylid eu llwytho. O ganlyniad, ar hyn o bryd, trwy lwytho'r ddelwedd linux canolraddol trwy PXE, byddwn yn derbyn y consol OS.

Gwych, ond nawr mae angen i ni drosglwyddo rheolaeth i'n β€œawtomatiaeth”.

Gellir ei wneud fel hyn.

Gadewch i ni dybio ein bod yn bwriadu trosglwyddo rheolaeth i'r sgript mount.sh ar Γ΄l llwytho'r ddelwedd.
Gadewch i ni gynnwys y sgript mount.sh yn autorun. I wneud hyn bydd angen i chi addasu'r initramfs:

  • dadbacio initramfs (os ydym yn defnyddio'r opsiwn initramfs uchod, nid oes angen hyn)
  • cynnwys cod wrth gychwyn a fydd yn dadansoddi'r paramedrau a basiwyd trwy /proc/cmdline a throsglwyddo rheolaeth ymhellach;
  • pecyn initramfs.

Nodyn. Yn achos y pecyn cymorth X5, mae rheolaeth llwytho yn cael ei drosglwyddo i'r sgript /opt/x5/toolkit/bin/hook.sh с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ override.conf Π² getty tty1 (ExecStart=…)

Felly, mae'r ddelwedd wedi'i llwytho, lle mae'r sgript mount.sh yn dechrau yn autorun. Nesaf, mae'r sgript mount.sh yn dadansoddi'r paramedrau a basiwyd (script_cmd =) yn ystod y gweithredu ac yn lansio'r rhaglen / sgript angenrheidiol.

pecyn cymorth label-auto
cnewyllyn...
atodiad... nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh

pecyn cymorth label-cragen
cnewyllyn...
atodiad... nfs_toolkit_script=scripts/mount.sh script_cmd =/bin/bash

Darparu Metel Moel, neu baratoi gweinyddion yn awtomatig o'r dechrau

Yma ar y chwith mae'r ddewislen PXE, ar y dde mae'r diagram trosglwyddo rheolaeth.

Rydym yn cyfrifedig allan trosglwyddo rheolaeth. Yn dibynnu ar y dewis o ddewislen PXE, mae naill ai'r sgript ffurfweddu awtomatig neu'r consol dadfygio yn cael ei lansio.

Yn achos cyfluniad awtomatig, mae'r cyfeiriaduron angenrheidiol wedi'u gosod o'r gweinydd gosod, sy'n cynnwys:

  • sgriptiau;
  • templedi BIOS/UEFI wedi'u cadw ar gyfer gweinyddwyr amrywiol;
  • firmware;
  • cyfleustodau gweinydd;
  • boncyffion

Nesaf, mae'r sgript mount.sh yn trosglwyddo rheolaeth i'r sgript master-install.sh o'r cyfeiriadur sgript.

Mae'r goeden sgript (y drefn y cΓ’nt eu lansio) yn edrych fel hyn:

  • meistr-osod
  • swyddogaethau cyfranddaliadau (swyddogaethau a rennir)
  • gwybodaeth (allbwn gwybodaeth)
  • modelau (gosod paramedrau gosod yn seiliedig ar fodel y gweinydd)
  • prepare_utils (gosod y cyfleustodau angenrheidiol)
  • fwupdate (diweddariad cadarnwedd)
  • diag (diagnosteg elfennol)
  • biosconf (gosodiadau BIOS/UEFI)
  • clockfix (gosod yr amser ar y famfwrdd)
  • srmconf (cyfluniad rhyngwyneb rhyngwyneb anghysbell)
  • raidconf (ffurfweddu cyfrolau rhesymegol)

un o:

  • rhagosod (trosglwyddo rheolaeth i'r OS neu osodwr hypervisor, fel ESXi)
  • Cyfuno-install (dechrau ar unwaith o ddadbacio'r ddelwedd)

Nawr rydyn ni'n gwybod:

  • sut i gychwyn gweinydd trwy PXE;
  • sut i drosglwyddo rheolaeth i'ch sgript eich hun.


Gadewch i ni barhau. Daeth y cwestiynau canlynol yn berthnasol:

  • Sut i adnabod y gweinydd yr ydym yn ei baratoi?
  • Pa gyfleustodau a sut i ffurfweddu'r gweinydd?
  • Sut i gael gosodiadau ar gyfer gweinydd penodol?

Sut i adnabod y gweinydd yr ydym yn ei baratoi?

Mae'n syml - DMI:

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

Mae popeth sydd ei angen arnoch chi yma: gwerthwr, model, rhif cyfresol. Os nad ydych yn siΕ΅r bod y wybodaeth hon yn bresennol ym mhob gweinydd, gallwch eu hadnabod yn Γ΄l eu cyfeiriad MAC. Neu yn y ddwy ffordd ar yr un pryd, os yw gwerthwyr y gweinydd yn wahanol ac ar rai modelau, yn syml, nid oes unrhyw wybodaeth am y rhif cyfresol.

Yn seiliedig ar y wybodaeth a dderbyniwyd, mae ffolderau rhwydwaith yn cael eu gosod o'r gweinydd gosod ac mae popeth angenrheidiol yn cael ei lwytho (cyfleustodau, firmware, ac ati).

Pa gyfleustodau a sut i ffurfweddu'r gweinydd?

Byddaf yn darparu cyfleustodau ar gyfer Linux i rai gweithgynhyrchwyr. Mae'r holl gyfleustodau ar gael ar wefannau swyddogol gwerthwyr.

Darparu Metel Moel, neu baratoi gweinyddion yn awtomatig o'r dechrau

Gyda'r firmware, credaf fod popeth yn glir. Maent fel arfer yn dod ar ffurf ffeiliau gweithredadwy wedi'u pecynnu. Mae'r ffeil gweithredadwy yn rheoli'r broses diweddaru firmware ac yn adrodd ar y cod dychwelyd.

Mae BIOS ac IPMI fel arfer yn cael eu ffurfweddu trwy dempledi. Os oes angen, gellir golygu'r templed cyn ei lawrlwytho.

Gellir hefyd ffurfweddu cyfleustodau RAID gan rai gwerthwyr gan ddefnyddio templed. Os nad yw hyn yn wir, yna bydd yn rhaid i chi ysgrifennu sgript ffurfweddu.

Mae'r weithdrefn ar gyfer sefydlu RAID gan amlaf fel a ganlyn:

  • Gofynnwn am y ffurfweddiad presennol.
  • Os oes araeau rhesymegol eisoes, rydym yn eu dileu.
  • Gadewch i ni edrych ar ba ddisgiau corfforol sy'n bresennol a faint sydd.
  • Creu casgliad rhesymegol newydd. Rydym yn torri ar draws y broses rhag ofn y bydd gwall.

Sut i gael gosodiadau ar gyfer gweinydd penodol?

Gadewch i ni dybio y bydd gosodiadau'r holl weinyddion yn cael eu storio ar y gweinydd gosod. Yn yr achos hwn, i ateb ein cwestiwn, rhaid inni benderfynu yn gyntaf sut i drosglwyddo'r gosodiadau i'r gweinydd gosod.

Ar y dechrau, gallwch fynd heibio gyda ffeiliau testun. (Yn y dyfodol, efallai y byddwch am ddefnyddio ffeil testun fel dull wrth gefn ar gyfer trosglwyddo gosodiadau.)

Gallwch β€œrannu” ffeil testun ar y gweinydd gosod. Ac ychwanegu ei mount at y sgript mount.sh.

Bydd y llinellau, er enghraifft, yn edrych fel hyn:

<rhif cyfresol> <enw gwesteiwr> <subnet>

Bydd y llinellau hyn yn cael eu trosglwyddo i'r ffeil gan y peiriannydd o'i beiriant gwaith. Ac yna, wrth sefydlu gweinydd, bydd y paramedrau ar gyfer gweinydd penodol yn cael eu darllen o'r ffeil.

Ond, yn y tymor hir, mae'n well defnyddio cronfa ddata i storio gosodiadau, cyflyrau a logiau gosodiadau gweinydd.

Wrth gwrs, nid yw cronfa ddata yn unig yn ddigon, a bydd angen i chi greu rhan cleient gyda chymorth pa leoliadau fydd yn cael eu trosglwyddo i'r gronfa ddata. Mae hyn yn anoddach i'w weithredu o'i gymharu Γ’ ffeil testun, ond mewn gwirionedd, nid yw popeth mor anodd ag y mae'n ymddangos. Mae'n eithaf posibl ysgrifennu fersiwn fach iawn o gleient a fydd yn syml yn trosglwyddo data i'r gronfa ddata eich hun. Ac yn y dyfodol bydd yn bosibl gwella'r rhaglen cleient yn y modd rhad ac am ddim (adroddiadau, argraffu labeli, anfon hysbysiadau, ac ati sy'n dod i'r meddwl).

Trwy wneud cais penodol i'r gronfa ddata a nodi rhif cyfresol y gweinydd, byddwn yn derbyn y paramedrau angenrheidiol ar gyfer ffurfweddu'r gweinydd.

Hefyd, ni fydd angen i ni ddod o hyd i gloeon ar gyfer mynediad ar yr un pryd, fel sy'n wir am ffeil testun.

Gallwn ysgrifennu'r log ffurfweddu i'r gronfa ddata ar bob cam a rheoli'r broses osod trwy ddigwyddiadau a fflagiau'r camau paratoi.

Nawr rydyn ni'n gwybod sut:

  • cychwyn y gweinydd trwy PXE;
  • trosglwyddo rheolaeth i'n sgript;
  • nodi'r gweinydd y mae angen ei baratoi yn Γ΄l ei rif cyfresol;
  • ffurfweddu'r gweinydd gan ddefnyddio'r cyfleustodau priodol;
  • trosglwyddo gosodiadau i gronfa ddata'r gweinydd gosod gan ddefnyddio'r rhan cleient.

Cawsom wybod sut:

  • mae'r gweinydd gosod yn derbyn y gosodiadau angenrheidiol o'r gronfa ddata;
  • cofnodir yr holl gynnydd paratoi yn y gronfa ddata (logiau, digwyddiadau, baneri llwyfan).

Beth am y gwahanol fathau o feddalwedd rydych chi'n eu gosod? Sut i osod hypervisor, copΓ―o VM a ffurfweddu'r cyfan?

Yn achos defnyddio delwedd system ffeiliau (linux) i galedwedd, mae popeth yn eithaf syml:

  • Ar Γ΄l sefydlu holl gydrannau'r gweinydd, rydyn ni'n defnyddio'r ddelwedd.
  • Gosodwch y cychwynnydd grub.
  • Rydym yn croot ac yn ffurfweddu popeth sydd ei angen.

Sut i drosglwyddo rheolaeth i osodwr yr OS (gan ddefnyddio ESXi fel enghraifft).

  • Rydyn ni'n trefnu trosglwyddo rheolaeth o'n sgript i'r gosodwr hypervisor gan ddefnyddio'r ffeil ymateb awtomatig (kickstart):
  • Rydym yn dileu'r rhaniadau cyfredol ar y ddisg.
  • Creu rhaniad gyda maint o 500MB.
  • Rydym yn ei nodi fel bootable.
  • Fformat i FAT32.
  • Rydym yn copΓ―o'r ffeiliau gosod ESXi i'r gwraidd.
  • Gosod syslinux.
  • CopΓ―o syslinux.cfg i /syslinux/

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

  • CopΓ―wch mboot.c32 i /syslinux.
  • Dylai fod gan Boot.cfg kernelopt=ks=ftp:// /ks_esxi.cfg
  • Rydym yn ailgychwyn y gweinydd.

Ar Γ΄l i'r gweinydd ailgychwyn, bydd y gosodwr ESXi yn lawrlwytho o yriant caled y gweinydd. Bydd yr holl ffeiliau gosodwr angenrheidiol yn cael eu llwytho i'r cof ac yna bydd y gosodiad ESXi yn dechrau, yn Γ΄l y ffeil auto-ymateb penodedig.

Dyma ychydig o linellau o'r ffeil ymateb awtomatig 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

Ar y cam hwn, mae'r hypervisor yn cael ei osod a'i ffurfweddu, ac mae peiriannau rhithwir yn cael eu copΓ―o.

Sut i ffurfweddu peiriannau rhithwir nawr?

Fe wnaethon ni dwyllo ychydig: yn ystod y gosodiad fe wnaethom osod y paramedr guestinfo.esxihost.id = "$SYSSN" yn y ffeil VM1.vmx a nodi rhif cyfresol y gweinydd ffisegol ynddo.

Nawr, ar Γ΄l cychwyn, gall y peiriant rhithwir (gyda'r pecyn vmware-tools wedi'i osod) gyrchu'r paramedr hwn:

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

Hynny yw, bydd y VM yn gallu adnabod ei hun (mae'n gwybod rhif cyfresol y gwesteiwr ffisegol), gwneud cais i gronfa ddata'r gweinydd gosod a derbyn y paramedrau y mae angen eu ffurfweddu. Mae hyn i gyd wedi'i lunio'n sgript, y dylid ei lansio'n awtomatig pan fydd gwesteion vm yn cychwyn (ond unwaith: RunOnce).

Nawr rydyn ni'n gwybod sut:

  • cychwyn y gweinydd trwy PXE;
  • trosglwyddo rheolaeth i'n sgript;
  • nodi'r gweinydd y mae angen ei baratoi yn Γ΄l ei rif cyfresol;
  • ffurfweddu'r gweinydd gan ddefnyddio'r cyfleustodau priodol;
  • trosglwyddo gosodiadau i gronfa ddata'r gweinydd gosod gan ddefnyddio'r rhan cleient;
  • ffurfweddu gwahanol fathau o feddalwedd, gan gynnwys defnyddio'r hypervisor esxi a ffurfweddu peiriannau rhithwir (i gyd yn awtomatig).

Cawsom wybod sut:

  • mae'r gweinydd gosod yn derbyn y gosodiadau angenrheidiol o'r gronfa ddata;
  • cofnodir yr holl gynnydd paratoi yn y gronfa ddata (logiau, digwyddiadau, baneri llwyfan).


Mae'r llinell waelod:

Credaf mai natur unigryw'r ateb hwn yw ei hyblygrwydd, ei symlrwydd, ei alluoedd a'i amlochredd.

Ysgrifennwch eich barn yn y sylwadau.

Ffynhonnell: hab.com

Ychwanegu sylw