La virtualisation offre plusieurs avantages pour les opérations de sauvegarde et de récupération, qui sont l’épine dorsale de la protection des données, de la continuité opérationnelle et de la disponibilité. Plus important encore, la virtualisation rend possible les sauvegardes sans agent et basées sur l’image, au niveau de l’hôte. Ces types de sauvegardes peuvent capturer l’intégralité de la VM, y compris la configuration de la VM ainsi que les données de la VM.
Cependant, il est important de protéger également les hôtes, car des hôtes ESXi en bonne santé sont importants pour que les VM fonctionnent correctement. Il est recommandé de sauvegarder également la configuration ESXi, car une sauvegarde d’hôte utilisable peut vous aider à restaurer la configuration de l’hôte en quelques minutes sans avoir à configurer un serveur ESXi à partir de zéro. Continuez à lire pour découvrir les différentes méthodes de sauvegarde des hôtes ESXi.
Méthode 1 : Utilisation de la ligne de commande ESXi pour sauvegarder les hôtes ESXi
L’utilisation de la ligne de commande ESXi est la méthode la plus abordable pour sauvegarder la configuration d’un hôte ESXi. Vous n’avez pas besoin d’installer de logiciel supplémentaire pour utiliser la ligne de commande ESXi. Vous devez simplement activer le shell ESXi et l’accès SSH distant à un hôte ESXi. Une fois connecté à votre hôte ESXi via SSH, vous pouvez exécuter les commandes.
La configuration ESXi est sauvegardée automatiquement toutes les heures dans le fichier /bootblank/state.tgz. Pour cette raison, vous devez vous assurer que la configuration ESXi actuelle est écrite dans les fichiers de configuration ESXi dès maintenant pour vous assurer que tous les changements apportés à la configuration ESXi depuis la dernière sauvegarde automatique sont enregistrés. Pour ce faire :
vim-cmd hostsvc/firmware/sync_config
- Vérifiez et synchronisez la configuration ESXi avec le stockage persistant :
vim-cmd hostsvc/firmware/sync_config
- Sauvegardez la configuration ESXi une fois la synchronisation terminée :
vim-cmd hostsvc/firmware/backup_config
En conséquence, vous recevrez un lien pour télécharger l’archive configBundle.tgz depuis l’hôte ESXi.
http://*/downloads/UUID/configBundle-ESXiNameOrIPAddress.tgz
- Remplacez l’astérisque (*) par l’adresse IP de votre hôte ESXi. Le fichier d’archive contenant la sauvegarde de configuration ESXi est enregistré dans le répertoire /scratch/downloads pendant une courte période (quelques minutes).
Vous pouvez trouver l’adresse IP de votre hôte ESXi dans l’interface de console directe ESXi ou en ligne de commande avec la commande :
esxcli network ip interface ipv4 get
L’adresse IP de l’hôte ESXi utilisée dans l’exemple actuel est 192.168.101.208
- Téléchargez l’archive de sauvegarde ESXi dès que possible et stockez-la dans un endroit sûr.
Comment automatiser la sauvegarde de la configuration ESXi en ligne de commande ESXi
L’avantage d’une interface en ligne de commande est la possibilité d’automatiser, et la sauvegarde de la configuration ESXi ne fait pas exception. Passons en revue les étapes à suivre :
- Créez un répertoire pour stocker les fichiers de sauvegarde sur votre datastore ESXi.
mkdir /vmfs/volumes/datastore1/ESXi_backup
- Créez un script pour sauvegarder la configuration ESXi :
vi /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
- Ajoutez les lignes suivantes au 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 \;
- Enregistrez le fichier et quittez vi :
:wq
REMARQUE: Pour plus de commodité, vous pouvez également inclure le nom ou l’adresse IP de l’hôte ESXi dans le nom du fichier de sauvegarde. Cela vous aidera à éviter toute confusion avec plusieurs hôtes ESXi.
- Rendez le script exécutable :
chmod +x /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
- Accédez au répertoire où se trouve le script :
cd /vmfs/volumes/datastore1/ESXi_backup/
- Exécutez le script :
./esxi_backup.sh
- Vérifiez qu’un fichier de sauvegarde a été créé :
ls -al
- Assurez-vous que le script de sauvegarde de configuration ESXi s’exécute selon le planning (automatiquement). Modifiez la configuration du planificateur à cet effet :
vi /var/spool/cron/crontabs/root
- Ajoutez la chaîne suivante pour effectuer une sauvegarde de configuration ESXi tous les jours à 02h10 :
10 02 * * * /vmfs/volumes/datastore1/ESXi_backup/esxi_backup.sh
- Enregistrez les modifications dans le fichier. Pour enregistrer les modifications dans le fichier en lecture seule, saisissez :
:wq!
En alternative, vous pouvez modifier les autorisations du fichier avant de le modifier :
chmod +w /var/spool/cron/crontabs/root
Une fois configuré, la configuration d’ESXi sera sauvegardée automatiquement à 02h10 chaque nuit dans le fichier portant le nom ESXi_config_bakup_date_time.tgz.
Comment récupérer la configuration d’ESXi dans la ligne de commande ESXi
Vous devez avoir ESXi de la même version et du même numéro de build que l’hôte ESXi sauvegardé installé sur la machine où vous souhaitez restaurer la configuration d’ESXi. Cette règle est vraie pour toutes les méthodes de récupération de configuration ESXi considérées dans cet article de blog.
Si vous allez restaurer la configuration d’ESXi sur un hôte ESXi installé à partir de zéro (installation fraîche), vous devez définir l’adresse IP pour l’interface réseau utilisée pour le réseau de gestion d’ESXi et activer l’accès SSH.
Le UUID doit être le même sur les deux serveurs ESXi sauvegardé et sur le serveur ESXi sur lequel la configuration sera restaurée. Les étapes à suivre si les valeurs UUID sont différentes sont couvertes dans la section suivante.
Pour récupérer la configuration ESXi:
- Une fois que vous avez préparé votre hôte ESXi fraîchement installé pour restaurer la configuration ESXi à partir d’une sauvegarde, connectez-vous à l’hôte ESXi via SSH et mettez l’hôte en mode maintenance (les VM sont arrêtées dans ce mode).
esxcli system maintenanceMode set --enable yes
ou
vim-cmd hostsvc/maintenance_mode_enter
- Copiez l’archive contenant la sauvegarde de la configuration ESXi dans un répertoire sur l’hôte ESXi en utilisant un client SCP, par exemple, WinSCP. Copiez l’archive configBundle-xxxx.tgz de la machine locale vers le répertoire /tmp/ sur le serveur ESXi de destination.
- Renommez le fichier configBundle-xxxx.tgz en configBundle.tgz avant d’entrer la commande pour restaurer la configuration d’ESXi. Sinon, vous obtiendrez le message d’erreur : « Fichier /tmp/configBundle.tgz introuvable« .
Vous pouvez renommer le fichier dans l’invite de commande ESXi à laquelle vous êtes connecté via SSH :
mv /tmp/configBundle-esxi6-7b.localdomain.tgz /tmp/configBundle.tgz
- Restaurez la configuration d’ESXi :
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
Après avoir exécuté cette commande, un hôte ESXi redémarrera automatiquement.
- Après le redémarrage du serveur ESXi, quittez le mode maintenance, à partir de ce moment vous pourrez utiliser l’hôte comme d’habitude.
esxcli system maintenanceMode set --enable no
ou
vim-cmd hostsvc/maintenance_mode_exit
Comment changer l’UUID pour restaurer la configuration ESXi
Vous pouvez utiliser l’une des 2 méthodes pour vérifier l’UUID du serveur ESXi :
- Dans l’interface de ligne de commande ESXi :
esxcfg-info -u
- Dans le fichier Manifest.txt à l’intérieur de l’archive de sauvegarde configBundle.tgz que vous avez créée avec les commandes expliquées ci-dessus.
Vous ne pouvez pas changer l’UUID du serveur ESXi car l’identifiant est généré en fonction du matériel. Cependant, vous pouvez récupérer la configuration ESXi de l’hôte ESXi A vers l’hôte ESXi B après avoir modifié l’UUID dans le fichier Manifest.txt stocké dans l’archive de sauvegarde de configuration ESXi configBundle.tgz.
Jetons maintenant un coup d’œil à comment changer l’UUID pour appliquer la configuration sauvegardée à un autre serveur physique. Serveur A est le serveur dont la configuration a été sauvegardée, et Serveur B est le serveur auquel la configuration sera appliquée.
Étape 1
Vérifiez l’UUID sur l’hôte ESXi auquel vous souhaitez appliquer la configuration sauvegardée (serveur B). Cela peut être fait avec au moins deux méthodes, mais la deuxième méthode vous permet également de vérifier la version ESXi :
- Exécutez la commande
esxcfg-info -u
- Sauvegardez la configuration du serveur ESXi B :
vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
- Copiez l’archive de sauvegarde dans le répertoire temporaire et allez dans ce répertoire :
cp /scratch/downloads/_hash_value_/configBundle-localhost.localdomain.tgz /tmp
cd /tmp/
- Extrayez les fichiers de l’archive :
tar zxvf configBundle.tgz
- Ouvrez le fichier Manifest.txt avec vi et vérifiez la valeur UUID (vous verrez une ligne distincte avec l’UUID). Notez l’UUID.
vi Manifest.txt
Dans notre cas, l’UUID est 1E9E4D56-B724-DFBE-D19D-4C2D827E0188
- Vous pouvez supprimer les fichiers temporaires dans le répertoire /tmp/ :
rm configBundle-localhost.localdomain.tgz Manifest.txt state.tgz
Étape 2
- Copiez l’archive de sauvegarde de configuration configBundle.tgz du serveur ESXi A vers le serveur B, par exemple, dans le répertoire /tmp/ et accédez à ce répertoire.
- Extrayez les fichiers de l’archive configBundle.tgz :
tar zxvf configBundle.tgz
- Ouvrez le fichier Manifest.txt avec vi et mettez à jour la valeur UUID du serveur A avec l’UUID du serveur B :
vi Manifest.txt
Dans notre cas, nous changeons 9EA94D56-7E39-96A8-AB45-DF31EF0971EC en 1E9E4D56-B724-DFBE-D19D-4C2D827E0188
Enregistrez le fichier et quittez l’éditeur de texte :
:wq
- Renommez votre fichier source configBundle.tgz en configBundle1.tgz, par exemple (si le nom de votre fichier de sauvegarde de configuration ESXi est différent de configBundle.tgz, vous pouvez ignorer cette étape) :
mv configBundle.tgz configBundle1.tgz
- Tar Manifest.txt, state.tgz et les fichiers jumpstrt.gz dans un nouvel archive configBundle.tgz:
tar zcvf configBundle.tgz Manifest.txt state.tgz jumpstrt.gz
- Mettez l’hôte ESXi en mode de maintenance et restaurez la configuration:
esxcli system maintenanceMode set --enable yes
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz
Méthode 2: Comment sauvegarder l’hôte ESXi avec vSphere CLI
Une autre interface en ligne de commande fournie par VMware pour gérer les hôtes ESXi est vSphere CLI (à ne pas confondre avec VMware PowerCLI). Vous devez installer vSphere CLI sur une machine exécutant Linux ou Windows pour gérer les hôtes ESXi à distance. Perl est requis pour installer vSphere CLI.
L’avantage d’utiliser vSphere CLI est la commodité et la puissance de bash sous Linux. Cette méthode est particulièrement pratique pour ESXi 6.x. Si vous utilisez ESXi 8, optez pour d’autres méthodes expliquées dans cet article.
Installation et configuration de vCLI
- Téléchargez la version nécessaire de vSphere CLI pour votre système d’exploitation depuis le site web de VMware. Ubuntu Linux est utilisé dans cet exemple.
- Allez dans le répertoire où se trouve le fichier téléchargé et extrayez les fichiers de l’archive :
tar -zxvf VMware-vSphere-CLI-6.5.0-4566394.x86_64.tar.gz
- Installez les paquets requis :
apt-get install -y perl-doc libmodule-build-perl libssl-dev libxml-libxml-perl libsoap-lite-perl libuuid-perl build-essential
La recommandation officielle de VMware est d’installer cet ensemble de paquets :
apt-get install ia32-libs build-essential gcc uuid uuid-dev perl libssl-dev perl-doc liburi-perl libxml-libxml-perl libcrypt-ssleay-perl
- Allez dans le répertoire où se trouvent les fichiers extraits et exécutez l’installateur :
./vmware-install.pl
- Lisez et acceptez le contrat de licence. Si l’installateur vous demande d’installer certains modules requis, tapez y et installez les modules.
- Certains modules doivent être installés manuellement dans notre cas. Ils peuvent être installés en utilisant l’interpréteur de commandes interactif de Perl.
Accédez à l’interpréteur de commandes interactif de Perl:
perl -MCPAN -e shell
- Exécutez la commande pour installer le module Perl requis:
install Devel::StackTrace
Installez également les autres modules de la même manière.
REMARQUE: Dans notre cas, un module n’a pas pu être installé dans l’interpréteur de commandes interactif Perl, mais nous pouvons installer ce module avec la commande dans la console Ubuntu:
apt-get install libcrypt-ssleay-perl
- Après avoir installé les modules Perl, exécutez à nouveau l’installateur de l’interface de ligne de commande VMware vSphere.
- L’installation a été réalisée avec succès et vous pouvez voir l’écran suivant dans ce cas:
- Maintenant, essayons d’utiliser l’interface de ligne de commande vSphere et saisissons une commande dans la console Linux pour afficher la liste des périphériques du serveur ESXi (192.168.101.208 est l’adresse IP du serveur ESXi).
esxcli --server 192.168.101.208 storage core device list
- Le SHA-1 empreinte du serveur n’est pas fiable, et la connexion à l’hôte ESXi a échoué. Cela signifie que vous devriez définir l’empreinte digitale pour des raisons de sécurité. Essayons une autre commande:
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
Le nom d’utilisateur et le mot de passe seront demandés dans la console en mode interactif.
Essayez de ne pas utiliser de commandes où un nom d’utilisateur et un mot de passe sont saisis en texte brut comme ceci:
esxcli --server 192.168.101.208 --username root --password TestPass_555 --thumbprint B3:63:9F:67:E2:D9:C4:53:7D:A9:2A:4A:37:DC:AE:73:3C:83:C7:DA system maintenanceMode get
REMARQUE: Ceci est pour des raisons de sécurité. Les commandes exécutées sont enregistrées dans Linux jusqu’à ce que vous exécutiez la commande history -c pour effacer l’historique. Si vous avez besoin d’éviter d’utiliser le mode interactif et de saisir un nom d’utilisateur et un mot de passe manuellement, vous pouvez enregistrer la session ESXi dans le fichier et utiliser ce fichier lors de l’exécution des commandes. Enregistrer les sessions est sécurisé contrairement à la saisie d’un mot de passe en texte brut dans la commande. L’enregistrement des sessions est expliqué ci-dessous.
Enregistrement d’une empreinte pour se connecter aux hôtes ESXi
Saisir une empreinte ESXi à chaque fois pour exécuter une commande n’est pas pratique. Heureusement, il est possible d’enregistrer l’empreinte et d’exécuter d’autres commandes avec vSphere CLI sans définir d’empreinte.
- Aller dans le répertoire:
cd /usr/lib/vmware-vcli/apps/general/
- Exécutez la commande comme suit :
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add -s server -t thumbprint
Dans notre exemple particulier, la commande est :
/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
- Maintenant, vous pouvez exécuter des commandes dans l’interface de ligne de commande vSphere sans entrer une empreinte digitale à chaque fois :
esxcli --server 192.168.101.208 system maintenanceMode get
Cependant, vous devez toujours entrer un nom d’utilisateur et un mot de passe. Cependant, vous pouvez configurer l’interface de ligne de commande vSphere pour exécuter des commandes sans entrer de mot de passe à chaque fois, comme indiqué dans les sections ci-dessous.
Utilisation d’un fichier de session pour se connecter aux hôtes ESXi
Utiliser un fichier de session enregistré est l’une des méthodes pour éviter de saisir un nom d’utilisateur et un mot de passe lors de l’exécution d’une commande sur un hôte ESXi distant à l’aide de vSphere CLI.
- Créez un répertoire pour stocker les fichiers de sauvegarde de configuration ESXi, par exemple, /backup/
mkdir /backup
- Accédez à ce répertoire :
cd /usr/lib/vmware-vcli/apps/session
- Enregistrez votre session hôte ESXi autorisée dans le fichier en utilisant un script Perl avec la commande :
perl save_session.pl --savesessionfile /backup/192-168-101-208session --server 192.168.101.208 --username root --password TestPass_555
Où :
––savesessionfile /backup/192-168-101-208session est le nom du fichier de session créé
––serveur 192.168.101.208 est le nom de l’hôte ESXi dont la session est enregistrée (cet hôte ESXi est utilisé dans plusieurs exemples)
––username root est le nom de l’utilisateur connecté à l’hôte ESXi
––password TestPass_555 est le mot de passe pour l’utilisateur connecté à l’hôte ESXi
Maintenant, vous pouvez exécuter des commandes sans entrer de mot de passe, mais vous devez entrer la clé ––sessionfile (option) et définir le chemin vers le fichier de session.
Par exemple:
esxcli --sessionfile /backup/192-168-101-208session system maintenanceMode get
Utilisation d’un fichier de configuration pour se connecter aux hôtes ESXi
L’idée derrière cette méthode est de sauvegarder les identifiants dans le fichier de configuration en texte clair et de se référer à ce fichier lors de l’exécution de commandes ESXi dans vSphere CLI.
- Créez un fichier de configuration:
vim /backup/vcli-config
- Entrez les identifiants comme suit:
VI_USERNAME=root
VI_PASSWORD=TestPass_555
- Enregistrez le fichier.
- Exécutez cette commande sur le serveur ESXi distant en utilisant vSphere CLI :
esxcli --server 192.168.101.208 --config vcli-config system maintenanceMode get
NOTE : Étant donné que les informations d’identification sont enregistrées en texte brut, cette méthode n’est pas sécurisée.
Utilisation d’un magasin d’informations d’identification pour se connecter aux hôtes ESXi
A credential store is the xml file located in the user directory in the vmware subdirectory ~/.vmware/credstore/vicredentials.xml. The advantage of using the credentials store to run commands on remote ESXi hosts is that the password is not saved as plain text. As a result, this method provides higher security.
- Pour ajouter des informations d’identification au magasin d’informations d’identification, exécutez la commande :
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl add --server 192.168.101.208 --username root
- Listez les informations d’identification enregistrées dans le magasin d’informations d’identification pour vous assurer que les informations d’identification nécessaires sont présentes :
/usr/lib/vmware-vcli/apps/general/credstore_admin.pl list
- Exécutez la commande sur l’hôte ESXi distant sans entrer de mot de passe en utilisant le magasin d’informations d’identification :
# esxcli --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml system maintenanceMode get
Si vous utilisez un utilisateur non root, le fichier d’informations d’identification est enregistré dans /home/nom_utilisateur/.vmware/credstore/vicredentials.xml
Dans la capture d’écran ci-dessous, vous pouvez voir comment les informations d’identification sont enregistrées dans le fichier du magasin d’informations d’identification.
Utilisation de vSphere CLI pour sauvegarder la configuration de l’hôte ESXi
Maintenant que vous avez configuré vSphere CLI sur la machine Ubuntu Linux, vous pouvez exécuter les commandes et sauvegarder la configuration de l’ESXi :
- Allez dans le répertoire /usr/bin/ :
cd /usr/bin
- Pour créer une sauvegarde de la configuration ESXi sans saisir le nom d’utilisateur et le mot de passe, utilisez l’une des commandes ci-dessous.
- Pour le nom d’utilisateur et le mot de passe enregistrés dans le magasin d’informations d’identification, utilisez la commande :
vicfg-cfgbackup --server 192.168.101.208 --credstore /root/.vmware/credstore/vicredentials.xml -s /backup/192-168-101-208-esxi-cfg.tgz
- Ou après avoir enregistré la session dans le fichier de session, utilisez la commande :
vicfg-cfgbackup --sessionfile /backup/192-168-101-208session -s /backup/192-168-101-208-esxi-cfg.tgz
REMARQUE : les commandes vicfg- sont obsolètes. Si vicfg ne fonctionne pas dans votre cas, utilisez les commandes équivalentes ESXCLI dans l’interface de ligne de commande lors de travaux avec des hôtes ESXi des versions les plus récentes. Consultez les commandes pour d’autres méthodes de sauvegarde de configuration ESXi.
L’inconvénient d’utiliser l’option ––sessionfile est le délai d’expiration de 30 minutes en cas d’inactivité après l’exécution de la dernière commande dans vSphere CLI. Ensuite, vous devez vous authentifier et recréer un fichier de session.
- Si vous souhaitez créer une sauvegarde de la configuration ESXi en saisissant un mot de passe en mode interactif, vous pouvez exécuter la commande :
vicfg-cfgbackup --server 192.168.101.208 -s /backup/192-168-101-208-esxi-cfg.tgz
- Pour le nom d’utilisateur et le mot de passe enregistrés dans le magasin d’informations d’identification, utilisez la commande :
Comment automatiser la sauvegarde de la configuration ESXi
Si vous avez un environnement en constante évolution, et que la configuration des hôtes ESXi change souvent, la sauvegarde manuelle des hôtes ESXi peut ne pas être pratique. Dans ce cas, vous pouvez automatiser la sauvegarde de votre configuration ESXi en ajoutant une commande de sauvegarde ou un script de sauvegarde contenant plusieurs commandes au planificateur. Crontab est un planificateur sous Linux.
- Modifier la configuration de planification dans Linux pour exécuter périodiquement et automatiquement la commande de sauvegarde de configuration ESXi.
crontab -e
REMARQUE: Si vous modifiez la configuration de crontab pour la première fois, vous devez sélectionner l’éditeur de texte par défaut qui doit être utilisé pour modifier la configuration de crontab. Dans notre exemple, nous utilisons /usr/bin/vim.basic à cette fin.
Le format de la configuration de crontab est le suivant :
minutes heures jour_du_mois mois jour_de_la_semaine commande
- Ajoutons la sauvegarde de la configuration de l’hôte ESXi chaque nuit à 03h25 en ajoutant la ligne suivante à la configuration de crontab :
25 03 * * * /usr/bin/vicfg-cfgbackup ––serveur 192.168.101.208 ––config /backup/vcli-config -s /backup/192-168-101-208-esxi-cfg-cron.tgz
- Écrivez la configuration du planificateur crontab et quittez l’éditeur de texte vim (utilisé dans cet exemple) :
:wq
- Attendons jusqu’après 03:25 AM pour vérifier le répertoire dans lequel les fichiers de configuration de sauvegarde ESXi doivent être enregistrés :
ls -al
Comme vous le voyez sur la capture d’écran ci-dessous, le fichier de sauvegarde de la configuration de l’hôte ESXi a été créé à 03:25 automatiquement.
La sauvegarde de configuration ESXi a maintenant été créée automatiquement, ce qui est génial, mais il y a un inconvénient. Chaque fois que crontab exécute une commande planifiée pour créer la sauvegarde de configuration ESXi, le fichier tgz précédent est écrasé par le nouveau fichier tgz. Cela peut causer des problèmes si la sauvegarde avec la configuration ESXi correcte créée avant-hier est écrasée par un fichier créé le lendemain contenant la mauvaise configuration ESXi. Pour éviter ce problème, vous devez sauvegarder la configuration ESXi dans des fichiers différents.
Créez un script simple pour sauvegarder la configuration ESXi chaque fois dans un fichier séparé avec un nom de fichier unique contenant la date et l’heure de création du fichier de sauvegarde de configuration ESXi dans le nom du fichier. La création d’un script vous permet d’ajouter des commandes pour sauvegarder plusieurs hôtes ESXi en exécutant un seul script.
- Créez le fichier esxi_backup.sh dans le répertoire /backup/:
vim /backup/esxi_backup.sh
- Ajoutez des lignes au fichier comme suit:
#!/bin/bash
ESXI101_208_BACKUP_NAME=”192-168-101-208-$(date +’%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
- Écrivez les modifications dans le fichier et quittez l’éditeur de texte vim :
:wq
- Rendez le fichier exécutable :
chmod +x /backup/esxi_backup.sh
- Modifier la configuration du planificateur :
crontab -e
- Ajoutez la ligne comme ceci :
50 06 * * * /backup/esxi_backup.sh
Cette ligne de configuration nous permet de définir crontab pour exécuter le script de sauvegarde de configuration ESXi à 06h50.
Désactivez la tâche planifiée précédente que vous avez ajoutée en ajoutant le caractère # au début de la ligne.
Enregistrez la configuration.
- Attendre le temps défini et vérifier si l’archive de sauvegarde de la configuration ESXi a été créée.
Ceci est un script simple qui illustre l’idée d’automatisation. Vous pouvez créer des scripts complexes pour sauvegarder plusieurs hôtes ESXi.
REMARQUE: Après chaque redémarrage d’ESXi ou 30 minutes d’inactivité, l’authentification de la session ESXi expire. Gardez à l’esprit cette fonctionnalité lors de la création d’un script pour la sauvegarde automatisée d’ESXi.
Comment récupérer la configuration ESXi dans vSphere CLI
Les exigences pour restaurer la configuration ESXi en utilisant vSphere CLI sont similaires aux exigences pour d’autres méthodes. Pour restaurer la configuration ESXi, assurez-vous que l’accès distant via SSH est activé et que l’adresse IP du serveur ESXi est connue (il est recommandé d’utiliser la même adresse IP que celle de l’hôte ESXi sauvegardé).
Pour restaurer la configuration ESXi, exécutez la commande suivante :
vicfg-cfgbackup --server=adresse_IP_hôte_ESXi --username=root -l fichier_sauvegarde
Dans notre exemple particulier, la commande est :
vicfg-cfgbackup --server=192.168.101.208 --username=root -l /sauvegarde/192-168-101-208-esxi-cfg.tgz
Si l’UUID de l’hôte ESXi cible sur lequel vous souhaitez restaurer la configuration est différent de l’UUID du serveur ESXi sauvegardé (dont l’UUID est défini dans le fichier Manifest.txt à l’intérieur de l’archive de sauvegarde tgz), vous pouvez utiliser la touche -f (force) pour remplacer l’UUID.
Vous pouvez vérifier l’UUID de l’hôte ESXi en cours d’exécution avec la commande, comme vous vous en souvenez :
esxcfg-info -u
REMARQUE : À partir d’ESXi 7.0 U2, le remplacement forcé de l’UUID ne fonctionne pas si un TPM (module de plateforme sécurisée) est utilisé sur un hôte ESXi.
Méthode 3 : Utilisation de PowerCLI pour sauvegarder les hôtes ESXi
Les utilisateurs qui aiment Windows PowerShell peuvent utiliser PowerCLI pour la gestion de vSphere et pour sauvegarder les configurations ESXi. PowerCLI est un ensemble de cmdlets PowerShell, et quelques commandes PowerCLI de base sont expliquées dans cet article de blog.
Pour utiliser PowerCLI pour sauvegarder un hôte ESXi, vous devez d’abord installer PowerCLI sur votre système d’exploitation :
- Exécutez PowerCLI en tant qu’administrateur dans Windows.
- Connectez-vous à votre serveur ESXi :
Connect-VIServer adresse_IP_ESXi -utilisateur nom_utilisateur -motdepasse votre_mot_de_passe
Dans notre cas, nous utilisons les commandes :
Connect-VIServer 192.168.101.208 -utilisateur root -motdepasse TestPass_555
Get-VMHostFirmware -vmhost 192.168.101.208 -SauvegardeConfiguration -CheminDestination "C:\sauvegarde_hôte_ESXi"
- Si vos hôtes ESXi sont gérés par un serveur vCenter, vous pouvez d’abord vous connecter à vCenter, puis sauvegarder la configuration ESXi sur vos hôtes dans PowerCLI sans avoir besoin de vous authentifier à chaque fois avant de sauvegarder la configuration de chaque hôte :
Connect-VIServer 10.10.10.16
Entrez votre identifiant et mot de passe administratifs pour accéder au serveur vCenter. Une fenêtre contextuelle apparaît à cet effet.
- Si vos hôtes ESXi sont gérés par un serveur vCenter, vous pouvez d’abord vous connecter à vCenter, puis sauvegarder la configuration ESXi sur vos hôtes dans PowerCLI sans avoir besoin de vous authentifier à chaque fois avant de sauvegarder la configuration de chaque hôte :
- Sauvegardez la configuration ESXi de chaque hôte :
Get-VMHostFirmware -vmhost 10.10.10.61 -BackupConfiguration -DestinationPath "C:\backup ESXi host"
Get-VMHostFirmware -vmhost 10.10.10.46 -BackupConfiguration -DestinationPath "C:\backup ESXi host"
Comment restaurer la configuration ESXi dans PowerCLI
- Exécutez VMware PowerCLI en tant qu’administrateur.
- Connectez-vous à l’hôte ESXi sur lequel vous souhaitez récupérer la configuration (dans notre exemple, nous récupérons la configuration sur l’hôte ESXi dont l’adresse IP est 192.168.101.208).
- Placez l’hôte ESXi en mode de maintenance :
Set-VMHost -VMHost 192.168.101.208 -State Maintenance
- Assurez-vous que les machines virtuelles résidant sur cet hôte ESXi sont éteintes ou migrées vers un autre hôte ESXi avant de récupérer la configuration ESXi. Notez qu’après l’exécution d’une commande pour restaurer la configuration, l’hôte ESXi redémarrera automatiquement.
- Restaurez la configuration avec la commande
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
La version, le numéro de build et l’UUID de l’hôte ESXi sur lequel la configuration est récupérée doivent correspondre à la version, au numéro de build et à l’UUID de l’hôte ESXi dont vous utilisez la sauvegarde pour restaurer la configuration. Utilisez la clé -force dans la commande pour ignorer la vérification de l’UUID.
Méthode 4 : Sauvegarde manuelle et restauration de la configuration ESXi
Vous devez également être prêt pour une situation où vous ne pouvez pas vous connecter à votre hôte ESXi, ou lorsque un hôte ESXi ne peut pas démarrer et vous ne pouvez pas utiliser l’interface de ligne de commande pour exécuter la commande de sauvegarde ou de restauration de la configuration ESXi. Cela peut se produire en raison d’une défaillance matérielle ou de problèmes logiciels. Dans ce cas, il est préférable de savoir comment sauvegarder et récupérer une configuration ESXi manuellement.
Comme vous vous en souvenez de la configuration crontab par défaut sur un hôte ESXi, le script /sbin/auto-backup.sh est exécuté toutes les heures et chaque fois qu’un hôte ESXi est redémarré ou arrêté. Ce script est destiné à sauvegarder (enregistrer) la configuration ESXi stockée dans la mémoire vers le fichier /bootbank/state.tgz.
REMARQUE: Le fichier /bootbank/state.tgz ne doit pas être chiffré pour utiliser cette méthode.
La configuration ESXi est stockée dans la RAM de l’ordinateur lorsque le serveur ESXi est en cours d’exécution (le disque RAM approprié est monté sur le répertoire /etc/). Lorsque ESXi démarre, les fichiers système sont extraits de l’archive /bootbank/state.tgz vers le répertoire /etc/. Vous pouvez copier manuellement le fichier /bootbank/state.tgz si votre hôte ESXi est en cours d’exécution en utilisant un client SCP tel que WinSCP (l’accès SSH à distance doit être activé). En alternative, vous pouvez démarrer à partir du DVD en direct et copier le fichier state.tgz manuellement si votre hôte ESXi n’est pas démarrable (par exemple, en raison d’une défaillance matérielle).
Flux de travail de récupération manuelle
- Préparez l’archive de sauvegarde que vous avez précédemment créée avec l’ESXi shell, vSphere CLI, ou PowerCLI. Le nom du fichier est configBundle-192-168-101-208.tgz dans notre cas. Vous pouvez copier le fichier sur une clé USB, par exemple, et insérer cette clé USB dans un port USB du serveur ESXi sur lequel vous devez récupérer la configuration système.
- Démarrez à partir du CD/DVD en direct sur la machine où ESXi est installé. Vous pouvez utiliser le disque d’installation Ubuntu comme CD/DVD en direct.
- Ouvrez la console (terminal) sous Linux.
- Liste des partitions :
ls -al /dev/sd*
fdisk -l | grep /dev/sda
Dans ce cas, nous avons besoin de la partition /dev/sda5/ qui est marquée comme données de base Microsoft.
Les partitions de disque ESXi ont été mentionnées dans le billet de blog sur Démarrage d’ESXi à partir d’une clé USB et Récupération du mot de passe ESXi.
Nous nous intéressons à la partition /dev/sda5 dans ce cas.
- Créez le répertoire vers lequel la partition /dev/sda5 sera montée :
mkdir /mnt/sda5
- Montez la partition de disque dans ce répertoire :
mount /dev/sda5 /mnt/sda5
- Dans le répertoire /mnt/sda5, vous pouvez trouver le fichier state.tgz, qui contient la configuration d’ESXi. Ce répertoire (dans lequel se trouve state.tgz) est appelé /bootblank/ lorsqu’un hôte ESXi est démarré.
- Copiez l’archive de sauvegarde de la configuration d’ESXi à partir de la clé USB dans le répertoire /tmp/ d’Ubuntu chargé à partir du Live DVD. Dans notre exemple, nous copions :
cp /media/Ubuntu/Ubuntu\ 18.0/backup_ESXi_host/configBundle-192-168-101-208.tgz /tmp/configBundle.tgz
- Extrayez les fichiers de l’archive de sauvegarde :
tar zxvf /tmp/configBundle.tgz
- Vous pouvez voir que le fichier state.tgz est extrait de l’archive :
ls -al /tmp/
- Renommez le fichier state.tgz original qui se trouve sur la partition /dev/sda5 montée sur /mnt/sda5/
mv /mnt/sda5/state.tgz /mnt/sda5/state-old.tgz
- Copiez le fichier state.tgz que vous avez extrait de l’archive de sauvegarde de la configuration ESXi (configBundle.tgz) dans le répertoire /tmp/:
cp /tmp/state.tgz /mnt/sda5/
- Démontez les partitions montées:
umount /dev/sda5/
- Redémarrez le serveur. Éjectez le DVD Live Ubuntu et démarrez depuis le disque sur lequel ESXi est installé.
init 6
Maintenant, votre configuration ESXi devrait être restaurée.
Conclusion
Utiliser l’interface de ligne de commande ESXi est avantageux car vous n’avez pas besoin d’installer de logiciel supplémentaire. Les avantages de vSphere CLI sont la capacité à exécuter des commandes à distance en utilisant des machines Linux et la capacité à automatiser la sauvegarde de la configuration ESXi. PowerCLI, en revanche, peut être apprécié par les utilisateurs de Windows.
Si un hôte ESXi n’est pas en bonne santé et que vous ne pouvez pas démarrer l’hôte, vous pouvez sauvegarder et restaurer la configuration manuellement. Notez que les informations sur le démarrage et les informations sur les machines virtuelles ne sont pas stockées dans le fichier de sauvegarde de la configuration ESXi. Après avoir restauré la configuration ESXi, vous devrez peut-être enregistrer les machines virtuelles dans votre inventaire.
Il est recommandé de sauvegarder vos machines virtuelles vSphere en plus de sauvegarder les hôtes ESXi. NAKIVO Backup & Replication est une solution de sauvegarde universelle qui peut sauvegarder vos machines virtuelles VMware, Hyper-V, les instances Amazon EC2 ainsi que les serveurs physiques Linux et Windows.
Source:
https://www.nakivo.com/blog/back-up-and-restore-vmware-esxi-host-configuration-guide/