Je vais tenter de détailler ici absolument toutes les étapes d’implémentation de la solution de déploiement d’ESX avec la fonctionnalité Auto Deploy de VMware.

Cette fonctionnalité n’est disponible que si vous avez le niveau de licence suffisant à minima VMware vSphere Enterprise Plus, de même que les autres fonctionnalités que nous allons utiliser plus loin comme Host Profiles ou les Distributed Switch.

Activation d’Auto Deploy :

Depuis le vCenter, j’active la fonctionnalité dans le menu Auto Deploy :

Ici, je sélectionne Activer Auto Deploy et Image Builder.

J’ai quelques nœuds Cisco à déployer. Pour l’exemple, je vais récupérer l’Offline Bundle depuis my.vmware.com comme d’habitude dans la partie Custom ISO pour les OEM.

Une fois le fichier téléchargé, choisir New Image Profiles et injecter l’Offine Bundle précédemment récupéré.

Vous pouvez aussi ajouter le dépôt par défaut VMware si votre vCenter peut y accéder :

L’url du dépôt est https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

Ensuite, je télécharge le zip de configuration TFTP, il est disponible dans l’onglet Configure d’Auto Deploy puis Download TFTP ZIP FILE.

Pour le moment, c’est tout côté vCenter. Je vais passer aux autres éléments indispensables à savoir un DHCP et un serveur TFTP. Pour cet environnement, je vais utiliser un redhat 7.

Installation du serveur DHCP :

yum install -y dhcp

Je configure le service avec le fichier de configuration : /etc/dhcpd/dhcpd.conf .

Ici, j’ai un bail très court, car mon scope DHCP n’est pas très grand et je veux pouvoir enchaîner les installations.

Attention le fichier du boot file name correspond à la configuration choisie :

BIOS = undionly.kpxe.vmw-hardwired

EUFI = snponly64.efi.vmw-hardwired

EUFI + Secureboot = snponly64.efi.vmw-hardwired.officialkey

Je suis parti sur EUFI + Secureboot, car il désactive la fonctionnalité Secureboot si elle n’est pas disponible.

Je démarre le service et je l’active avec le système :

systemctl start dhcpd.service && systemctl enable dhcpd.service

Pour information, les baux du DHCP seront visibles dans /var/lib/dhcpd.dhcpd.leases.

Si besoin on autorise le service sur le firewall puis on recharge le service :

firewall-cmd --permanent --add-service={dhcp} 
firewall-cmd --reload

On passe ensuite au serveur TFTP :

J’installe le service tftp avec la commande :

yum install -y tftp-server

Comme pour les autres, je lance le service et je demande à ce qu’il démarre automatiquement avec le système :

systemctl start tftp.service && systemctl enable tftp.service

Jusqu’ici, j’ai réalisé les opérations en root, mais je vais avoir besoin d’utiliser un autre compte pour uploader les données sur le serveur et il sera beaucoup plus simple de passer par un accès ftp.

Installation optionnelle du server ftp :

yum install -y vsftpd

Il y a plusieurs modifications à effectuer pour démarrer correctement le service et le configurer selon les besoins. Il faut éditer le fichier /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
listen=YES
listen_ipv6=NO
local_root=/var/lib/tftpboot

Comme pour les autres, j’active le service en auto et je le démarre :

systemctl enable vsftpd.service && systemctl start vsftpd.service 

/!\ Il faudra configurer les droits au besoin sur le dossier /var/lib/tftpboot avec la commande chmod.

Je peux enfin uploader via l’accès ftp le contenu du deploy-tftp.zip qui viendra se positionner dans /var/lib/tftpboot.

Comme moi, vous devriez avoir tous les fichiers à la racine de /var/lib/tftpboot :

Cela devrait être bon côté serveur linux. Si besoin pour vérifier l’état des services :

systemctl status dhcpd.service
systemctl status tftp.service
systemctl status vsftpd.service

Règle de déploiement :

Je vais ensuite créer une “deploy rule“. Alors ici, je vais en faire une plutôt générique pour l’exemple, mais je vais en faire des spécifiques pour chaque OEM que j’aurai dans mon scope HPE, Dell, Cisco, etc.

Pour cette règle, il faut choisir le host location, c’est-à-dire l’emplacement où ESX fraîchement déployé arrivera dans l’arborescence du vCenter.

Ensuite, je choisis le software dépôt et l’image ESX qui sera déployée.

Puis le host profile associé.

Rien de tel qu’une petit VM avec un ESXi nested pour tester rapidement le déploiement !

J’ai désactivé le secureboot dans les options de la VM, et c’est bien pris en compte ici :

Après quelques minutes, j’ai un ESXi :

Celui-ci a rejoint (en maintenance mode) le vCenter à la racine de l’emplacement précédemment spécifié.

Dans un prochain article, nous verrons la customisation et l’application du host profile qui viendra finaliser le setup de mon ESX afin qu’il soit prêt pour héberger des machines virtuelles.

Les plus attentifs d’entre vous aurons noté que j’ai récemment fait un billet sur l’utilisation de l’outil certificate-manager en ligne de commande. Mais il s’avère que mon CSR n’avait pas le niveau de sécurité requis et je n’ai pas trouvé l’option pour modifier la taille de la clé.

il y a bien le fichier certool.cfg pour modifier la configuration mais rien ne semble documenter la longueur de la clé. J’aurai simplement pu générer ma demande avec openssl, mais j’avais la ferme intention d’utiliser les produits mis à disposition par VMware.

Je suis donc partie sur l’utilisation de la GUI pour réaliser l’opération car le changement de la taille de la clé y est accessible:

La génération du csr se passe très bien, mais les soucis apparaissent à l’importation:

En effet, l’assistant nous demande de lui fournir la clé privée générée lors de notre demande de csr, sauf qu’à aucun moment, il ne nous indique le chemin en question. Impossible de trouver le chemin dans la documentation officielle VMware.

C’est en parcourant d’autres blogs à la recherche du chemin que je suis tombé sur l’article de Bryan van Eeden : Where is my private key when using the vSphere UI? – vCloud Vision

Il y décrit, avec la même surprise que moi, la demande de la clé privée mal documenté, et indique la commande pour récupérer le précieux :

/usr/lib/vmware-vmafd/bin/vecs-cli entry getkey --store MACHINE_SSL_CERT --alias __MACHINE_CSR

Copier les informations avec —–BEGIN CERTIFICATE REQUEST—– et —–END CERTIFICATE REQUEST—– dans un fichier et vous pourrez l’utiliser pour l’importation, ou copier les directement dans le menu VMware dans la section Private Key :

Pour la section “Chain of trusted root certificates” copier les informations du certificat de l’autorité de certification ou de la chaine complète qui a signé la demande.

Après redémarrage des services, le certificat devrait correctement en place.

Si comme moi vous avez des appliances ZIA Virtual Service Edges à déployer sur des clusters VMware, vous aurez peut être un paramètre bien particulier à configurer pour éviter de recevoir les paquets réseau en double lorsque vous avez plusieurs interfaces physique sur votre vSwitch mais pas de LCAP pour le teaming.

Cette problématique est décrite dans la kb : Duplicate Multicast or Broadcast Packets are Received by a Virtual Machine When the Interface is Operating in Promiscuous Mode (59235) (vmware.com)

et dans la doc zscaler : Zscaler Help

Pour configurer la valeur

Get-VMHost votrenomESXici | Set-VMHostAdvancedConfiguration -Name "Net.ReversePathFwdCheckPromisc" -Value 1

Pour vérifier la valeur

Get-VMHost votrenomESXici | Get-VMHostAdvancedConfiguration -Name "Net.ReversePathFwdCheckPromisc"

Pour faire la modification sur tout un cluster par exemple

Get-Cluster votrenomCluster | Get-VMHost |Get-VMHostAdvancedConfiguration -Name "Net.ReversePathFwdCheckPromisc"

Après une installation des plus classiques, j’avais besoin de personnaliser les certificats d’un nouveau vCenter.

Après avoir lancé certificate-manager la procédure s’arrêtait sur le message : Certificate Manager tool do not support vCenter HA systems

Je n’utilise pas vCenter HA donc j’étais très surpris du message, mais après une rapide recherche un post sur le forum VMware m’a apporté la solution -> Cert Manager Tool Not Working / VCSA Web UI Not Ac… – VMware Technology Network VMTN

Je n’ai eu qu’a créer le répertoire manquant avec mkdir /var/tmp/vmware et l’opération se poursuit sans erreur.

Si vous rencontrez ce message d’erreur sur vos ESXi, vous utilisez sûrement vSphere Replication. Habituellement, les journaux d’événements des ESXi sont remplis d’événements “User root@127.0.0.1 logged in as hbr-agent” ou en français “L’utilisateur root@127.0.0.1 est connecté en tant que hbr-agent”.

J’ai récemment été contraint d’activer le lockdown mode. C’est une fonctionnalité de verrouillage qui permet d’éviter les interactions directes avec l’ESXi et ne permet son administration qu’au travers du vCenter.

Cet article de VMware détaille bien mieux que moi le fonctionnement des deux modes de verrouillage.

Mais vous l’aurez compris, vSphere Replication ne semble pas vouloir utiliser le vCenter et se connecter directement en root sur les ESXi.

Ajouter le root en exception, comme on me l’a proposé, équivaut pour moi à l’annulation du lockdown mode.

Après des semaines de bataille avec le Global Support Services, où ils m’étaient en cause des vibs HPe présentent sur les builds, le ticket est maintenant escaladé auprès des développeurs.

Je suis pour ma part assez surpris d’en arriver là. L’utilisation conjointe de vSphere Replication et Lockdown mode doit vraiment être exceptionnelle pour que le “bug” ne remonte que maintenant au dev. D’autant plus que j’utilise vSphere Replication depuis des années et l’utilisation du compte root me semble présent dans son ADN depuis un moment.

N’étant pas particulièrement fan du lockdown mode, j’ai prévenu le support qu’une simple déclaration officielle incompatibilité avec vSphere Replication m’irait très bien. Je mettrais à jour cet article lorsque j’aurais du nouveau. En attendant, j’ai temporairement une exception pour la désactivation de cette fonctionnalité.

Update 1er Septembre du GSS : “There is no impact to replication jobs with lockdown mode enabled. It will cause extra logging in vCenter. No workaround at present for the extra logging. Recommendation is to disable Lockdown mode”.