Bare-Metal-Provisioning zum Selbermachen oder automatische Servervorbereitung von Grund auf neu

Hallo, ich bin Denis und einer meiner Tätigkeitsbereiche ist die Entwicklung von Infrastrukturlösungen in X5. Heute möchte ich Ihnen mitteilen, wie Sie ein automatisiertes Servervorbereitungssystem basierend auf öffentlich verfügbaren Tools bereitstellen können. Meiner Meinung nach ist dies eine interessante, einfache und flexible Lösung.



Mit Vorbereitung ist gemeint: Aus einem neuen Server sofort einen vollständig konfigurierten Server mit Betriebssystem zu machen Linux oder mit dem ESXi-Hypervisor (Windows Server Casting wird in diesem Artikel nicht behandelt).

Bedingungen :

  • Server - Server, die konfiguriert werden müssen.
  • Installationsserver - Der Hauptserver, der den gesamten Vorbereitungsprozess über das Netzwerk bereitstellt.

Warum brauchen Sie Automatisierung?


Nehmen wir an, es gibt ein Problem: Massenvorbereitung des Servers von Grund auf neu, maximal 30 pro Tag. Auf ihnen können Server verschiedener Hersteller und Modelle sowie verschiedene Betriebssysteme installiert sein. Möglicherweise ist ein Hypervisor vorhanden oder nicht.

Welche Vorgänge sind im Setup-Prozess enthalten (ohne Automatisierung):

  • Verbinden Sie Tastatur, Maus und Monitor mit dem Server.
  • BIOS, RAID, IPMI konfigurieren;
  • Aktualisieren der Komponentenfirmware;
  • Bereitstellen eines Dateisystem-Images (oder Installieren eines Hypervisors und Kopieren virtueller Maschinen);

Hinweis. Alternativ ist die Bereitstellung des Betriebssystems durch Installation mit einer Datei mit automatischer Antwort möglich. Dies wird jedoch im Artikel nicht behandelt. Obwohl Sie unten sehen werden, dass das Hinzufügen dieser Funktionalität einfach ist.

  • Konfigurieren Sie die Betriebssystemparameter (Hostname, IP usw.).

Bei diesem Ansatz werden auf jedem Server nacheinander dieselben Einstellungen vorgenommen. Die Wirksamkeit solcher Arbeiten ist sehr gering.

Die Essenz der Automatisierung besteht darin, die Beteiligung des Menschen von der Vorbereitung des Servers auszuschließen. So viel wie möglich.

Dank der Automatisierung werden Ausfallzeiten zwischen den Vorgängen reduziert und es wird möglich, mehrere Server gleichzeitig vorzubereiten. Die Wahrscheinlichkeit von Fehlern aufgrund des menschlichen Faktors ist ebenfalls stark verringert.



Wie werden die Server automatisch konfiguriert?


Wir werden alle Schritte im Detail analysieren.

Sie haben einen Linux-Server, den Sie als PXE-Installationsserver verwenden. Darauf werden Dienste installiert und konfiguriert: DHCP, TFTP.

Also laden wir den Server (der konfiguriert werden muss) von PXE. Erinnern Sie sich, wie es funktioniert:

  • Der Server, der zum Booten über das Netzwerk ausgewählt wurde.
  • Der Server lädt das PXE-ROM der Netzwerkkarte und kontaktiert den Installationsserver über DHCP, um die Netzwerkadresse zu erhalten.
  • DHCP des Installationsservers enthält die Adresse sowie Anweisungen zum weiteren Herunterladen über PXE.
  • Der Server lädt den Netzwerk-Bootloader über PXE vom Installationsserver. Weitere Downloads erfolgen gemäß der PXE-Konfigurationsdatei.
  • Der Download wird basierend auf den empfangenen Parametern (Kernel, Initramfs, Mount-Punkte, Squashfs-Image usw.) durchgeführt.

Hinweis. Dieser Artikel beschreibt den PXE-Start über den BIOS-Modus. Derzeit führen Hersteller aktiv den UEFI-Bootmode ein. Bei PXE liegt der Unterschied in der Konfiguration des DHCP-Servers und dem Vorhandensein eines zusätzlichen Bootloaders.

Betrachten Sie ein PXE-Serverkonfigurationsbeispiel (pxelinux-Menü).

Datei 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 //    

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

Der Kernel und initramfs sind zu diesem Zeitpunkt ein Zwischen-Linux-Image, mit dessen Hilfe die grundlegende Vorbereitung und Konfiguration des Servers erfolgen wird.

Wie Sie sehen können, übergibt der Bootloader viele Parameter an den Kernel. Einige dieser Parameter werden vom Kernel selbst verwendet. Und wir können einige für unsere eigenen Zwecke verwenden. Dies wird später beschrieben, aber Sie können sich vorerst nur daran erinnern, dass alle übergebenen Parameter im Zwischen-Linux-Image über / proc / cmdline verfügbar sind.

Woher bekommen sie, den Kernel und die Initramfs?
Als Basis können Sie eine beliebige Linux-Distribution auswählen. Worauf wir bei der Auswahl achten:

  • Das Boot-Image muss universell sein (Treiber verfügbar, die Möglichkeit, zusätzliche Dienstprogramme zu installieren).
  • höchstwahrscheinlich müssen initramfs angepasst werden.

Wie geht das in unserer Lösung für X5? Als Basis wurde CentOS 7 ausgewählt. Führen Sie den folgenden Trick aus: Bereiten Sie die zukünftige Bildstruktur vor, packen Sie sie in das Archiv und erstellen Sie initramfs, in dem sich unser Dateisystemarchiv befindet. Beim Laden des Bildes wird das Archiv im erstellten Abschnitt tmpfs bereitgestellt. Auf diese Weise erhalten wir ein minimales, aber vollwertiges Live-Linux-Image mit allen erforderlichen Dienstprogrammen, das nur aus zwei Dateien besteht: vmkernel und 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

Wir haben also einen Kernel und initramfs angegeben, die geladen werden sollen. Als Ergebnis erhalten wir zu diesem Zeitpunkt beim Herunterladen des Linux-Zwischenabbilds über PXE die Betriebssystemkonsole.

Großartig, aber jetzt müssen wir die Kontrolle auf unsere „Automatisierung“ übertragen.

Das kann so gemacht werden.

Angenommen, nach dem Laden des Bildes planen wir, die Kontrolle auf das Skript mount.sh zu übertragen.
Wir fügen das Skript mount.sh in autorun ein. Dazu müssen Sie initramfs ändern:

  • entpacken Sie initramfs (wenn wir die obige Version von initramfs verwenden, ist dies nicht erforderlich)
  • in den Startcode aufnehmen, der die durch / proc / cmdline übergebenen Parameter analysiert und die Steuerung weiter überträgt;
  • pack initramfs.

Hinweis. Im Fall des X5-Toolkits wird /opt/x5/toolkit/bin/hook.sh override.conf getty tty1 (ExecStart=…)

das Startsteuerelement in das Skript übertragen. Daher wird das Image geladen, in dem das Skript mount.sh beim Start gestartet wird. Als nächstes analysiert das Skript mount.sh während der Analyse die übergebenen Parameter (script_cmd =) und startet das erforderliche Programm / Skript.

label toolkit- auto
kernel ...
append ... nfs_toolkit_script = scripts / mount.sh script_cmd = master-install.sh

label toolkit- shell
kernel ...
append ... nfs_toolkit_script = scripts / mount.sh script_cmd = / bin / bash



Hier auf der linken Seite befindet sich das PXE-Menü Auf der rechten Seite befindet sich das Kontrollübertragungsschema.

Mit der Übertragung der Kontrolle haben wir es herausgefunden. Abhängig von der Auswahl des PXE-Menüs wird entweder das Auto-Tuning-Skript oder die Debugging-Konsole gestartet.

Bei der automatischen Konfiguration werden die erforderlichen Verzeichnisse vom Installationsserver bereitgestellt, in denen Folgendes enthalten ist:

  • Skripte;
  • gespeicherte BIOS / UEFI-Vorlagen verschiedener Server;
  • Firmware;
  • Dienstprogramme für Server;
  • Protokolle.

Als Nächstes überträgt das Skript mount.sh die Steuerung aus dem Skriptverzeichnis an das Skript master-install.sh.

Der Skriptbaum (die Reihenfolge ihres Starts) sieht ungefähr so ​​aus:

  • Master-Installation
  • Sharefunctions (gemeinsame Funktionen)
  • info (Informationsausgabe)
  • Modelle (Einstellen der Installationsparameter basierend auf dem Servermodell)
  • prepare_utils (Installation der erforderlichen Dienstprogramme)
  • fwupdate (Firmware-Update)
  • diag (Elementardiagnose)
  • biosconf (BIOS / UEFI-Setup)
  • clockfix (Einstellen der Uhrzeit auf dem Motherboard)
  • srmconf (Konfiguration der Remote-Schnittstelle)
  • raidconf (logische Volumes konfigurieren)

ein von:

  • Vorinstallation (Übertragung der Kontrolle an das Installationsprogramm des Betriebssystems oder Hypervisors, z. B. ESXi)
  • Merged-Install (direkter Start des Entpackens des Images)

Jetzt wissen wir:

  • wie man den Server über PXE bootet;
  • So übertragen Sie die Kontrolle auf Ihr eigenes Skript.

Lass uns weitermachen. Folgende Themen sind relevant geworden:

  • Wie identifiziere ich den Server, den wir vorbereiten?
  • Welche Dienstprogramme und wie konfiguriere ich den Server?
  • Wie erhalte ich Einstellungen für einen bestimmten Server?

Wie identifiziere ich den Server, den wir vorbereiten?


Es ist einfach - DMI:

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

Es hat alles, was Sie brauchen: einen Anbieter, ein Modell, eine Seriennummer. Wenn Sie nicht sicher sind, ob diese Informationen auf allen Servern angezeigt werden, können Sie sie anhand der MAC-Adresse identifizieren. Oder auf beide Arten gleichzeitig, wenn die Serverhersteller unterschiedlich sind und bei einigen Modellen die Seriennummerninformationen einfach nicht verfügbar sind.

Basierend auf den empfangenen Informationen werden Netzwerkordner vom Installationsserver bereitgestellt und alles Notwendige geladen (Dienstprogramme, Firmware usw.).

Welche Dienstprogramme und wie konfiguriere ich den Server?


Ich werde für einige Hersteller Dienstprogramme für Linux geben. Alle Dienstprogramme sind auf den offiziellen Websites der Anbieter verfügbar.



Mit der Firmware denke ich, dass alles klar ist. Sie werden normalerweise in verpackten ausführbaren Dateien geliefert. Die ausführbare Datei steuert den Firmware-Aktualisierungsprozess und meldet einen Rückkehrcode.

BIOS und IPMI werden normalerweise über Vorlagen konfiguriert. Bei Bedarf kann die Vorlage vor dem Laden bearbeitet werden.

RAID-Dienstprogramme für einige Anbieter können auch gemäß der Vorlage konfiguriert werden. Ist dies nicht der Fall, müssen Sie ein Konfigurationsskript schreiben.

Das Verfahren zum Konfigurieren von RAID ist meistens wie folgt:

  • Wir fordern die aktuelle Konfiguration an.
  • Wenn es bereits logische Arrays gibt, löschen wir sie.
  • Wir schauen uns an, welche physischen Festplatten vorhanden sind und wie viele davon.
  • Erstellen Sie ein neues logisches Array. Wir unterbrechen den Vorgang im Fehlerfall.

Wie erhalte ich Einstellungen für einen bestimmten Server?


Angenommen, alle Servereinstellungen werden auf dem Installationsserver gespeichert. In diesem Fall müssen Sie zur Beantwortung unserer Frage zunächst entscheiden, wie die Einstellungen auf den Installationsserver übertragen werden sollen.

Zunächst ist es durchaus möglich, mit Textdateien zu arbeiten. (In Zukunft können Sie eine Textdatei als Sicherungsmethode zum Übertragen von Einstellungen verwenden.)

Sie können eine Textdatei auf dem Installationsserver "freigeben". Und fügen Sie es dem Skript mount.sh hinzu.

Die Zeilen sehen beispielsweise folgendermaßen aus:

<Seriennummer> <Hostname> <Subnetz>

Diese Zeilen werden vom Techniker von seiner Arbeitsmaschine in die Datei übertragen. Beim Einrichten des Servers werden dann die Parameter für einen bestimmten Server aus der Datei gelesen.

In Zukunft ist es jedoch besser, die Datenbank zum Speichern der Einstellungen, Status und Serverinstallationsprotokolle zu verwenden.

Natürlich kann eine Datenbank nicht, und Sie müssen ein Client-Teil erstellen, mit dessen Hilfe die Einstellungen in die Datenbank übertragen werden. Dies ist schwieriger zu implementieren als eine Textdatei, aber es ist tatsächlich nicht so schwierig, wie es sich anhört. Die Mindestversion des Clients, die einfach Daten in die Datenbank überträgt, kann durchaus selbst geschrieben werden. In Zukunft wird es möglich sein, das Client-Programm auch im kostenlosen Modus zu verbessern (Berichte, Drucken von Etiketten, Senden von Benachrichtigungen usw., was auch immer in den Sinn kommt).

Nachdem wir eine bestimmte Anfrage an die Datenbank gestellt und die Seriennummer des Servers angegeben haben, erhalten wir die erforderlichen Parameter für die Konfiguration des Servers.

Außerdem müssen wir keine Sperren für den gleichzeitigen Zugriff erfinden, wie dies bei einer Textdatei der Fall ist.

Wir können das Konfigurationsprotokoll in allen Phasen der Datenbank schreiben und den Installationsprozess über Ereignisse und Flags der Vorbereitungsphasen steuern.

Jetzt wissen wir wie:

  • Laden Sie den Server über PXE.
  • Übertragen Sie die Kontrolle auf unser Skript.
  • Identifizieren Sie den Server, der vorbereitet werden soll, anhand der Seriennummer.
  • Konfigurieren Sie den Server mit den entsprechenden Dienstprogrammen.
  • Übertragen Sie die Einstellungen mithilfe des Client-Teils in die Installationsserver-Datenbank.

Finden Sie heraus, wie:

  • Der installierte Server erhält die erforderlichen Einstellungen von der Datenbank.
  • Alle Vorbereitungsfortschritte werden in der Datenbank aufgezeichnet (Protokolle, Ereignisse, Bühnenflags).

Was ist mit den verschiedenen Arten von Software, die installiert werden? Wie installiere ich einen Hypervisor, kopiere eine VM und konfiguriere all dies?


Bei der Bereitstellung eines Dateisystem-Images (Linux) auf Hardware ist alles ganz einfach:

  • Stellen Sie das Image bereit, nachdem Sie alle Serverkomponenten eingerichtet haben.
  • Installieren Sie den Grub-Bootloader.
  • Wir machen chroot und konfigurieren alles, was nötig ist.

So übertragen Sie die Steuerung an das Betriebssystem-Installationsprogramm (am Beispiel von ESXi).

  • Wir organisieren die Übertragung der Kontrolle von unserem Skript zum Hypervisor-Installationsprogramm mithilfe der Auto-Response-Datei (Kickstart):
  • Löschen Sie die aktuellen Partitionen auf der Festplatte.
  • Erstellen Sie eine 500-MB-Partition.
  • Wir markieren es als Boot.
  • Format in FAT32.
  • Wir kopieren die ESXi-Installationsdateien in das Stammverzeichnis.
  • Installieren Sie syslinux.
  • Kopieren Sie syslinux.cfg nach / syslinux /

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

  • Kopieren Sie mboot.c32 nach / syslinux.
  • In boot.cfg sollte kernelopt = ks = ftp: // <IP des Installationsservers> /ks_esxi.cfg sein
  • Starten Sie den Server neu.

Nach dem Neustart des Servers startet das ESXi-Installationsprogramm von seiner Festplatte. Alle erforderlichen Installationsdateien werden in den Speicher geladen und die Installation von ESXi beginnt gemäß der angegebenen Datei für die automatische Antwort.

Hier sind einige Zeilen aus der automatischen Antwortdatei 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:esxi_password@127.0.0.1
/vmfs/volumes/datastore1/ovftool/tools/ovftool --acceptAllEulas --noSSLVerify --datastore=datastore1 --name=VM2 /vmfs/volumes/nfsshare1/VM_T/VM2.ova vi://root:esxi_password@127.0.0.1

#      

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

In dieser Phase wird ein Hypervisor installiert und konfiguriert, virtuelle Maschinen werden kopiert.

Wie konfiguriere ich jetzt virtuelle Maschinen?

Wir haben ein wenig geschummelt: Während der Installation haben wir den Parameter guestinfo.esxihost.id = "$ SYSSN" in der Datei VM1.vmx festgelegt und die Seriennummer des darin enthaltenen physischen Servers angegeben.

Nach dem Start kann die virtuelle Maschine (mit installiertem vmware-tools-Paket) auf diesen Parameter zugreifen:

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

Das heißt, die VM kann sich selbst identifizieren (sie kennt die Seriennummer des physischen Hosts), eine Anforderung an die Installationsserverdatenbank senden und die Parameter abrufen, die konfiguriert werden müssen. Dies alles wird in einem Skript ausgeführt, das beim Start von guestos vm automatisch gestartet werden sollte (jedoch einmal: RunOnce).

Jetzt wissen wir wie:

  • Laden Sie den Server über PXE.
  • Übertragen Sie die Kontrolle auf unser Skript.
  • Identifizieren Sie den Server, der vorbereitet werden soll, anhand der Seriennummer.
  • Konfigurieren Sie den Server mit den entsprechenden Dienstprogrammen.
  • Übertragen Sie die Einstellungen mithilfe des Client-Teils in die Installationsserver-Datenbank.
  • Konfigurieren Sie verschiedene Arten von Bestellungen, einschließlich der Bereitstellung des esxi-Hypervisors und der Konfiguration virtueller Maschinen (und alles automatisch).

Finden Sie heraus, wie:

  • Der installierte Server erhält die erforderlichen Einstellungen von der Datenbank.
  • Alle Vorbereitungsfortschritte werden in der Datenbank aufgezeichnet (Protokolle, Ereignisse, Bühnenflags).

Fazit:

Ich glaube, die Einzigartigkeit dieser Lösung liegt in ihrer Flexibilität, Einfachheit, ihren Fähigkeiten und ihrer Vielseitigkeit.

Bitte schreiben Sie in die Kommentare, was Sie denken.

All Articles