Provisionnement de machines virtuelles#
Dans cet article, nous examinons le cas d'utilisation du provisionnement de machines virtuelles (VM) via i-doit. À cette fin, nous utilisons une documentation informatique bien entretenue associée à quelques scripts pour rendre cette automatisation une réalité.
Problème#
Jusqu'à présent, la documentation et les fichiers de configuration sont strictement distingués : L'informatique de l'organisation est documentée dans i-doit, y compris un cluster de virtualisation. Ce cluster se compose de plusieurs hôtes de virtualisation (systèmes hôtes) et des machines virtuelles qui y fonctionnent (systèmes invités). La configuration de chaque VM est exécutée dans l'environnement d'administration du cluster. Cela inclut la création d'une nouvelle VM avec des paramètres spécifiques pour le CPU, la mémoire, le réseau, l'espace disque, etc. Ce processus est également appelé provisionnement.
Pour la routine quotidienne, cela signifie que le processus est caractérisé par un outil dédié qui crée une nouvelle VM. Ensuite, le travail terminé est documenté dans i-doit :
- Démarrer l'outil de configuration du cluster de virtualisation
- Créer et configurer une nouvelle VM
- Passer à la documentation informatique (i-doit)
- Créer une nouvelle VM, configurer les catégories respectives, attribuer la VM au cluster
Il n'y a pas d'échange de données entre l'outil utilisé et i-doit, donc la configuration de la VM doit être effectuée deux fois. Les erreurs ne peuvent pas être exclues lors du transfert de la configuration. La maintenance redondante des fichiers de configuration est donc une tâche très ingrate pour l'administrateur.
Cet article est obsolète et n'est plus à jour
Veuillez noter que la procédure décrite ici peut déjà être obsolète.
Solution#
Nous souhaitons optimiser ce processus en utilisant les fichiers de configuration disponibles dans i-doit et en automatisant certaines étapes. Dans cette optique, nous modifions le processus :
- Ouvrir la documentation informatique (i-doit)
- Créer une nouvelle VM, configurer les catégories respectives, attribuer la VM au cluster
- La VM sera créée et provisionnée automatiquement dans l'outil de configuration du cluster de virtualisation
Quatre étapes manuelles deviennent deux. La troisième étape est effectuée automatiquement en arrière-plan. La maintenance doublée des fichiers de configuration par l'administrateur peut être omise. Les sources d'erreurs sont éliminées et l'administrateur est satisfait.
Hypothèses#
Nous allons parcourir complètement ce cas d'utilisation avec un exemple. Cela est censé montrer la procédure générale et peut être facilement appliqué dans d'autres environnements. Pour la solution, nous supposons :
- Le cluster de virtualisation est basé sur VMware vSphere en version 5.
- i-doit est installé sur Debian GNU/Linux 8.5. Pour cela, nous utilisons l'Appliance d'Évaluation. Les paquets de distribution doivent être mis à jour avec apt.
- La version de i-doit est 1.7.1 ou supérieure. L'hôte i-doit est accessible via le FQDN i-doit.example.net.
- Pour surveiller l'automatisation, nous utilisons le client VMware vSphere.
- Un utilisateur existe dans VMware vSphere qui a les autorisations pour provisionner des VM. Dans notre exemple, cet utilisateur s'appelle vmprovision avec le mot de passe vmprovision.
Configuration#
Tout d'abord, nous devons effectuer quelques préparatifs afin que les deux systèmes puissent communiquer entre eux.
SDK vSphere#
Nous avons besoin du SDK VMware pour Perl sur l'hôte i-doit afin que i-doit puisse informer le cluster vSphere de provisionner une nouvelle VM. Pour cela, nous téléchargeons la version 6.0.2. À cette fin, vous avez besoin d'un compte chez VMware et vous devez accepter le Contrat de Licence Utilisateur Final (CLUF) de VMware. Nous décidons de télécharger le package en tant que Tarball (.tar.gz) pour les systèmes d'exploitation 64 bits.
Après le téléchargement, nous copions le Tarball sur l'hôte i-doit et l'extrayons. Nous nous connecterons en tant que root car les permissions root sont nécessaires pour presque toutes les commandes suivantes:
1 2 3 4 5 6 |
|
À ce stade, il est conseillé de mettre à jour le système - si ce n'est pas déjà fait. Nous installons également des packages supplémentaires via apt et cpan:
1 2 3 |
|
Étant donné que le SDK ne prend pas en charge officiellement Debian GNU/Linux, nous devrons tromper le SDK en lui faisant croire qu'il s'agit d'un système d'exploitation différent:
1 |
|
Le SDK a besoin des variables d'environnement http_proxy et ftp_proxy:
1 2 |
|
Maintenant, nous installons le SDK en utilisant le script d'installation fourni:
1 |
|
Le script doit une fois de plus avoir l'EULA de VMware confirmé avec yes. Si des modules Perl supplémentaires doivent être installés, vous devez également confirmer cela avec yes. Une fois l'installation terminée avec succès, le texte suivant apparaît dans la sortie:
1 |
|
À ce stade, l'installation du SDK est terminée. Nous avons suivi ces directives. Merci beaucoup! Et maintenant, nous passons à l'étape suivante.
API i-doit#
Une partie de la communication entre i-doit et VMware se fait via l'API d'i-doit. L'API doit être activée et vous devez connaître la clé API. Pour utiliser l'API confortablement, nous utilisons le client de référence pour PHP:
1 2 3 4 5 |
|
Pour exécuter make initialize
, le client API interroge l'URL et la clé API de l'installation i-doit qui va être utilisée.
Script#
Le script suivant représente la connexion de lien entre i-doit et VMware:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
Nous copions ceci dans le fichier /usr/local/bin/i-doit_provision.php. Nous attribuons également les autorisations appropriées pour que le serveur web Apache puisse exécuter le script :
1 |
|
Ce script inclut la configuration pour accéder à la fois à i-doit et VMware. Il doit être ajusté en conséquence :
- $vSphereUsername : Utilisateur pour vSphere (voir ci-dessus)
- $vSpherePassword : Mot de passe pour vSphere (voir ci-dessus)
- $vSphereWebService : URL du service Web de vSphere
- $objCMDBStatus : ID du statut CMDB à provisionner (voir ci-dessous)
- $objCMDBStatus_ready : ID du statut CMDB provisionné (voir ci-dessous)
- $api_entry_point : URL de l'API d'i-doit
- $api_key : Clé pour l'API d'i-doit ```
Statut de la CMDB supplémentaire#
Les deux déclarations de statut de la CMDB à provisionner et provisionné n'existent pas encore dans l'installation par défaut d'i-doit, mais elles sont cruciales pour l'automatisation. Elles doivent être complétées comme décrit dans l'article lié.
Configurer l'événement#
Maintenant, i-doit doit être configuré pour exécuter le script si certaines modifications sont effectuées. Pour cela, nous utilisons les contrôles d'événements et créons un nouveau hook.
- Événement: Catégorie: (sources arbitraires) Enregistrer
- Description: Provisionnement de VM
- Type: COMMANDE SHELL
- Commande: /usr/local/bin/i-doit_provision.php
- Paramètres supplémentaires: laisser ceci vide
- Mode: Exécutif en direct
À ce stade, la configuration est terminée et l'automatisation est "activée".
Gestion#
Après cette configuration unique et étendue, nous pouvons maintenant voir comment fonctionne l'automatisation.
Documenter l'environnement virtuel dans i-doit#
Un cluster vSphere (type d'objet Cluster) avec quelques hôtes ESX (type d'objet Hôte virtuel) existe déjà. Le titre de l'objet du cluster correspond au centre de données dans vSphere. Les titres des objets des hôtes ESX sont les noms d'hôtes qui sont également affichés dans vSphere.
Les commutateurs virtuels sont configurés avec des identifiants VLAN (catégorie Commutateurs virtuels) pour chaque hôte ESX.
Les hôtes ESX sont liés à un stockage central qui fournit aux machines virtuelles de l'espace disque (catégorie Dispositifs logiques (Client)).
Le côté stockage est construit en conséquence. La catégorie Dispositifs logiques (Serveur LDEV) contient l'attribution des LUN aux hôtes ESX.
Créer une nouvelle VM#
Le cluster vSphere et le stockage sont maintenant prêts selon la documentation informatique. Il est temps de documenter les machines virtuelles - et de les provisionner automatiquement.
Tout d'abord, vous créez une nouvelle VM (type d'objet Serveur virtuel) et définissez son statut CMDB à planifié (car elle n'existe pas encore).
Ensuite, la configuration système souhaitée est documentée. Le nombre de cœurs de CPU demandés est documenté dans la catégorie CPU. Une entrée est générée pour chaque cœur.
La RAM requise est documentée dans la catégorie Mémoire. Le nombre de modules de RAM et les unités de valeur choisies ne sont pas importants. La capacité totale est plutôt cumulée.
Dans la catégorie Réseau → Port, le titre de la première entrée est utilisé pour configurer un port virtuel pour la VM.
L'espace disque requis est spécifié dans la catégorie Stockage Direct Attaché → Périphérique.
Dans la catégorie Machine virtuelle, vous documentez dans quel cluster et sur quel hôte ESX la VM est censée s'exécuter.
L'attribution du stockage et du réseau est stockée dans la catégorie Machine virtuelle → Périphériques virtuels. La capture d'écran montre quels attributs doivent être remplis.
Avec cela, la configuration de la VM est suffisamment documentée.
Modèles
Un modèle est utile pour documenter plus rapidement les machines virtuelles et ainsi les provisionner plus rapidement. Un modèle est créé pour chaque VM pré-assemblée et de nouveaux objets sont générés sur la base de ce modèle.
Provisionnement automatique de VM#
Maintenant, nous arrivons à la dernière étape : le provisionnement. Il ne nous reste plus grand-chose à faire. Dans la catégorie Général, le statut CMDB est défini sur à provisionner. Lorsque la modification est enregistrée, le script décrit ci-dessus commence à lire les fichiers de configuration depuis i-doit et les transfère vers vSphere. L'enregistrement peut prendre un certain temps car les résultats doivent d'abord être disponibles.
Une fois le provisionnement terminé avec succès, le statut CMDB est automatiquement changé en provisionné. La VM a été créée et fonctionne. Terminé !
La communication entre i-doit et vSphere est affichée dans Administration → Paramètres CMDB → Événements → Historique (Journal).