Automatiser l’installation et la configuration de vos ESXi

Création d’un Custom ISO VMware vSphere ESXi 6

Pourquoi créer un ISO personnalisé ?

121515_2315_Construireu18.png

Pour déployer un maximum d’hyperviseur en une journée ? Pour ne pas perdre son temps à regarder la jauge de progression de l’installeur ? Pour s’éviter les tâches répétitives ? Ou simplement éviter les erreurs de configuration ? etc … 

Dans cet article, je vais vous montrez comment créer un ISO personnalisé avec des kickstarts directement injectés dans l’iso de VMware vSphere ESXi, le tout avec un menu de boot permettant de démarrer une installation sur le kickstart désiré.

Pour ceux qui ne savent pas ce qu’est un kickstart, il s’agit d’un simple fichier texte contenant une liste d’éléments dont chacun est identifié par un mot-clé. Ce fichier permet d’automatiser l’installation et la configuration d’un système d’exploitation de type Linux.

L’avantage d’une solution comme celle-ci est d’avoir dans un seul média d’installation permettant la configuration complète de tous vos hyperviseurs. Cela permet un provisionnement rapide sans le moindre effort. (Sans faire appel aux fonctionnalités avancés comme « host profile » et donc pas besoin de licence entreprise plus)

Les prérequis :

  • Une VM sous une distribution Linux
  • Un média original de VMware vSphere ESXi
  • Le package vmtar et mkisofs

1) Création des répertoires de base

Création de deux dossiers « vmware-original » et « vmware-modif » à la racine /

vmware-original : Répertoire permettant de stocker les ISOs originaux de VMware vSphere ESXi

vmware-modif : Répertoire permettant de stocker les fichiers ISOs personnalisés.


Création de trois dossiers « isolinux », « ks » et « working » dans /var/tmp :

isolinux : Répertoire stockant le fichier du menu de boot

ks : Répertoire stockant le(s) fichier(s) kickstart à injecter dans l’iso personnalisé.

working : Répertoire de travail stockant les fichiers temporaires pendant la construction du média personnalisé.

2) Copie du fichier ISO original VMware vSphere ESXi et affectation des droits

Téléchargez un iso de VMware vSphere ESXi 6.0 et le copier dans le répertoire « vmware-original »


Appliquez des droits 755 sur le fichier iso de vSphere ESXi


Confirmez la position des droits 755 pour le compte root avec un « ls –l »

3) Création d’un fichier de menu « isolinux.cfg »

Allez dans le répertoire /var/tmp/isolinux.


Création d’un fichier « isolinux.cfg »


Contenu du fichier isolinux.cfg :

Enregistrez les modifications apportées au fichier isolinux.cfg sous vi (:wq!)

4) Création d’un mot de passe root encrypté pour les kickstarts

Générez un mot de passe chiffré à l’aide de la commande openssl ci-dessous.

Entrez deux fois le mot de passe en clair pour obtenir le mot de passe encrypté.


Conservez le mot de passe encrypté, il sera utilisé lors de la création des fichiers de kickstart.

5) Création des fichiers de kickstart

Allez dans le répertoire /var/temp/ks


Création des fichiers ks-xx.cfg :

Dans notre exemple 3 fichiers de kickstart et donc 3 hyperviseurs ESXi à installer: ks-01.cfg, ks-02.cfg et ks-03.cfg


Ci-dessous mon fichier KS que j’utilise souvent (à adapter en fonction des besoins de chacun) :

6) Automatiser la création de l’iso via un script Bash (esxi_factory_6.0.sh)

Ce script va permettre d’automatiser la création de l’iso personnalisé.

7) Création de l’iso personnalisé via le script bash (esxi_factory_6.0.sh)

Lancez le script de création de l’iso personnalisé (esxi_factory_6.0.sh) présent à la racine (/) de notre système Linux par la commande :

Notre script va commencer par :

  • Remplir les variables
  • Néttoyer le répertoire de travail si il existe déjà
  • Créer le répertoire de travail
  • Monter l’iso original de vSphere ESXi dans le répertoire de travail
  • Copier le contenu du média dans le répertoire de travail


  • Créer un répertoire de travail pour l’archive weaselin
  • Extraire l’archive weaselin dans ce répertoire de travail


  • Copier les fichiers de kicktart dans le répertoire de travail de l’archive weaselin
  • Packager de nouveau l’archive weaselin


  • Copier le fichier isolinux.cfg
  • Créer le nouveau fichier ISO personnalisé


Vérifiez la création du nouveau fichier ISO à la racine dans /vmware-modif


Vous pouvez récupérer le fichier via un logiciel comme WINSCP

8) Démarrage sur l’iso personnalisé

Il est possible de tester le média personnalisé dans une VM afin de simuler l’installation des hyperviseurs ESXi et ainsi vérifier que les kickstarts sont correctes.


Choisir le nom de l’hyperviseur à installer puis presser Entrer.


Lancement de l’installation. (vous pouvez prendre une pause café)


Le reboot s’effectue tout seul et donc pas obligé de presser la touche Entrer.


A la fin de l’installation (et au retour de la pause café), nous avons déjà un aperçu de la personnalisation de l’ESXi


Pour les plus motivés, il est aussi possible de générer les fichiers de kickstart de façon automatisé (par script) afin de ne pas modifier les variables de chaque fichier kickstart pour chaque ESXi. Sur peu d’hyperviseur cela ne pose pas de problème par contre sur une centaine d’ESXi cela peut vite devenir long et fastidieux.

Maintenant, vous n’avez plus d’excuse pour installer et configurer moins de 10 hyperviseurs par jour. :-p

twitterlinkedin
Publié dans Virtualisation, Vmware vSphere Tagués avec : , , , , , , , ,
13 commentaires sur “Automatiser l’installation et la configuration de vos ESXi
  1. @virttom dit :

    nice shot !

    merci pour le partage philippe je te dirais si j’ai réussi rapidement 😉

    • admin dit :

      Hello Tom, j’espère que tout roule pour toi.
      Pas de raison que tu n’y arrive pas, je package mes ISO de cette façon depuis X années 😉 (Pratique quand tu n’a pas de licence Ent Plus avec du Host Profile)
      Un peu de travail au début sur le 1er fichier kickstart en fonction de ton design. Après, pour les autres ESXi, c’est toujours le même en modifiant la valeur des variables …

      Philippe.

  2. minos dit :

    Bounjour,
    je suis en train de suivre le tuto.
    Cependant j ai des difficultés lors du traitement du script esxi.sh.

    je suis sous ubuntu .
    le paquet vmtar n’est pas dispo….

    si j’essaie directement sur un esxi 5.5 .. c’est le mount qui n’est pas reconnu.

    comment contourner le vmtar ?

    Merci par avance,

    Cordialement

  3. minos dit :

    Bonjour,

     

    Merci pour le retour,

     

    mais je dois mal m ‘y prendre , impossible d’installer le package vmtar.

     

    je suis bien sous une une distrib en 32 bits.

    Mais pas moyen ,

    Il faut une version d’Ubuntu particulière ? , j ‘ai même essayé  avec une debian 32bits ….

     

    Merci par avance,

     

     

    • admin dit :

      Bonjour,

      Il suffit de copier le fichier binaire dans /usr/sbin et de donner les droits d’execution dessus via un « chmod +x vmtar »
      La commande peut ensuite être appelée depuis un shell

      • minos dit :

        Merci du retour ,

        En effet cela marche nettement mieux , la commande vmtar est reconnue.

        par contre je n’ai rien qui arrive dans le répertoire /vmware-modif/

        il est vide , j ‘ai l’impression que la creation de l’iso modifiée ne se fait pas .

        ton script s’arrête à :
        echo « [….create custom file …) »

        il manque la commande pour generer l’iso…?

        peut on la lancer avec genisoimage car mkisofs plus dispo appremment ?

        Merci par avance,

        Cdt
        Minos

  4. minos dit :

    Coucou,

    je m’auto-réponds…

    j’ai trouvé cette commande là :

    genisoimage -R -r -J –hide-rr-moved -V « toto » -o ESXi-5.5.0.iso /var/tmp/working/distro/

    je dois maintenant affiner le script KS.cfg

    merci pour tout

     

    Minos

    • admin dit :

      Bonjour,
      Oui, effectivement le package « mkisofs » est remplacé par « genisoimage ».
      Merci de ce retour.

      • Damien BERAUD dit :

        Bonjour,

        Comment générez-vous le fichier ISO? Pouvez-vous donner la commande exacte?

        La ligne de commande qui a été proposé ne fonctionne pas. Le fichier ISO est généré mais n’est pas bootable.

        genisoimage -R -r -J -hide-rr-moved -o ${MEDIAvserion}.iso custom/

        J’ai cherché mais je ne trouve pas grand chose à ce sujet. Certain évoque le bootlinux.bin à préciser dans la commande mais toujours sans succès.

        Merci d’avance pour votre aide.

        Damien B.

        • admin dit :

          Bonjour Damien,

          Dans mes anciens déploiements sur une ubuntu 10.3.4, j’utilisai le package « mkisofs » avec les paramètres indiqués dans mon script (je viens d’ajouter la ligne, elle avait disparu).
          Je pense qu’il doit être possible de faire la même chose avec genisoimage:
          genisoimage -R -r -V « ISO-LABEL » -cache-inodes -J -hide-rr-moved -l -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ${WORKINGdir}/distro -o ${MEDIAoutput}/${CLIENT}${MEDIAversion}.iso

          Cordialement,
          Philippe.

  5. minos dit :

    Hello,

    je suis en train de peaufiner mon fichier KS.cfg.

    J ‘ai trouvé comment créer des rôles sous esxi en ligne de commande mais je voudrais savoir  comment créer un user sous esxi 5.5.0 en ligne de commande à qui je vais lui affecter le nouveau rôle ?

    Pour l’instant , rien de bien probant .

     

    Merci par avance,

    Minos

     

  6. Damien BERAUD dit :

    Vous avez réalisé un job impressionnant. Je vous remercie pour ce partage.

    Cordialement,

    DB.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*