Ansible devient de plus en plus la plate-forme incontournable pour le déploiement d'applications et le provisionnement de logiciels parmi les développeurs en raison de sa facilité d'utilisation et de sa flexibilité. De plus, il est facile à configurer et aucun agent ne doit être installé sur des nœuds distants, à la place, Ansible utilise une authentification SSH sans mot de passe pour gérer les hôtes Unix/Linux distants. Dans cette rubrique, cependant, nous allons voir comment vous pouvez gérer l'hôte Windows à l'aide d'Ansible.
Configuration du laboratoire
Nous utiliserons la configuration ci-dessous pour atteindre notre objectif
- Nœud de contrôle Ansible – CentOS 8 – IP :192.168.43.13
- Nœud Windows 10 – Windows 10 – IP :192.168.43.147
Partie 1 :Installer Ansible sur le nœud de contrôle (CentOS 8)
Avant toute chose, nous devons installer Ansible sur le nœud de contrôle qui est le système CentOS 8.
Étape 1 :Vérifiez que Python3 est installé sur le nœud de contrôle Ansible
Tout d'abord, nous devons confirmer si Python3 est installé. CentOS 8 est livré avec Python3 mais s'il manque pour une raison quelconque, installez-le à l'aide de la commande :
# sudo dnf install python3
Ensuite, faites de Python3 la version Python par défaut en exécutant :
# sudo alternatives --set python /usr/bin/python3
Pour vérifier si python3 est installé, exécutez la commande :
# python --version
Lire aussi : Comment installer Ansible (outil d'automatisation) sur CentOS 8/RHEL 8
Étape 2 :Installez un environnement virtuel pour exécuter Ansible
Pour cet exercice, un environnement isolé pour exécuter et tester Ansible est préférable. Cela gardera à distance les problèmes tels que les problèmes de dépendance et les conflits de packages. L'environnement isolé que nous allons créer s'appelle un environnement virtuel.
Tout d'abord, commençons par l'installation de l'environnement virtuel sur CentOS 8.
# sudo dnf install python3-virtualenv
Après l'installation de l'environnement virtuel, créez un espace de travail virtuel en exécutant :
# virtualenv env
# source env/bin/activate
Génial! Observez que l'invite est maintenant changée en (env).
Étape 3 :Installer Ansible
Après la création de l'environnement virtuel, continuez et installez l'outil d'automatisation Ansible à l'aide de pip comme indiqué :
# pip install ansible
Vous pourrez ensuite confirmer l'installation d'Ansible à l'aide de la commande :
# ansible --version
Pour tester Ansible et voir s'il fonctionne sur notre serveur Ansible Control, exécutez :
# ansible localhost -m ping
Génial! Ensuite, nous devons définir l'hôte ou le système Windows sur un fichier hôte sur le nœud de contrôle Ansible. Par conséquent, ouvrez le fichier hosts par défaut
# vim /etc/ansible/hosts
Définissez les hôtes Windows comme indiqué ci-dessous.
Remarque : Le nom d'utilisateur et le mot de passe pointent vers l'utilisateur sur le système hôte Windows.
Ensuite, enregistrez et quittez le fichier de configuration.
Étape 4 :Installer Pywinrm
Contrairement aux systèmes Unix où Ansible utilise SSH pour communiquer avec des hôtes distants, avec Windows, c'est une toute autre histoire. Pour communiquer avec les hôtes Windows, vous devez installer Winrm.
Pour installer winrm, encore une fois, utilisez l'outil pip comme indiqué :
# pip install pywinrm
Partie 2 :Configuration de l'hôte Windows
Dans cette section, nous allons configurer notre système hôte distant Windows 10 pour se connecter au nœud Ansible Control. Nous allons installer le écouteur WinRM- abréviation de Windows Remote – qui permettra la connexion entre le système hôte Windows et le serveur Ansible.
Mais avant cela, votre système hôte Windows doit remplir quelques conditions pour que l'installation réussisse :
- Votre système hôte Windows doit être Windows 7 ou version ultérieure . Pour les serveurs, assurez-vous que vous utilisez Windows Server 2008 et versions ultérieures.
- Assurez-vous que votre système exécute .NET Framework 4.0 et plus tard.
- Windows PowerShell devrait être la version 3.0 et ultérieure
Une fois toutes les conditions remplies, suivez maintenant les étapes stipulées ci-dessous :
Étape 1 :Téléchargez le script WinRM sur l'hôte Windows 10
WinRM peut être installé à l'aide d'un script que vous pouvez télécharger à partir de ce lien. Copiez l'intégralité du script et collez-le dans l'éditeur de bloc-notes. Ensuite, assurez-vous d'enregistrer le script WinRM à l'emplacement le plus pratique. Dans notre cas, nous avons enregistré le fichier sur le bureau sous le nom ConfigureRemotingForAnsible.ps1
Étape 2 :Exécutez le script WinRM sur l'hôte Windows 10
Ensuite, exécutez PowerShell en tant qu'administrateur
Accédez à l'emplacement du script et exécutez-le. Dans ce cas, nous avons navigué jusqu'à l'emplacement du bureau où nous avons enregistré le script. Ensuite, continuez et exécutez le script WinRM sur l'hôte Windows :
.\ConfigureRemotingForAnsible.ps1
Cela prend environ une minute et vous devriez obtenir la sortie ci-dessous. La sortie montre que WinRM a été installé avec succès.
Partie 3 :Connexion à l'hôte Windows à partir du nœud de contrôle Ansible
Pour tester la connectivité à l'hôte Windows 10, exécutez la commande :
# ansible winhost -m win_ping
La sortie montre que nous avons effectivement établi une connexion à l'hôte Windows 10 distant à partir du nœud Ansible Control. Cela implique que nous pouvons désormais gérer l'hôte Windows distant à l'aide d'Ansible Playbooks. Créons un exemple de playbook pour le système hôte Windows.
Partie 4 :Créer et exécuter un playbook pour l'hôte Windows 10
Dans cette dernière section, nous allons créer un playbook et créer une tâche qui installera Chocolatey sur l'hôte distant. Chocolatey est un gestionnaire de paquets pour le système Windows. Le jeu est défini comme indiqué :
# vim chocolatey.yml --- - hosts: winhost gather_facts: no tasks: - name: Install Chocolatey on Windows10 win_chocolatey: name=procexp state=present
Enregistrez et fermez le fichier yml. Ensuite, exécutez le playbook comme indiqué
# ansible-playbook chocolatey.yml
La sortie est un pointeur qui s'est bien passé. Et ceci conclut ce sujet sur la façon dont vous pouvez gérer l'hôte Windows à l'aide d'Ansible.
Lire aussi : Comment créer des rôles Ansible et les utiliser dans Playbook