Tee-se-itse Bare Metal Provisioning tai palvelimien automaattinen valmistelu alusta alkaen

Hei, olen Denis ja yksi toiminta-alueistani on infrastruktuuriratkaisujen kehittäminen X5:ssä. Tänään haluan kertoa teille, kuinka voit ottaa käyttöön automaattisen palvelimen valmistelujärjestelmän, joka perustuu julkisesti saatavilla oleviin työkaluihin. Minusta tämä on mielenkiintoinen, yksinkertainen ja joustava ratkaisu.

Tee-se-itse Bare Metal Provisioning tai palvelimien automaattinen valmistelu alusta alkaen

Valmistelulla tarkoitamme: muuta uusi palvelin pakkauksesta täysin konfiguroiduksi palvelimeksi, jossa on käyttöjärjestelmä. Linuxilla tai ESXi-hypervisorilla (Windows-palvelimien käyttöönottoa ei käsitellä tässä artikkelissa).

Ehdot:

  • palvelimet – palvelimet, jotka on määritettävä.
  • asennuspalvelin on pääpalvelin, joka tarjoaa koko valmisteluprosessin verkon yli.

Miksi automaatiota tarvitaan?

Oletetaan, että on tehtävä: valmistaa palvelimia massiivisesti tyhjästä, huipulla - 30 päivässä. Niihin voidaan asentaa eri valmistajien ja mallien palvelimia, erilaisia ​​käyttöjärjestelmiä, ja niissä voi olla tai ei ole hypervisoria.

Mitä toimintoja asennusprosessi sisältää (ilman automaatiota):

  • liitä näppäimistö, hiiri, näyttö palvelimeen;
  • määritä BIOS, RAID, IPMI;
  • päivitä komponenttien laiteohjelmisto;
  • ota käyttöön tiedostojärjestelmäkuva (tai asenna hypervisor ja kopioi virtuaalikoneita);

Huomautus. Vaihtoehtoisesti käyttöjärjestelmän käyttöönotto on mahdollista automaattisen vastaustiedoston avulla. Mutta tätä ei käsitellä artikkelissa. Vaikka näet alla, että tämän toiminnon lisääminen ei ole vaikeaa.

  • määrittää käyttöjärjestelmän parametrit (isäntänimi, IP jne.).

Tällä lähestymistavalla samat asetukset suoritetaan peräkkäin jokaisessa palvelimessa. Tällaisen työn tehokkuus on erittäin alhainen.

Automatisoinnin ydin on eliminoida ihmisten osallistuminen palvelimen valmisteluprosessiin. Niin paljon kuin mahdollista.

Automaatio vähentää seisokkeja toimintojen välillä ja mahdollistaa useiden palvelimien käyttöönoton samanaikaisesti. Myös inhimillisistä tekijöistä johtuvien virheiden todennäköisyys pienenee huomattavasti.

Tee-se-itse Bare Metal Provisioning tai palvelimien automaattinen valmistelu alusta alkaen

Miten palvelimet määritetään automaattisesti?

Analysoidaan kaikki vaiheet yksityiskohtaisesti.

Sinulla on Linux-palvelin, jota käytät PXE-asennuspalvelimena. Palvelut asennetaan ja konfiguroidaan siihen: DHCP, TFTP.

Joten käynnistämme palvelimen (joka on määritettävä) PXE:n kautta. Muistetaan kuinka se toimii:

  • Verkkokäynnistys on valittu palvelimelta.
  • Palvelin lataa verkkokortin PXE-ROMin ja ottaa yhteyttä asennuspalvelimeen DHCP:n kautta saadakseen verkko-osoitteen.
  • DHCP-asennuspalvelin antaa osoitteen sekä ohjeet jatkolataukseen PXE:n kautta.
  • Palvelin lataa verkon käynnistyslataimen asennuspalvelimelta PXE:n kautta, jatkolataus tapahtuu PXE-määritystiedoston mukaan.
  • Käynnistys tapahtuu vastaanotettujen parametrien perusteella (ydin, initramfs, liitoskohdat, squashfs-kuva jne.).

Huomautus. Artikkelissa kuvataan käynnistäminen PXE:n kautta BIOS-tilan kautta. Tällä hetkellä valmistajat ottavat aktiivisesti käyttöön UEFI-käynnistystilaa. PXE:n tapauksessa ero on DHCP-palvelimen kokoonpanossa ja ylimääräisen käynnistyslataimen olemassaolossa.

Katsotaanpa esimerkkiä PXE-palvelimen kokoonpanosta (pxelinux-valikko).

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

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

Ydin ja initramfs ovat tässä vaiheessa Linux-välikuva, jonka avulla palvelimen päävalmistelu ja konfigurointi tapahtuu.

Kuten näet, käynnistyslatain välittää monia parametreja ytimelle. Joitakin näistä parametreista käyttää ydin itse. Ja voimme käyttää joitain omiin tarkoituksiin. Tästä keskustellaan myöhemmin, mutta toistaiseksi voit vain muistaa, että kaikki hyväksytyt parametrit ovat saatavilla Linuxin välivedossa /proc/cmdline-tiedoston kautta.

Mistä niitä saa, ytimen ja initramfs:n?
Lähtökohtana voit valita minkä tahansa Linux-jakelun. Mihin kiinnitämme huomiota valittaessa:

  • käynnistyskuvan on oltava yleinen (ohjainten saatavuus, mahdollisuus asentaa lisäapuohjelmia);
  • Todennäköisesti sinun on mukautettava initramfs.

Miten tämä tehdään ratkaisussamme X5:lle? Pohjaksi valittiin CentOS 7. Kokeillaan seuraavaa temppua: valmistele tuleva kuvarakenne, pakata se arkistoon ja luo initramfs, jonka sisällä tulee olemaan tiedostojärjestelmäarkistomme. Kuvaa ladattaessa arkisto laajenee luotuun tmpfs-osioon. Näin saamme minimaalisen, mutta kuitenkin täysimittaisen live-linux-kuvan, jossa on kaikki tarvittavat apuohjelmat ja joka koostuu vain kahdesta tiedostosta: vmkernel ja 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

Joten olemme määrittäneet ytimen ja initramfs:t, jotka tulee ladata. Tämän seurauksena tässä vaiheessa lataamalla Linuxin välikuvan PXE:n kautta saamme käyttöjärjestelmäkonsolin.

Hienoa, mutta nyt meidän on siirrettävä ohjaus "automaatioon".

Se voidaan tehdä näin.

Oletetaan, että kuvan lataamisen jälkeen aiomme siirtää ohjauksen mount.sh-skriptille.
Sisällytetään mount.sh-skripti automaattiseen käynnistykseen. Tätä varten sinun on muutettava initramfs:

  • pura initramfs (jos käytämme yllä olevaa initramfs-vaihtoehtoa, tätä ei vaadita)
  • sisällytä käynnistykseen koodi, joka analysoi /proc/cmdlinen kautta kulkevat parametrit ja siirtää ohjauksen edelleen;
  • pakata initramfs.

Huomautus. X5-työkalupakin tapauksessa latausohjaus siirretään komentosarjalle /opt/x5/toolkit/bin/hook.sh с помощью override.conf в getty tty1 (ExecStart=…)

Joten kuva ladataan, jossa mount.sh-skripti alkaa automaattisesta käynnistyksestä. Seuraavaksi mount.sh-skripti analysoi läpäistyt parametrit (script_cmd=) suorituksen aikana ja käynnistää tarvittavan ohjelman/komentosarjan.

etikettityökalupakki-auto
ydin...
append...nfs_toolkit_script=scripts/mount.sh script_cmd=master-install.sh

etikettityökalupakki-kuori
ydin...
append...nfs_toolkit_script=scripts/mount.sh script_cmd=/bin/bash

Tee-se-itse Bare Metal Provisioning tai palvelimien automaattinen valmistelu alusta alkaen

Tässä vasemmalla on PXE-valikko, oikealla on ohjauksen siirtokaavio.

Selvitimme hallinnan siirron. PXE-valikon valinnasta riippuen joko automaattisen konfiguroinnin komentosarja tai virheenkorjauskonsoli käynnistetään.

Automaattisen konfiguroinnin tapauksessa asennuspalvelimelta asennetaan tarvittavat hakemistot, jotka sisältävät:

  • käsikirjoitukset;
  • tallennetut BIOS/UEFI-mallit eri palvelimille;
  • laiteohjelmisto;
  • palvelin apuohjelmat;
  • lokit

Seuraavaksi mount.sh-skripti siirtää ohjauksen komentosarjahakemistosta master-install.sh-skriptille.

Käsikirjoituspuu (järjestys, jossa ne käynnistetään) näyttää suunnilleen tältä:

  • master-install
  • sharefunctions (jaetut toiminnot)
  • info (informaatiotulostus)
  • mallit (asennusparametrien asettaminen palvelinmallin perusteella)
  • ready_utils (tarvittavien apuohjelmien asennus)
  • fwupdate (laiteohjelmistopäivitys)
  • diag (alkeisdiagnostiikka)
  • biosconf (BIOS/UEFI-asetukset)
  • kellokorjaus (ajan asettaminen emolevyllä)
  • srmconf (etäkäyttöliittymän konfigurointi)
  • raidconf (loogisten taltioiden konfigurointi)

Yksi:

  • esiasennus (ohjauksen siirtäminen käyttöjärjestelmään tai hypervisor-asennusohjelmaan, kuten ESXi)
  • merged-install (kuvan purkamisen välitön aloitus)

Nyt tiedämme:

  • kuinka käynnistää palvelin PXE:n kautta;
  • kuinka siirtää ohjaus omaan skriptiisi.


Jatketaan. Seuraavista kysymyksistä tuli ajankohtainen:

  • Kuinka tunnistaa valmistelemamme palvelin?
  • Mitä apuohjelmia ja miten palvelin määritetään?
  • Kuinka saada asetukset tietylle palvelimelle?

Kuinka tunnistaa valmistelemamme palvelin?

Se on yksinkertaista - DMI:

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

Täältä löydät kaikki tarvitsemasi: toimittaja, malli, sarjanumero. Jos et ole varma, että nämä tiedot ovat kaikissa palvelimissa, voit tunnistaa ne MAC-osoitteensa perusteella. Tai molemmilla tavoilla samanaikaisesti, jos palvelintoimittajat ovat erilaisia ​​ja joissakin malleissa ei yksinkertaisesti ole tietoa sarjanumerosta.

Saatujen tietojen perusteella verkkokansiot asennetaan asennuspalvelimelta ja kaikki tarvittava ladataan (apuohjelmat, laiteohjelmisto jne.).

Mitä apuohjelmia ja miten palvelin määritetään?

Aion tarjota apuohjelmia Linuxille joillekin valmistajille. Kaikki apuohjelmat ovat saatavilla toimittajien virallisilla verkkosivuilla.

Tee-se-itse Bare Metal Provisioning tai palvelimien automaattinen valmistelu alusta alkaen

Laiteohjelmiston kanssa mielestäni kaikki on selvää. Ne tulevat yleensä pakattujen suoritettavien tiedostojen muodossa. Suoritettava tiedosto ohjaa laiteohjelmiston päivitysprosessia ja raportoi palautuskoodin.

BIOS ja IPMI määritetään yleensä mallien avulla. Mallia voidaan tarvittaessa muokata ennen lataamista.

Joidenkin valmistajien RAID-apuohjelmat voidaan myös määrittää mallin avulla. Jos näin ei ole, sinun on kirjoitettava määritysskripti.

RAID-asetusten määrittäminen tapahtuu useimmiten seuraavasti:

  • Pyydämme nykyistä kokoonpanoa.
  • Jos loogisia taulukoita on jo olemassa, poistamme ne.
  • Katsotaanpa mitä fyysisiä levyjä on olemassa ja kuinka monta niitä on.
  • Luo uusi looginen taulukko. Keskeytämme prosessin virheen sattuessa.

Kuinka saada asetukset tietylle palvelimelle?

Oletetaan, että kaikkien palvelimien asetukset tallennetaan asennuspalvelimelle. Tässä tapauksessa, jotta voimme vastata kysymykseemme, meidän on ensin päätettävä, kuinka asetukset siirretään asennuspalvelimelle.

Aluksi pärjäät tekstitiedostoilla. (Jatkossa saatat haluta käyttää tekstitiedostoa varamenetelmänä asetusten siirtoon.)

Voit "jakaa" tekstitiedoston asennuspalvelimella. Ja lisää sen kiinnitys mount.sh-skriptiin.

Rivit näyttävät esimerkiksi tältä:

<sarjanumero> <isäntänimi> <aliverkko>

Insinööri siirtää nämä rivit tiedostoon työkoneestaan. Ja sitten palvelinta määritettäessä tietyn palvelimen parametrit luetaan tiedostosta.

Mutta pitkällä aikavälillä on parempi käyttää tietokantaa palvelinasennusten asetusten, tilojen ja lokien tallentamiseen.

Pelkkä tietokanta ei tietenkään riitä, vaan tulee luoda asiakasosa, jonka avulla asetukset siirretään tietokantaan. Tämä on vaikeampi toteuttaa kuin tekstitiedosto, mutta itse asiassa kaikki ei ole niin vaikeaa kuin miltä näyttää. On täysin mahdollista kirjoittaa minimaaliversio asiakkaasta, joka yksinkertaisesti siirtää tiedot tietokantaan itse. Ja jatkossa asiakasohjelmaa on mahdollista parantaa vapaassa tilassa (raportit, tarrojen tulostaminen, ilmoitusten lähettäminen jne. mitä tulee mieleen).

Tekemällä tietyn pyynnön tietokantaan ja määrittämällä palvelimen sarjanumeron, saamme tarvittavat parametrit palvelimen konfigurointiin.

Lisäksi meidän ei tarvitse keksiä lukkoja samanaikaista käyttöä varten, kuten tekstitiedoston tapauksessa.

Voimme kirjoittaa konfigurointilokin tietokantaan kaikissa vaiheissa ja ohjata asennusprosessia tapahtumien ja valmisteluvaiheiden lippujen avulla.

Nyt tiedämme kuinka:

  • käynnistä palvelin PXE:n kautta;
  • siirrä ohjaus käsikirjoituksemme;
  • tunnistaa palvelin, joka on valmisteltava sen sarjanumeron perusteella;
  • määritä palvelin asianmukaisilla apuohjelmilla;
  • siirtää asetukset asennuspalvelimen tietokantaan asiakasosan avulla.

Saimme selville, miten:

  • asennettu palvelin saa tarvittavat asetukset tietokannasta;
  • kaikki valmistelun edistyminen tallennetaan tietokantaan (lokit, tapahtumat, vaiheen liput).

Entä asentamasi erilaiset ohjelmistot? Kuinka asentaa hypervisor, kopioida VM ja määrittää kaikki?

Jos otat käyttöön tiedostojärjestelmän kuvan (linux) laitteistoon, kaikki on melko yksinkertaista:

  • Kun kaikki palvelinkomponentit on määritetty, otamme kuvan käyttöön.
  • Asenna grub-käynnistyslatain.
  • Me chrootimme ja konfiguroimme kaiken tarvittavan.

Ohjauksen siirtäminen käyttöjärjestelmän asennusohjelmaan (esimerkiksi ESXi).

  • Järjestämme ohjauksen siirron komentosarjastamme hypervisor-asennusohjelmaan käyttämällä automaattista vastaustiedostoa (kickstart):
  • Poistamme nykyiset osiot levyltä.
  • Luo osio, jonka koko on 500 Mt.
  • Merkitsemme sen käynnistettäväksi.
  • Muotoile FAT32:ksi.
  • Kopioimme ESXi-asennustiedostot juureen.
  • Syslinuxin asennus.
  • Kopioi syslinux.cfg tiedostoon /syslinux/

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

  • Kopioi mboot.c32 tiedostoon /syslinux.
  • Boot.cfg:n tulee olla kernelopt=ks=ftp:// /ks_esxi.cfg
  • Käynnistä palvelin uudelleen.

Kun palvelin on käynnistynyt uudelleen, ESXi-asennusohjelma latautuu palvelimen kiintolevyltä. Kaikki tarvittavat asennustiedostot ladataan muistiin ja sitten ESXi-asennus alkaa määritetyn automaattisen vastaustiedoston mukaisesti.

Tässä on muutama rivi automaattivastaustiedostosta 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

Tässä vaiheessa hypervisor asennetaan ja konfiguroidaan ja virtuaalikoneita kopioidaan.

Kuinka määrittää virtuaalikoneita nyt?

Huijasimme hieman: asennuksen aikana asetimme VM1.vmx-tiedostoon parametrin guestinfo.esxihost.id = "$SYSSN" ja ilmoitimme siinä fyysisen palvelimen sarjanumeron.

Nyt käynnistyksen jälkeen virtuaalikone (jossa vmware-tools-paketti on asennettu) voi käyttää tätä parametria:

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

Eli VM pystyy tunnistamaan itsensä (se tietää fyysisen isännän sarjanumeron), tehdä pyynnön asennuspalvelimen tietokantaan ja vastaanottaa määritettävät parametrit. Tämä kaikki on käännetty komentosarjaksi, jonka pitäisi käynnistyä automaattisesti guestos vm:n käynnistyessä (mutta kerran: RunOnce).

Nyt tiedämme kuinka:

  • käynnistä palvelin PXE:n kautta;
  • siirrä ohjaus käsikirjoituksemme;
  • tunnistaa palvelin, joka on valmisteltava sen sarjanumeron perusteella;
  • määritä palvelin asianmukaisilla apuohjelmilla;
  • siirtää asetukset asennuspalvelimen tietokantaan asiakasosan avulla;
  • määrittää erilaisia ​​ohjelmistoja, mukaan lukien esxi-hypervisorin käyttöönotto ja virtuaalikoneiden määrittäminen (kaikki automaattisesti).

Saimme selville, miten:

  • asennettu palvelin saa tarvittavat asetukset tietokannasta;
  • kaikki valmistelun edistyminen tallennetaan tietokantaan (lokit, tapahtumat, vaiheen liput).


Bottom line:

Uskon, että tämän ratkaisun ainutlaatuisuus piilee sen joustavuudessa, yksinkertaisuudessa, ominaisuuksissa ja monipuolisuudessa.

Kirjoita kommentteihin mitä mieltä olet.

Lähde: will.com

Lisää kommentti