Een back-up maken van de VMware ESXi Host-configuratie en deze herstellen: A Step-By-Step Guide
On december 3, 2021 by adminBackup is een van de belangrijkste handelingen voor een continue werking van elke IT-infrastructuur. Door servers als virtuele machines (VM’s) op ESXi-hosts in vSphere uit te voeren, profiteert u van grotere voordelen bij het maken van back-ups van VM-gegevens. Met back-ups op hostniveau kunt u handige functies gebruiken, zoals back-ups zonder agents, volledige VM-back-ups (VM-gegevens + VM-configuratie), snapshots voor het maken van back-ups van actieve VM’s, en een lage serverbelasting. Het hebben van gezonde ESXi-hosts is een sleutel tot succes bij het draaien van virtuele machines. Daarom is het beter om een back-up te maken van de ESXi-configuratie. Als er iets misgaat met een ESXi host, kan de configuratie in enkele minuten worden hersteld zonder dat u veel tijd hoeft te besteden aan het vanaf nul configureren van een ESXi server. De blogpost van vandaag behandelt de ESXi backup configuratie en onderzoekt hoe u met verschillende methodes een backup kunt maken van de ESXi host.
De ESXi Command Line gebruiken om een backup te maken van de ESXi Host
Het gebruik van de ESXi command line is de meest betaalbare methode om een backup te maken van de ESXi host configuratie. U hoeft geen extra software te installeren om de ESXi commandoregel te gebruiken. Je moet ESXi shell en remote SSH toegang tot een ESXi host inschakelen. Dit proces wordt uitgelegd in de blog post over ESXCLI. Zodra u via SSH verbinding heeft gemaakt met uw ESXi host, kunt u de commando’s uitvoeren.
ESXi configuratie wordt elk uur automatisch opgeslagen in het bestand /bootblank/state.tgz. Daarom moet u ervoor zorgen dat de huidige ESXi-configuratie nu naar ESXi-configuratiebestanden wordt geschreven om te bevestigen dat alle wijzigingen die sinds de laatste autosave in de ESXi-configuratie zijn aangebracht, worden opgeslagen:
vim-cmd hostsvc/firmware/sync_config
Back-up ESXi-configuratie:
vim-cmd hostsvc/firmware/backup_config
Als gevolg hiervan ontvangt u een link om het configBundle.tgz archief van de ESXi host te downloaden. Je moet de asterisk vervangen door het IP adres van je ESXi host. Het archiefbestand dat de ESXi configuratie backup bevat, wordt gedurende een korte periode (enkele minuten) opgeslagen in de /scratch/downloads directory. De scratch partitie werd genoemd in de blog post over het installeren van ESXi op een USB Flash drive.
Het IP adres van uw ESXi host kan worden gecontroleerd in de ESXi direct console interface of met behulp van het volgende commando:
esxcli network ip interface ipv4 get
Het IP adres van de ESXi host die in het huidige voorbeeld wordt gebruikt is 192.168.101.208.
Download het ESXi backup archief zo snel mogelijk en bewaar het op een veilige plaats.
Hoe automatiseer je een backup van ESXi configuratie in de ESXi command line
Het voordeel van een command line interface is de mogelijkheid voor het automatiseren van taken die het biedt; Backup van ESXi configuratie is geen uitzondering. Laten we eens bekijken hoe u dit kunt doen:
1. Maak een directory aan om back-upbestanden op te slaan op uw ESXi datastore.
mkdir /vmfs/volumes/datastore1/ESXi_backup
2. Maak een script om een back-up te maken van ESXi configuratie:
vi /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
3. Voeg de volgende regels toe aan het script:
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
find /scratch/downloads/ -name \*.tgz -exec cp {} /vmfs/volumes/datastore1/ESXi_backup/ESXi_config_backup_$(date +’%Y%m%d_%H%M%S’).tgz \;
4. Sla het bestand op en sluit vi:
:wq
Note: Voor meer gemak kunt u ook de ESXi-hostnaam of het IP-adres toevoegen aan de naam van het back-upbestand. Dit helpt u verwarring te voorkomen wanneer u meerdere ESXi hosts gebruikt.
5. Maak het script uitvoerbaar:
chmod +x /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
6. Ga naar de directory waar het script zich bevindt:
cd /vmfs/volumes/datastore1/ESXi_backup/
7. Voer het script uit:
./esxi_backup.sh
8. Controleer of er een back-upbestand is gemaakt:
ls -al
9. Laten we ervoor zorgen dat het back-up ESXi host script op schema (automatisch) wordt uitgevoerd. Bewerk hiervoor de configuratie van de scheduler:
vi /var/spool/cron/crontabs/root
10. Voeg de volgende string toe om elke dag om 02:10 uur een ESXi configuratie back-up uit te voeren.
10 02 * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
11. Sla wijzigingen in het bestand op. Om wijzigingen in het alleen-lezen bestand op te slaan, voert u in:
:wq!
Als alternatief kunt u de bestandsrechten wijzigen voordat u het bestand bewerkt:
chmod +w /var/spool/cron/crontabs/root
Daarna wordt van de ESXi-configuratie elke nacht om 02:10 uur automatisch een back-up gemaakt in het bestand met de naam ESXi_config_bakup_date_time.tgz
Hoe ESXi configuratie te herstellen in ESXi command line
U moet ESXi van dezelfde versie en hetzelfde build nummer geïnstalleerd hebben op de machine waarop u de ESXi configuratie wilt herstellen. Deze regel geldt voor alle ESXi configuratie herstelmethoden die in deze blogpost worden besproken. Als u de ESXi configuratie gaat herstellen op de ESXi host die vanaf nul is geïnstalleerd (duidelijk geïnstalleerd), moet u het IP-adres instellen voor de netwerkinterface die wordt gebruikt voor het ESXi managementnetwerk en SSH-toegang inschakelen. De initiële ESXi configuratie wordt uitgelegd in deze blog post. De UUID moet hetzelfde zijn op zowel de ESXi server waarvan een back-up is gemaakt als op de ESXi server waarop de configuratie moet worden teruggezet. Lees hieronder in deze sectie wat u moet doen als de UUID-waarden verschillend zijn.
Als u uw vers geïnstalleerde ESXi-host hebt voorbereid om de ESXi-configuratie vanaf een back-up te herstellen, maakt u via SSH verbinding met de ESXi-host en zet u de host in de onderhoudsmodus.
esxcli system maintenanceMode set -enable yes
of
vim-cmd hostsvc/maintenance_mode_enter
Kopieer het archief dat de ESXi configuratie backup bevat naar een of andere directory op een ESXi host met behulp van een SCP client, bijvoorbeeld WinSCP. Kopieer het archief configBundle-xxxx.tgz van een lokale machine naar de map /tmp/ op de ESXi-bestemmingsserver.
Benoem het bestand configBundle-xxxx.tgz tot configBundle.tgz voordat u een opdracht invoert om de ESXi-configuratie te herstellen. Anders krijgt u een foutmelding: “File /tmp/configBundle.tgz was not found”.
U kunt het bestand hernoemen in de ESXi shell waarmee u via SSH verbinding heeft gemaakt:
mv /tmp/configBundle-esxi6-7b.localdomain.tgz /tmp/configBundle.tgz
Herstel de ESXi configuratie:
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
Na het uitvoeren van dit commando wordt de ESXi host automatisch opnieuw opgestart.
Na het opnieuw opstarten van de ESXi server dient u de onderhoudsmodus af te sluiten, waarna u de host als gebruikelijk kunt gebruiken.
esxcli system maintenanceMode set -enable no
of
vim-cmd hostsvc/maintenance_mode_exit
Hoe wijzigt u de UUID om de ESXi-configuratie te herstellen
De UUID van de ESXi-server kan in de ESXi commandoregelinterface worden gecontroleerd met het commando:
esxcfg-info -u
De UUID waarde van de gebackupte ESXi host wordt vermeld in het Manifest.txt-bestand in het configBundle.tgz-back-uparchief dat u met de bovenstaande opdrachten hebt gemaakt.
U kunt de UUID van de ESXi-server niet wijzigen, aangezien de identifier afhankelijk van de hardware wordt gegenereerd. U kunt echter de ESXi-configuratie van de ESXi-host A op de ESXi-host B herstellen nadat u de UUID hebt gewijzigd in het bestand Manifest.txt dat is opgeslagen in het configBundle.tgz ESXi-configuratieback-uparchief.
Laten we eens kijken welk algoritme kan worden gebruikt om de UUID te wijzigen voor het toepassen van de geback-upte configuratie op een andere fysieke server. De server A is een server waarvan de configuratie is geback-upt en de server B is een server waarop de configuratie moet worden toegepast.
Stap 1
Controleer de UUID op de ESXi host waarop u de geback-upte configuratie wilt toepassen (server B). Dit kan met ten minste twee methoden, maar met de tweede methode kunt u ook de ESXi-versie controleren.
1. Voer de esxcfg-info -u
2.1 Maak een back-up van de configuratie van de ESXi server B
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
2.2 Kopieer het backup archief naar de tijdelijke directory en ga naar die directory
cp /scratch/downloads/_hash_value_/configBundle-localhost.localdomain.tgz /tmp
cd /tmp/
2.3 Pak de bestanden uit het archief
tar zxvf configBundle.tgz
2.4 Open het Manifest.txt bestand met vi en controleer de UUID waarde (je ziet een aparte regel met de UUID). Noteer de UUID.
vi Manifest.txt
In ons geval is de UUID 1E9E4D56-B724-DFBE-D19D-4C2D827E0188
2.5 U kunt tijdelijke bestanden in de /tmp/ directory verwijderen:
rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz
Stage 2
1. Kopieer het configBundle.tgz configuratie backup archief van de ESXi server A naar de Server B, bijvoorbeeld naar de /tmp/ directory en ga naar die directory.
2. Extract bestanden uit het configBundle.tgz archive
tar zxvf configBundle.tgz
3. Open het Manifest.txt bestand met vi en update de UUID waarde van server A naar de UUID van server B.
vi Manifest.txt
In ons geval moeten we 9EA94D56-7E39-96A8-AB45-DF31EF0971EC veranderen in 1E9E4D56-B724-DFBE-D19D-4C2D827E0188.
Bewaar het bestand en sluit de tekst editor af :wq
4. Hernoem uw bronbestand configBundle.tgz bestand naar configBundle1.tgz, bijvoorbeeld (als de naam van uw ESXi configuratieback-upbestand verschilt van configBundle.tgz, kunt u deze stap overslaan).
mv configBundle.tgz configBundle1.tgz
5. Tar Manifest.txt, state.tgz en jumpstrt.gz bestanden naar een nieuw configBundle.tgz archief:
tar zcvf configBundle.tgz Manifest.txt state.tgz jumpstrt.gz
6. Zet de ESXi host in onderhoudsmodus en herstel de configuratie
esxcli system maintenanceMode set -enable yes
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
Hoe een back-up maken van ESXi Host met vSphere CLI
Een andere opdrachtregelinterface die door VMware wordt geleverd om ESXi hosts te beheren is vSphere CLI (niet te verwarren met VMware PowerCLI). U moet vSphere CLI installeren op een machine met Linux of Windows om ESXi hosts op afstand te beheren. Perl is vereist om vSphere CLI te installeren. Het voordeel van het gebruik van vSphere CLI is de mogelijkheid om gemak en de kracht van bash te gebruiken in Linux. Ubuntu Linux wordt gebruikt in de voorbeelden van vandaag.
Installeren en configureren van vCLI
Download vSphere CLI van VMware’s web site.
Ga naar de directory waar het gedownloade bestand staat en pak de bestanden uit het archief.
tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.gz
Installeer de benodigde pakketten:
De officiële VMware aanbeveling is om deze set pakketten te installeren:
apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl
Ga naar de directory waar de uitgepakte bestanden zich bevinden en voer het installatieprogramma uit:
./vmware-install.pl
Lees en accepteer de licentieovereenkomst. Als het installatieprogramma u vraagt om enkele vereiste modules te installeren, typt u y en installeert u de modules.
Enkele modules moeten in ons geval handmatig worden geïnstalleerd. Ze kunnen worden geïnstalleerd met de interactieve shell van Perl.
Ontdek de interactieve shell van Perl:
perl -MCPAN -e shell
Run het commando om de vereiste Perl-module te installeren:
install Devel::StackTrace
Op dezelfde manier installeert u andere modules.
Note: In ons geval kon één module niet worden geïnstalleerd in de interactieve Perl-shell, maar we kunnen die module installeren met het commando in de Ubuntu-console:
apt-get install libcrypt-ssleay-perl
Na het installeren van Perl-modules, voert u het VMware vSphere CLI-installatieprogramma opnieuw uit.
De installatie is met succes voltooid en u ziet in dit geval het volgende scherm:
Nu gaan we proberen vSphere CLI te gebruiken en een commando in te voeren in de Linux-console om een lijst met apparaten van de ESXi-server te zien (192.168.101.208 is het IP-adres van de ESXi-server).
esxcli -server 192.168.101.208 storage core device list
De SHA-1 thumbprint van de server is niet vertrouwd, en de verbinding met de ESXi-host is mislukt. Dit betekent dat u de thumbprint om veiligheidsredenen moet definiëren. Laten we een ander commando proberen:
esxcli -server 192.168.101.208 -thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get
De gebruikersnaam en het wachtwoord zullen in de console in de interactieve modus worden gevraagd.
Probeer geen commando’s te gebruiken waarbij een gebruikersnaam en wachtwoord als platte tekst worden ingetypt zoals deze:
Dit is om veiligheidsredenen. De uitgevoerde commando’s worden in Linux bewaard totdat u het commando history -c uitvoert om de geschiedenis te wissen. Als u wilt voorkomen dat u de interactieve modus gebruikt en handmatig een login en wachtwoord invoert, kunt u de ESXi-sessie opslaan in het bestand en dit bestand gebruiken wanneer u commando’s uitvoert. Het opslaan van sessies is veilig, in tegenstelling tot het invoeren van een wachtwoord als platte tekst in het commando. Het opslaan van sessies wordt hieronder in deze blogpost uitgelegd.
Een thumbprint opslaan om verbinding te maken met ESXi hosts
Elke keer een ESXi thumbprint invoeren om een commando uit te voeren, is niet handig. Gelukkig is het mogelijk om de thumbprint op te slaan en verdere commando’s met vSphere CLI uit te voeren zonder een thumbprint te definiëren.
Ga naar de directory:
cd /usr/lib/vmware-vcli/apps/general/
U moet het commando uitvoeren zoals:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s server -t thumbprint
In ons specifieke voorbeeld is het commando:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s 192.168.101.208 -t B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA
Nu kunt u commando’s uitvoeren in vSphere CLI zonder elke keer een thumbprint in te voeren.
esxcli -server 192.168.101.208 system maintenanceMode get
De noodzaak om een login en wachtwoord in te voeren is echter niet verdwenen – u moet nog steeds een login/wachtwoord invoeren. Hoe kunt u vSphere CLI zo instellen dat commando’s worden uitgevoerd zonder telkens een wachtwoord in te voeren? Het antwoord op deze vraag staat in de onderstaande paragrafen.
Een sessiebestand gebruiken om verbinding te maken met ESXi hosts
Het gebruik van een opgeslagen sessiebestand is een van de methoden om het invoeren van een gebruikersnaam en wachtwoord te vermijden bij het uitvoeren van een commando op een remote ESXi host met behulp van vSphere CLI.
Maak eerst een directory aan om ESXi configuratie back-up bestanden in op te slaan, bijvoorbeeld /backup/.
mkdir /backup
Ga naar die directory:
cd /usr/lib/vmware-vcli/apps/session
Sla uw geautoriseerde ESXi-hostsessie op in het bestand door een Perl-script te gebruiken met het commando:
perl save_session.pl -savesessionfile /backup/192-168-101-208session -server 192.168.101.208 -gebruikersnaam root -wachtwoord TestPass_555
Waar:
-savesessionfile /backup/192-168-101-208session is de naam van het aangemaakte sessiebestand
-server 192.168.101.208 is de naam van de ESXi host waarvan de sessie wordt opgeslagen (deze ESXi host wordt in meerdere voorbeelden gebruikt)
-username root is de naam van de gebruiker die verbonden is met de ESXi host
-password TestPass_555 is het wachtwoord voor de gebruiker die verbonden is met de ESXi host
Nu kan u commando’s uitvoeren zonder een wachtwoord in te geven, maar u moet de -sessionfile sleutel (optie) ingeven en het pad naar het sessiebestand definiëren. Bijvoorbeeld:
esxcli -sessionfile /backup/192-168-101-208session system maintenanceMode get
Een configuratiebestand gebruiken om verbinding te maken met ESXi-hosts
Het idee achter deze methode is om credentials in het configuratiebestand op te slaan als platte tekst en naar dit bestand te verwijzen wanneer u ESXi-opdrachten uitvoert in vSphere CLI. Maak eerst een configuratiebestand aan:
vim /backup/vcli-config
Voeg de referenties in het volgende formaat in:
VI_USERNAME=root
VI_PASSWORD=TestPass_555
Sla het bestand op.
Uitvoeren van een commando op een remote ESXi server met behulp van vSphere CLI:
esxcli -server 192.168.101.208 -config vcli-config system maintenanceMode get
Aangezien referenties als platte tekst worden opgeslagen, is deze methode niet veilig.
Een credential store gebruiken om verbinding te maken met ESXi-hosts
Een credential store is het xml-bestand dat zich in de gebruikersdirectory in de vmware-subdirectory ~/.vmware/credstore/vicredentials.xml bevindt. Het voordeel van het gebruik van de credentials store om commando’s op ESXi hosts op afstand uit te voeren, is dat een wachtwoord niet als platte tekst wordt opgeslagen, vandaar dat deze methode een hogere veiligheid biedt.
Om credentials aan de credential store toe te voegen, voert u het commando uit:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -server 192.168.101.208 -username root
Lijst de in de credentials store opgeslagen credentials om er zeker van te zijn dat de benodigde credentials aanwezig zijn:
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl list
Uitvoeren van het commando op de remote ESXi host zonder een wachtwoord in te voeren door gebruik te maken van de credentials store.
# esxcli -server 192.168.101.208 -credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get
Als u een niet-root gebruiker gebruikt, wordt het credentials bestand opgeslagen in /home/user_name/.vmware/credstore/vicredentials.xml
Op de schermafbeelding hieronder ziet u hoe de referenties in het credentials store-bestand worden opgeslagen.
VSphere CLI gebruiken om een back-up te maken van de ESXi-hostconfiguratie
Nu u vSphere CLI op de Ubuntu Linux-machine hebt geconfigureerd, kunt u de opdrachten uitvoeren en een back-up maken van de ESXi-configuratie.
Ga naar de /usr/bin/ directory
cd /usr/bin
Nu kunt u een backup maken van ESXi configuratie zonder een gebruikersnaam en wachtwoord in te voeren nadat u de credentials in de credentials store heeft opgeslagen:
Of na het opslaan van een sessie in het sessiebestand:
vicfg-cfgbackup -sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz
Note: vicfg-opdrachten zijn verouderd. Het is beter om ESXCLI-equivalente opdrachten in de opdrachtregelinterface te gebruiken wanneer u met ESXi-hosts werkt.
Note: Het nadeel van het gebruik van de optie -sessionfile is de time-out van 30 minuten in ruststand na het uitvoeren van de laatste opdracht in vSphere CLI. Daarna moet u zich authenticeren en opnieuw een sessiebestand maken.
Als u een back-up van de ESXi-configuratie wilt maken terwijl u een wachtwoord invoert in de interactieve modus, kunt u het commando uitvoeren:
vicfg-cfgbackup -server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz
Hoe een back-up van ESXi-configuratie automatiseren
Als u een dynamisch veranderde omgeving hebt en de configuratie van ESXi-hosts vaak verandert, is een handmatige back-up van ESXi-hosts wellicht niet rationeel. In dat geval kunt u de back-up van ESXi automatiseren door een back-upcommando of een back-upscript met meerdere commando’s aan de scheduler toe te voegen.
Crontab is een scheduler in Linux. Bewerk de scheduler configuratie in Linux om het ESXi configuratie backup commando periodiek en automatisch uit te voeren.
crontab -e
Note: Als u de crontab configuratie voor de eerste keer bewerkt, moet u de standaard tekst editor selecteren die gebruikt moet worden om de crontab configuratie te bewerken. In ons voorbeeld gebruiken we /usr/bin/vim.basic voor dit doel.
Het formaat van de crontab configuratie is als volgt:
minuten uren dag_van_de_maand maand dag_van_de_week commando
Laten we elke nacht om 03:25 uur een back-up maken van de ESXi host configuratie:
25 03 * * * /usr/bin/vicfg-cfgbackup -server 192.168.101.208 -config /backup/vcli-config -s /backup/192-168-101-208-esxi-cfg-cron.tgz
Schrijf de configuratie van de crontab scheduler en sluit de tekst editor vim.
:wq
Laten we wachten op 03:25 AM om de directory te controleren waarin ESXi backup configuratie bestanden moeten worden opgeslagen.
ls -al
Zoals u op de schermafbeelding hieronder ziet, is het back-upbestand van de ESXi-hostconfiguratie om 03:25 automatisch aangemaakt.
Nu is de back-up van de ESXi-configuratie automatisch gemaakt, wat geweldig is, maar er is een nadeel. Elke keer als crontab een geplande opdracht uitvoert om de ESXi configuratie backup te maken, wordt het vorige tgz bestand overschreven door het nieuwe tgz bestand. Deze situatie kan problemen veroorzaken als de gisteren gemaakte backup met de juiste ESXi configuratie wordt overschreven door een vandaag gemaakt bestand dat de verkeerde ESXi configuratie bevat. De juiste manier om een dergelijk probleem te voorkomen is het maken van back-ups van ESXi configuratie in verschillende bestanden.
Laten we een eenvoudig script maken om ESXi configuratie elke keer op te slaan als een apart bestand met een unieke bestandsnaam die de datum en tijd van het maken van de ESXi configuratie back-upbestand in de naam van het bestand bevat. Door een script te maken kunt u commando’s toevoegen om een back-up te maken van meerdere ESXi hosts door een enkel script uit te voeren.
1. Maak het esxi_backup.sh bestand aan in de /backup/ directory:
vim /backup/esxi_backup.sh
2. Voeg regels aan het bestand toe als volgt:
#!/bin/bash
ESXI101_208_BACKUP_NAME=”192-168-101-208-$(datum +’%Y%m%d_%H%M%S’)esxi-cfg.tgz”
vicfg-cfgbackup -server 192.168.101.208 -config /backup/vcli-config -s /backup/$ESXI101_208_BACKUP_NAME
3. Schrijf de veranderingen in het bestand en sluit de tekst editor vim af.
:wq
4. Maak het bestand uitvoerbaar:
chmod +x /backup/esxi_backup.sh
5. Bewerk de scheduler-configuratie:
crontab -e
6. Voeg de regel als volgt toe:
50 06 * * /backup/esxi_backup.sh
Laten we crontab instellen om het ESXi configuratie back-upscript om 06:50 uur uit te voeren. Schakel de vorige geplande taak die u eerder hebt toegevoegd uit door het teken # toe te voegen aan het begin van de regel.
7. Wacht op de ingestelde tijd en controleer vervolgens of het back-uparchief voor de ESXi-configuratie is gemaakt.
Dit is een eenvoudig script dat het idee van automatisering demonstreert. U kunt complexe scripts maken om back-ups te maken van meerdere ESXi-hosts.
Note: na elke herstart van ESXi of na 30 minuten inactiviteit wordt de ESXi-sessie niet geverifieerd. Houd rekening met deze functie wanneer u een script maakt voor geautomatiseerde ESXi-back-ups.
Hoe ESXi-configuratie herstellen in vSphere CLI
De vereisten voor het herstellen van ESXi-configuratie met behulp van vSphere CLI zijn vergelijkbaar met de vereisten die gelden voor andere methoden. Om de ESXi-configuratie te herstellen, moet u ervoor zorgen dat externe toegang via SSH is ingeschakeld en het IP-adres van de ESXi-server bekend is (het wordt aanbevolen om hetzelfde IP-adres te gebruiken als het IP-adres van de geback-upte ESXi-host) en voer vervolgens het commando uit zoals:
vicfg-cfgbackup -server=ESXi_host_IP_address -username=root -l backup_file
In ons specifieke voorbeeld is het commando:
vicfg-cfgbackup -server=192.168.101.208 -username=root -l /backup/192-168-101-208-esxi-cfg.tgz
Als de UUID van de doel ESXi host waarop u de configuratie wilt herstellen een UUID heeft die verschilt van de UUID van de gebackupte ESXi server (waarvan de UUID is gedefinieerd in het Manifest.txt bestand in het tgz backup archief), kunt u de -f toets (force) gebruiken om de UUID te overrulen.
U kunt de UUID van de draaiende ESXi host controleren met het commando, zoals u zich herinnert:
esxcfg-info -u
Power CLI gebruiken om een back-up te maken van ESXi Host
Gebruikers die van Windows houden, kunnen PowerCLI gebruiken, wat een set PowerShell cmdlets is om een back-up te maken van ESXi configuratie. Enkele basis PowerCLI commando’s worden uitgelegd in deze blog post. Eerst moet u PowerCLI installeren op uw besturingssysteem. Het algoritme is als volgt:
1. Start PowerCLI als administrator in Windows.
2. Maak verbinding met uw ESXi server:
Connect-VIServer ESXi_IP_address -user user_name -password your_password
In ons geval gebruiken we de commando’s:
Connect-VIServer 192.168.101.208 -user root -password TestPass_555
Get-VMHostFirmware -vmhost 192.168.101.208 -BackupConfiguration -DestinationPath “C:\backup ESXi host”
Als uw ESXi-hosts worden beheerd door vCenter Server, kunt u eerst verbinding maken met vCenter en vervolgens een back-up maken van de ESXi-configuratie op uw hosts in PowerCLI zonder dat u zich telkens hoeft te authenticeren voordat u een back-up maakt van elke hostconfiguratie.
Connect-VIServer 10.10.10.16
Voer uw administratieve login en wachtwoord in voor toegang tot vCenter Server. Hiervoor verschijnt een pop-upvenster.
Back-up ESXi configuratie van elke host:
Get-VMHostFirmware -vmhost 10.10.10.61 -BackupConfiguration -DestinationPath “C:\backup ESXi host”
Get-VMHostFirmware -vmhost 10.10.46 -BackupConfiguration -DestinationPath “C:\backup ESXi host”
Get-VMHostFirmware -vmhost 10.10.4610.10.46 -BackupConfiguration -DestinationPath “C:\backup ESXi host”
Hoe ESXi configuratie te herstellen in PowerCLI
Run VMware PowerCLI als beheerder. Maak verbinding met een ESXi host waarop u de configuratie wilt herstellen (in ons voorbeeld herstellen we de configuratie op de ESXi host met IP-adres 192.168.101.208). Zet de host vervolgens in onderhoudsmodus:
Set-VMHost -VMHost 192.168.101.208 -State Onderhoud
Zorg ervoor dat de VM’s die op die ESXi host staan uitgeschakeld zijn of gemigreerd zijn naar een andere ESXi host voordat de ESXi configuratie wordt hersteld. Houd er rekening mee dat na het uitvoeren van een opdracht voor het herstellen van de configuratie, de ESXi host automatisch opnieuw wordt opgestart. Herstel de configuratie met het commando Set-VMHostFirmware restore:
Set-VMHostFirmware -vmhost 192.168.101.208 -Restore -SourcePath “C:\backup ESXi host\configBundle-192.168.101.20
8.tgz” -HostUser root -HostPassword TestPass_555
De versie, het buildnummer en de UUID van een ESXi-host waarop de configuratie wordt hersteld, moeten overeenkomen met de versie, het buildnummer en de UUID van een ESXi-host waarvan u de back-up gebruikt om de configuratie te herstellen. Gebruik de sleutel -force in de opdracht om de UUID-controle over te slaan.
Handmatige back-up en herstel van ESXi-configuratie
U moet ook voorbereid zijn op een situatie waarin u zich niet kunt aanmelden bij uw ESXi-host, of wanneer een ESXi-host niet kan opstarten en u de opdrachtregelinterface niet kunt gebruiken om de opdracht voor het maken van een back-up of het herstellen van ESXi-configuratie uit te voeren. Dit kan gebeuren als gevolg van hardwarestoringen of softwareproblemen. In dit geval is het beter om te weten hoe u handmatig een back-up kunt maken van de ESXi configuratie en deze kunt herstellen.
Note: Zoals u zich herinnert van de standaard crontab configuratie op een ESXi host, wordt het script /sbin/auto-backup.sh elk uur uitgevoerd en wanneer een ESXi host opnieuw wordt opgestart of wordt afgesloten. Dit script is bedoeld om een back-up te maken (op te slaan) van de ESXi-configuratie die in het geheugen is opgeslagen in het bestand /bootbank/state.tgz.
De ESXi-configuratie wordt opgeslagen in het RAM van de computer als een ESXi-server draait (de juiste RAM-schijf is gemount op de map /etc/). Tijdens het opstarten van ESXi worden systeembestanden uit het /bootbank/state.tgz archief uitgepakt naar de /etc/ directory. U kunt het /bootbank/state.tgz bestand handmatig kopiëren als uw ESXi host draait door een SCP client zoals WinSCP te gebruiken (SSH toegang op afstand moet ingeschakeld zijn). Als alternatief kunt u opstarten vanaf de Live DVD en het state.tgz bestand handmatig kopiëren als uw ESXi host niet opstartbaar is (bijvoorbeeld door een hardware storing).
Handmatige herstel workflow
1. Bereid het backuparchief voor dat u eerder hebt gemaakt met ESXi shell, vSphere CLI of PowerCLI. De naam van dit bestand is configBundle-192-168-101-208.tgz in ons geval. U kunt het bestand bijvoorbeeld naar een USB flash drive kopiëren en die flash drive in een USB poort van de ESXi server steken waarop u de systeemconfiguratie moet herstellen.
2. Start op vanaf de live CD/DVD op de machine waarop ESXi is geïnstalleerd. U kunt de Ubuntu installatieschijf gebruiken als live CD/DVD.
3. Open de console (terminal) in Linux
4. Maak een lijst van de partities:
ls -al /dev/sd*
fdisk -l | grep /dev/sda
In dit geval hebben we de /dev/sda5/ partitie nodig die gemarkeerd is als Microsoft basisgegevens.
ESXi-schijfpartities werden genoemd in de blogpost over ESXi opstarten vanaf een USB-flashstation en ESXi-wachtwoordherstel.
We zijn in dit geval geïnteresseerd in de /dev/sda5-partitie.
5. Maak de directory aan waarnaar de /dev/sda5 partitie gemount wordt:
mkdir /mnt/sda5
6. Mount de schijfpartitie naar die directory:
mount /dev/sda5 /mnt/sda5
7. In de /mnt/sda5 directory vindt u het state.tgz bestand dat ESXi configuratie bevat. Deze directory (waarin state.tgz is opgeslagen) wordt /bootblank/ genoemd wanneer een ESXi host wordt opgestart.
8. Kopieer het ESXi configuratie backup archief van een USB flash drive naar de /tmp/directory van Ubuntu geladen vanaf een Live DVD. In ons voorbeeld, kopiëren we:
cp /media/Ubuntu/Ubuntu\ 18.0/backup_ESXi_host/configBundle-192-168-101-208.tgz /tmp/configBundle.tgz
9. Pak de bestanden uit het backup archief:
tar zxvf /tmp/configBundle.tgz
10. U kunt zien dat het state.tgz bestand uit het archief is gehaald.
ls -al /tmp/
11. Hernoem het originele state.tgz bestand dat op de /dev/sda5 partitie staat en gemount is op /mnt/sda5/
mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz
12. Kopieer het state.tgz bestand dat u heeft uitgepakt van het ESXi configuratie backup archief (configBundle.tgz) naar de /tmp/ directory
cp /tmp/state.tgz /mnt/sda5/
13. Unmount gemounte partities
umount /dev/sda5/
14. Herstart de server. Werp de Ubuntu Live DVD uit en boot vanaf de schijf waarop ESXi geïnstalleerd is.
init 6
15. Nu zou uw ESXi configuratie hersteld moeten zijn.
Conclusie
In de blogpost van vandaag zijn vier methoden behandeld om een back-up te maken van de ESXi configuratie en deze te herstellen. Het gebruik van de ESXi opdrachtregelinterface is goed omdat u geen extra software hoeft te installeren; de voordelen van vSphere CLI zijn de mogelijkheid om opdrachten op afstand uit te voeren met behulp van Linux-machines en de mogelijkheid om de back-up van ESXi-configuratie te automatiseren; PowerCLI kan door Windows-gebruikers worden gewaardeerd. Als uw ESXi host niet gezond is en u de host niet kunt booten, is er de mogelijkheid om handmatig een back-up te maken van de configuratie en deze te herstellen. Houd er rekening mee dat bootblank-informatie en informatie over VM’s niet wordt opgeslagen in het ESXi-configuratieback-upbestand. Nadat u de ESXi-configuratie hebt hersteld, moet u mogelijk virtuele machines registreren in uw inventaris.
Nu weet u hoe u een back-up maakt van de ESXi-host, maar vergeet niet een back-up te maken van uw virtuele machines. NAKIVO Backup & Replication is een universele back-upoplossing waarmee u een back-up kunt maken van uw VMware VM’s, Hyper-V VM’s, Amazon EC2-instanties en fysieke Linux- en Windows-servers. Download de gratis proefversie met alle functies om te zien hoe betrouwbaar back-up in uw omgeving kan zijn.
Geef een antwoord