Ṣe-o-ara Ipese-irin Ipese, tabi igbaradi aifọwọyi ti awọn olupin lati ibere

Kaabo, Mo jẹ Denis ati ọkan ninu awọn agbegbe iṣẹ ṣiṣe ni idagbasoke awọn solusan amayederun ni X5. Loni Emi yoo fẹ lati pin pẹlu rẹ bi o ṣe le mu eto igbaradi olupin laifọwọyi da lori awọn irinṣẹ to wa ni gbangba. Ni ero mi, eyi jẹ iyanilenu, rọrun ati ojutu rọ.

Ṣe-o-ara Ipese-irin Ipese, tabi igbaradi aifọwọyi ti awọn olupin lati ibere

Nipa igbaradi a tumọ si: yi olupin tuntun kuro ninu apoti sinu olupin ti a tunto ni kikun pẹlu OS. Lainos tabi pẹlu hypervisor ESXi (ifilọlẹ ti awọn olupin Windows ko ni ijiroro ninu nkan yii).

Awọn ofin:

  • awọn olupin – awọn olupin ti o nilo lati tunto.
  • olupin fifi sori jẹ olupin akọkọ ti o pese gbogbo ilana igbaradi lori nẹtiwọọki naa.

Kini idi ti adaṣe nilo?

Jẹ ki a sọ pe iṣẹ-ṣiṣe kan wa: lati ṣeto awọn olupin lọpọlọpọ lati ibere, ni oke kan - 30 fun ọjọ kan. Awọn olupin ti awọn oluṣelọpọ oriṣiriṣi ati awọn awoṣe, awọn ọna ṣiṣe oriṣiriṣi le wa ni fi sori ẹrọ lori wọn, ati pe o le tabi ko le ni hypervisor.

Awọn iṣẹ wo ni o wa ninu ilana iṣeto (laisi adaṣe):

  • so a keyboard, Asin, atẹle si olupin;
  • tunto BIOS, RAID, IPMI;
  • famuwia paati imudojuiwọn;
  • ran aworan eto faili kan (tabi fi hypervisor sori ẹrọ ati daakọ awọn ẹrọ foju);

Akiyesi. Ni omiiran, imuṣiṣẹ OS ṣee ṣe nipasẹ fifi sori ẹrọ pẹlu faili idahun-laifọwọyi. Ṣugbọn eyi kii yoo jiroro ninu nkan naa. Botilẹjẹpe iwọ yoo rii ni isalẹ pe fifi iṣẹ yii kun ko nira.

  • tunto OS paramita (orukọ ogun, IP, bbl).

Pẹlu ọna yii, awọn eto kanna ni a ṣe lẹsẹsẹ lori olupin kọọkan. Iṣiṣẹ ti iru iṣẹ jẹ kekere pupọ.

Ohun pataki ti adaṣe ni lati yọkuro ikopa eniyan lati ilana igbaradi olupin. Bi o ti ṣee ṣe.

Automation din downtime laarin mosi ati ki o mu ki o ṣee ṣe lati pese ọpọ olupin ni nigbakannaa. O ṣeeṣe ti awọn aṣiṣe nitori awọn ifosiwewe eniyan tun dinku pupọ.

Ṣe-o-ara Ipese-irin Ipese, tabi igbaradi aifọwọyi ti awọn olupin lati ibere

Bawo ni a ṣe tunto olupin laifọwọyi?

Jẹ ki a ṣe itupalẹ gbogbo awọn ipele ni awọn alaye.

O ni olupin Linux ti o lo bi olupin fifi sori ẹrọ PXE. Awọn iṣẹ ti fi sori ẹrọ ati tunto lori rẹ: DHCP, TFTP.

Nitorinaa, a bata olupin naa (eyiti o nilo lati tunto) nipasẹ PXE. Jẹ ki a ranti bi o ṣe n ṣiṣẹ:

  • Ti yan bata nẹtiwọki lori olupin naa.
  • Olupin naa n gbe PXE-ROM ti kaadi nẹtiwọọki ati kan si olupin fifi sori ẹrọ nipasẹ DHCP lati gba adirẹsi nẹtiwọki kan.
  • Olupin fifi sori ẹrọ DHCP n funni ni adirẹsi kan, bakanna bi awọn ilana fun igbasilẹ siwaju nipasẹ PXE.
  • Olupin naa n gbe bootloader nẹtiwọki lati olupin fifi sori ẹrọ nipasẹ PXE, ikojọpọ siwaju sii waye ni ibamu si faili iṣeto PXE.
  • Bata naa waye da lori awọn aye ti o gba (kernel, initramfs, awọn aaye oke, aworan squashfs, ati bẹbẹ lọ).

Akiyesi. Nkan naa ṣe apejuwe gbigbe nipasẹ PXE nipasẹ ipo BIOS. Lọwọlọwọ, awọn aṣelọpọ n ṣe imuse bootmode UEFI ni itara. Fun PXE, iyatọ yoo wa ni iṣeto ti olupin DHCP ati wiwa afikun bootloader.

Jẹ ki a wo apẹẹrẹ ti iṣeto olupin PXE kan (akojọ pxelinux).

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

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

Ekuro ati initramfs ni ipele yii jẹ aworan Linux agbedemeji, pẹlu iranlọwọ ti eyiti igbaradi akọkọ ati iṣeto ti olupin yoo waye.

Bi o ti le rii, bootloader kọja ọpọlọpọ awọn aye si ekuro. Diẹ ninu awọn paramita wọnyi jẹ lilo nipasẹ ekuro funrararẹ. Ati pe a le lo diẹ ninu awọn idi ti ara wa. Eyi ni yoo jiroro nigbamii, ṣugbọn fun bayi o le kan ranti pe gbogbo awọn aye ti o kọja yoo wa ni aworan Linux agbedemeji nipasẹ / proc/cmdline.

Nibo ni MO le gba wọn, ekuro ati initramfs?
Gẹgẹbi ipilẹ, o le yan eyikeyi pinpin Linux. Ohun ti a san ifojusi si nigbati o yan:

  • aworan bata gbọdọ jẹ gbogbo agbaye (wiwa awọn awakọ, agbara lati fi awọn ohun elo afikun sii);
  • O ṣeese julọ, iwọ yoo nilo lati ṣe akanṣe initramfs.

Bawo ni a ṣe ṣe eyi ni ojutu wa fun X5? A yan CentOS 7 gẹgẹbi ipilẹ. Jẹ ki a gbiyanju ẹtan atẹle: mura eto aworan ọjọ iwaju, gbe sinu ile-ipamọ kan ki o ṣẹda intramfs kan, ninu eyiti ile-ipamọ eto faili wa yoo wa. Nigbati o ba n ṣajọpọ aworan naa, ile-ipamọ naa yoo gbooro si apakan tmpfs ti a ṣẹda. Ni ọna yii a yoo gba aworan Linux ti o kere ju, sibẹsibẹ kikun kikun pẹlu gbogbo awọn ohun elo pataki, ti o ni awọn faili meji nikan: vmkernel ati 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

Nitorinaa a ti ṣalaye ekuro ati initramfs ti o yẹ ki o kojọpọ. Bi abajade, ni ipele yii, nipa ikojọpọ aworan linux agbedemeji nipasẹ PXE, a yoo gba console OS naa.

Nla, ṣugbọn nisisiyi a nilo lati gbe iṣakoso si "automation" wa.

O le ṣee ṣe bi eleyi.

Jẹ ki a ro pe lẹhin ikojọpọ aworan a gbero lati gbe iṣakoso si iwe afọwọkọ Mount.sh.
Jẹ ki a ṣafikun iwe afọwọkọ mount.sh ni autorun. Lati ṣe eyi iwọ yoo nilo lati yi awọn initramfs pada:

  • ṣii initramfs (ti a ba lo aṣayan initramfs loke, eyi ko nilo)
  • pẹlu koodu ni ibẹrẹ ti yoo ṣe itupalẹ awọn aye ti o kọja nipasẹ / proc / cmdline ati iṣakoso gbigbe siwaju;
  • idii initramfs.

Akiyesi. Ninu ọran ti ohun elo irinṣẹ X5, iṣakoso ikojọpọ ti gbe si iwe afọwọkọ naa /opt/x5/toolkit/bin/hook.sh с помощью override.conf в getty tty1 (ExecStart=…)

Nitorina, aworan naa ti kojọpọ, ninu eyiti iwe afọwọkọ mount.sh bẹrẹ ni autorun. Nigbamii ti, iwe afọwọkọ mount.sh ṣe itupalẹ awọn aye ti o kọja (script_cmd =) lakoko ipaniyan ati ṣe ifilọlẹ eto / iwe afọwọkọ pataki.

label toolkit-auto
ekuro...
append... nfs_toolkit_script=awọn iwe afọwọkọ/mount.sh script_cmd=master-install.sh

label toolkit-ikarahun
ekuro...
append... nfs_toolkit_script=awọn iwe afọwọkọ/mount.sh script_cmd = / bin/ bash

Ṣe-o-ara Ipese-irin Ipese, tabi igbaradi aifọwọyi ti awọn olupin lati ibere

Nibi ni apa osi ni akojọ aṣayan PXE, ni apa ọtun ni aworan gbigbe iṣakoso.

A ṣe akiyesi gbigbe iṣakoso. Ti o da lori yiyan ti akojọ aṣayan PXE, boya iwe afọwọṣe atunto aifọwọyi tabi console n ṣatunṣe aṣiṣe ti ṣe ifilọlẹ.

Ninu ọran ti iṣeto ni aifọwọyi, awọn ilana pataki ni a gbe sori olupin fifi sori ẹrọ, eyiti o ni:

  • awọn iwe afọwọkọ;
  • Awọn awoṣe BIOS / UEFI ti o fipamọ fun awọn olupin oriṣiriṣi;
  • famuwia;
  • awọn ohun elo olupin;
  • awọn akọọlẹ

Nigbamii, iwe afọwọkọ mount.sh n gbe iṣakoso lọ si iwe afọwọkọ master-install.sh lati inu iwe afọwọkọ.

Igi iwe afọwọkọ (ilana ti wọn ṣe ifilọlẹ) dabi iru eyi:

  • titunto si-fi sori ẹrọ
  • awọn iṣẹ pinpin (awọn iṣẹ pinpin)
  • alaye (jade alaye)
  • awọn awoṣe (ṣeto awọn ipilẹ fifi sori ẹrọ ti o da lori awoṣe olupin)
  • prepared_utils (fifi sori ẹrọ ti awọn ohun elo pataki)
  • fwupdate (imudojuiwọn famuwia)
  • iwadii aisan (iṣayẹwo akọkọ)
  • biosconf (awọn eto BIOS/UEFI)
  • clockfix (ṣeto akoko lori modaboudu)
  • srmconf (atunto wiwo wiwo latọna jijin)
  • raidconf (ntunto awọn iwọn ọgbọn)

ọkan ninu:

  • fi sori ẹrọ tẹlẹ (gbigbe iṣakoso si OS tabi insitola hypervisor, gẹgẹbi ESXi)
  • dapọ-fi sori ẹrọ (ibẹrẹ lẹsẹkẹsẹ ti ṣiṣi silẹ aworan naa)

Bayi a mọ:

  • Bii o ṣe le bata olupin nipasẹ PXE;
  • bi o ṣe le gbe iṣakoso lọ si iwe afọwọkọ tirẹ.


Jẹ ki a tẹsiwaju. Awọn ibeere wọnyi di pataki:

  • Bawo ni lati ṣe idanimọ olupin ti a ngbaradi?
  • Awọn ohun elo wo ati bii o ṣe le tunto olupin naa?
  • Bawo ni lati gba eto fun olupin kan pato?

Bawo ni lati ṣe idanimọ olupin ti a ngbaradi?

O rọrun - DMI:

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

Ohun gbogbo ti o nilo wa nibi: ataja, awoṣe, nọmba ni tẹlentẹle. Ti o ko ba ni idaniloju pe alaye yii wa lori gbogbo awọn olupin, o le ṣe idanimọ wọn nipasẹ adirẹsi MAC wọn. Tabi ni awọn ọna mejeeji ni akoko kanna, ti awọn olutaja olupin ba yatọ ati lori diẹ ninu awọn awoṣe ko si alaye lasan nipa nọmba ni tẹlentẹle.

Da lori alaye ti o gba, awọn folda nẹtiwọọki ti gbe lati olupin fifi sori ẹrọ ati pe ohun gbogbo ti o ṣe pataki ni a kojọpọ (awọn ohun elo, famuwia, bbl).

Awọn ohun elo wo ati bii o ṣe le tunto olupin naa?

Emi yoo pese awọn ohun elo fun Linux fun diẹ ninu awọn aṣelọpọ. Gbogbo awọn ohun elo wa lori awọn oju opo wẹẹbu osise ti awọn olutaja.

Ṣe-o-ara Ipese-irin Ipese, tabi igbaradi aifọwọyi ti awọn olupin lati ibere

Pẹlu famuwia, Mo ro pe ohun gbogbo jẹ kedere. Wọn maa n wa ni irisi awọn faili ti o le ṣiṣẹ. Faili ti o le ṣiṣẹ n ṣakoso ilana imudojuiwọn famuwia ati ṣe ijabọ koodu ipadabọ.

BIOS ati IPMI nigbagbogbo ni tunto nipasẹ awọn awoṣe. Ti o ba jẹ dandan, awoṣe le ṣe satunkọ ṣaaju igbasilẹ.

Awọn ohun elo RAID lati ọdọ awọn olutaja kan tun le tunto nipa lilo awoṣe kan. Ti eyi ko ba jẹ ọran, lẹhinna o yoo ni lati kọ iwe afọwọkọ iṣeto kan.

Ilana fun iṣeto RAID jẹ igbagbogbo bi atẹle:

  • A beere awọn ti isiyi iṣeto ni.
  • Ti awọn akojọpọ ọgbọn ba wa tẹlẹ, a pa wọn rẹ.
  • Jẹ ki a wo kini awọn disiki ti ara wa ati iye melo ni o wa.
  • Ṣẹda titun mogbonwa orun. A ṣe idiwọ ilana naa ni ọran ti aṣiṣe kan.

Bawo ni lati gba eto fun olupin kan pato?

Jẹ ki a ro pe awọn eto ti gbogbo awọn olupin yoo wa ni ipamọ lori olupin fifi sori ẹrọ. Ni idi eyi, lati dahun ibeere wa, a gbọdọ kọkọ pinnu bi a ṣe le gbe awọn eto si olupin fifi sori ẹrọ.

Ni akọkọ, o le gba nipasẹ awọn faili ọrọ. (Ni ọjọ iwaju, o le fẹ lo faili ọrọ bi ọna ipadabọ fun gbigbe awọn eto.)

O le “pin” faili ọrọ lori olupin fifi sori ẹrọ. Ki o si fi awọn oniwe-oke si awọn mount.sh akosile.

Awọn ila yoo, fun apẹẹrẹ, dabi eyi:

<nọmba tẹlentẹle> <hostname> <subnet>

Awọn ila wọnyi yoo gbe lọ si faili nipasẹ ẹlẹrọ lati ẹrọ iṣẹ rẹ. Ati lẹhinna, nigbati o ba ṣeto olupin kan, awọn paramita fun olupin kan pato yoo ka lati faili naa.

Ṣugbọn, ni igba pipẹ, o dara lati lo ibi ipamọ data lati tọju awọn eto, awọn ipinlẹ ati awọn igbasilẹ ti awọn fifi sori ẹrọ olupin.

Nitoribẹẹ, ibi ipamọ data nikan ko to, ati pe iwọ yoo nilo lati ṣẹda apakan alabara pẹlu iranlọwọ ti eyiti awọn eto yoo gbe lọ si ibi ipamọ data. Eyi nira sii lati ṣe akawe si faili ọrọ, ṣugbọn ni otitọ, ohun gbogbo ko nira bi o ṣe dabi. O ṣee ṣe pupọ lati kọ ẹya ti o kere ju ti alabara kan ti yoo gbe data nirọrun si aaye data funrararẹ. Ati ni ọjọ iwaju o yoo ṣee ṣe lati mu ilọsiwaju eto alabara ni ipo ọfẹ (awọn ijabọ, awọn aami titẹ sita, fifiranṣẹ awọn iwifunni, ati bẹbẹ lọ ti o wa si ọkan).

Nipa ṣiṣe ibeere kan pato si ibi ipamọ data ati sisọ nọmba ni tẹlentẹle olupin, a yoo gba awọn aye pataki fun atunto olupin naa.

Pẹlupẹlu, a ko ni nilo lati wa pẹlu awọn titiipa fun iwọle nigbakanna, gẹgẹ bi ọran pẹlu faili ọrọ kan.

A le kọ iwe atunto si ibi ipamọ data ni gbogbo awọn ipele ati ṣakoso ilana fifi sori ẹrọ nipasẹ awọn iṣẹlẹ ati awọn asia ti awọn ipele igbaradi.

Bayi a mọ bi:

  • bata olupin nipasẹ PXE;
  • iṣakoso gbigbe si iwe afọwọkọ wa;
  • ṣe idanimọ olupin ti o nilo lati pese sile nipasẹ nọmba ni tẹlentẹle;
  • tunto olupin naa nipa lilo awọn ohun elo ti o yẹ;
  • awọn eto gbigbe si ibi ipamọ data olupin fifi sori ẹrọ nipa lilo apakan alabara.

A ti rii bii:

  • olupin ti a fi sii gba awọn eto pataki lati ibi ipamọ data;
  • gbogbo ilọsiwaju igbaradi ti wa ni igbasilẹ ni ibi ipamọ data (awọn akọọlẹ, awọn iṣẹlẹ, awọn asia ipele).

Kini nipa awọn oriṣiriṣi iru sọfitiwia ti o fi sii? Bii o ṣe le fi hypervisor sori ẹrọ, daakọ VM kan ki o tunto gbogbo rẹ?

Ninu ọran ti gbigbe aworan eto faili kan (linux) si ohun elo, ohun gbogbo jẹ ohun rọrun:

  • Lẹhin ti ṣeto gbogbo awọn paati olupin, a ran aworan naa lọ.
  • Fi sori ẹrọ bootloader grub.
  • A chroot ati tunto ohun gbogbo ti o nilo.

Bii o ṣe le gbe iṣakoso lọ si insitola OS (lilo ESXi bi apẹẹrẹ).

  • A ṣeto gbigbe iṣakoso lati iwe afọwọkọ wa si insitola hypervisor nipa lilo faili esi adaṣe (kickstart):
  • A pa awọn ti isiyi ipin lori disk.
  • Ṣẹda ipin kan pẹlu iwọn 500MB.
  • A samisi rẹ bi bootable.
  • Ṣe ọna kika si FAT32.
  • A daakọ awọn faili fifi sori ẹrọ ESXi si root.
  • Fifi syslinux sori ẹrọ.
  • Daakọ syslinux.cfg si /syslinux/

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

  • Daakọ boot.c32 si /syslinux.
  • Boot.cfg yẹ ki o ni kernelopt = ks = ftp: // /ks_esxi.cfg
  • A tun atunbere olupin naa.

Lẹhin atunbere olupin naa, insitola ESXi yoo ṣe igbasilẹ lati dirafu lile olupin naa. Gbogbo awọn faili insitola pataki yoo jẹ kojọpọ sinu iranti ati lẹhinna fifi sori ESXi yoo bẹrẹ, ni ibamu si faili idahun adaṣe pàtó.

Eyi ni awọn laini diẹ lati faili idahun 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

Ni ipele yii, a ti fi hypervisor sori ẹrọ ati tunto, ati awọn ẹrọ foju ti daakọ.

Bii o ṣe le tunto awọn ẹrọ foju ni bayi?

A ṣe iyanjẹ diẹ: lakoko fifi sori ẹrọ a ṣeto paramita guestinfo.esxihost.id = "$ SYSSN" ninu faili VM1.vmx ati tọka nọmba ni tẹlentẹle ti olupin ti ara ninu rẹ.

Bayi, lẹhin ti o bẹrẹ, ẹrọ foju (pẹlu fifi sori ẹrọ awọn irinṣẹ vmware) le wọle si paramita yii:

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

Iyẹn ni, VM yoo ni anfani lati ṣe idanimọ ararẹ (o mọ nọmba ni tẹlentẹle ti agbalejo ti ara), ṣe ibeere si ibi ipamọ data olupin fifi sori ẹrọ ati gba awọn aye ti o nilo lati tunto. Gbogbo eyi ni a ṣe akojọpọ sinu iwe afọwọkọ kan, eyiti o yẹ ki o ṣe ifilọlẹ laifọwọyi nigbati gustos vm bẹrẹ (ṣugbọn lẹẹkan: RunOnce).

Bayi a mọ bi:

  • bata olupin nipasẹ PXE;
  • iṣakoso gbigbe si iwe afọwọkọ wa;
  • ṣe idanimọ olupin ti o nilo lati pese sile nipasẹ nọmba ni tẹlentẹle;
  • tunto olupin naa nipa lilo awọn ohun elo ti o yẹ;
  • awọn eto gbigbe si ibi ipamọ data olupin fifi sori ẹrọ nipa lilo apakan alabara;
  • tunto awọn oriṣiriṣi sọfitiwia, pẹlu gbigbe esxi hypervisor ati atunto awọn ẹrọ foju (gbogbo rẹ ni adaṣe).

A ti rii bii:

  • olupin ti a fi sii gba awọn eto pataki lati ibi ipamọ data;
  • gbogbo ilọsiwaju igbaradi ti wa ni igbasilẹ ni ibi ipamọ data (awọn akọọlẹ, awọn iṣẹlẹ, awọn asia ipele).


Isalẹ ila:

Mo gbagbọ pe iyasọtọ ti ojutu yii wa ni irọrun, ayedero, awọn agbara ati isọdi.

Jọwọ kọ ninu awọn asọye ohun ti o ro.

orisun: www.habr.com

Fi ọrọìwòye kun