Comment automatiser les déploiements VMware avec Ansible
Associé à VMware, le logiciel Ansible permet d'automatiser les tâches d’administration. Découvrez les étapes d'installation d'Ansible et comment configurer une machine virtuelle via vCenter.
L’automatisation des tâches dans votre environnement VMware vSphere peut stimuler la productivité. Avec seulement quelques commandes, Ansible peut être associé à vSphere pour aider les équipes à automatiser les tâches informatiques en toute simplicité.
Par le passé, les administrateurs utilisaient uniquement des langages de script tels que PowerShell pour gérer les environnements. Bien qu’il s’agisse toujours d’une méthode viable, vous devez définir toutes les étapes pour créer ou gérer les composants dans l’ordre correct dans un script. Avec Ansible, vous pouvez définir ce dont vous avez besoin dans un fichier structuré qu’un moteur traite ensuite. Cela rend le code réutilisable et Ansible est une option polyvalente pour automatiser la création et la gestion des tâches dans un environnement VMware vSphere.
La facilité d’utilisation d’Ansible
Il existe différentes façons d’utiliser Ansible pour l’automatisation. Ansible dispose d’une option open source, utilisée pour les exemples de cet article. Il existe également la plateforme d’automatisation Ansible de Red Hat. Ce produit est disponible à l’achat et offre une évolutivité d’entreprise, un support et un composant pour la gestion centralisée afin de rendre les administrateurs moins dépendants de la ligne de commande.
Les exemples de cet article se concentrent sur l’utilisation d’Ansible dans un environnement VMware, mais le logiciel peut également aider à gérer de nombreux autres environnements. Il est donc optimal si vous souhaitez gérer non seulement votre infrastructure de virtualisation, mais aussi les systèmes d’exploitation invités et les applications. Ansible fonctionne dans un environnement Microsoft Azure ou Amazon Web Services, ainsi qu’avec des conteneurs Docker et des composants réseau.
Comment installer Ansible
Pour utiliser le logiciel Ansible, vous avez besoin d’une machine de contrôle capable d’exécuter Python 2 ou Python 3. Pour les exemples de cet article, nous utilisons une machine Ubuntu Linux. Bien que les commandes puissent être différentes pour d’autres distributions, le concept général est le même.
Tout d’abord, installez le logiciel Ansible sur la machine de contrôle. Dans Ubuntu, utilisez les commandes suivantes.
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ansible/ansible
sudo apt update
sudo apt install ansible
Vous trouverez des instructions pour d’autres systèmes dans le guide d’installation d’Ansible. N’oubliez pas qu’Ansible ne peut pas fonctionner sous Windows en tant que machine de contrôle.
Si Python est généralement installé par défaut, le programme d’installation de Python ne l’est souvent pas. Vous avez besoin de ce composant, appelé pip, pour installer les modules VMware nécessaires.
Pour installer pip, vous avez besoin du paquetage des environnements virtuels Python. Installez les deux à l’aide des commandes suivantes.
sudo apt update
sudo apt install python3-venv python3-pip
python -m pip install --upgrade pip
Ensuite, installez le SDK Python pour l’API VMware vSphere. Il permet de communiquer avec ESXi et vCenter. Le nom du paquetage est pyVmomi. Le code est disponible sur GitHub, et vous pouvez trouver la procédure d’installation sur la page de documentation VMware for Ansible.
Installez ce module avec pip, en utilisant pip install pyvmomi.
Automatisation d’une VM avec Ansible
Une fois tous les prérequis installés, vous pouvez maintenant passer à l’utilisation du logiciel Ansible. Tout d’abord, construisez un playbook au format YAML pour définir ce que vous voulez réaliser et les tâches que vous voulez exécuter.
La commande générale pour traiter un playbook est ansible-playbook <nom du fichier yaml>. Utilisez la construction d’une variable pour rendre le code plus flexible.
ansible-playbook createvm.yaml --extra-vars "vm_name=techtarget-vm-2"
Utilisez la variable vm_name dans le fichier yaml et remplacez-la par votre chaîne au moment de l’exécution. De cette manière, vous pouvez utiliser le même fichier yaml pour créer des machines virtuelles à plusieurs reprises en spécifiant simplement le nom de la machine virtuelle sans avoir à modifier aucun fichier.
Le screenshot suivant, du client vSphere, montre la machine virtuelle et le modèle sur lequel elle est basée.
L’utilisation de variables rend le code plus réutilisable. Comme le montre la figure 4, placez l’adresse du serveur et les informations d’identification de l’utilisateur dans un fichier distinct nommé vars.yaml. Dans le playbook, utilisez ensuite la pré-tâche include_vars pour obtenir les valeurs des paramètres que vous souhaitez traiter.
Préfixez les noms de variables par vc_ pour les identifier comme des variables de l’environnement vCenter. Dans le fichier yaml à traiter, placez les noms de variables entre guillemets et crochets, par exemple "{{ vc_hostname }}".
Alors que dans la capture ci-dessus, le mot de passe est placé dans le fichier, Ansible contient une fonctionnalité appelée vault qui permet de stocker les mots de passe de manière plus sécurisée.