Introduction :
Ansible offre une solution automatisée pour la gestion des serveurs Windows, permettant d’accomplir diverses tâches administratives telles que :
- Gestion des utilisateurs et groupes : Création, modification et suppression d’utilisateurs et de groupes Windows à l’aide des modules win_user et win_group.
- Installation de fonctionnalités Windows : Installation et configuration de fonctionnalités Windows spécifiques à l’aide du module win_feature.
- Gestion de paquets Chocolatey : Installation, mise à jour et suppression de paquets logiciels via le gestionnaire de paquets Chocolatey avec le module Win_chocolatey.
- Collecte d’informations système : Récupération d’informations sur les fichiers, répertoires et variables d’environnement Windows à l’aide des modules Win_stat et Win_env.
- Mise à jour du système d’exploitation : Installation des mises à jour Windows et des correctifs de sécurité avec le module Win_update.
- Redémarrage des serveurs : Redémarrage des serveurs Windows avec Ansible à distance à l’aide du module Win_reboot.
Remarques importantes :
- Alternatives à Ansible : Il existe d’autres outils plus adaptés à la gestion native des machines Windows, tels que l’utilisation directe de WinRM sur PowerShell ou l’adoption de Microsoft Endpoint Configuration Manager (MECM) ou intune pour le cloud.
- Performance : Ansible peut s’avérer moins performant sur Windows que sur les machines Linux en raison de l’architecture et des protocoles de communication sous-jacents.
Exemple :
fichier hosts.ini et de modules Ansible pour la gestion de machines Windows.
Ce fichier définit les machines Windows que vous souhaitez gérer avec Ansible et leurs informations de connexion.
fichier hosts.ini
[windows]
windows2022 ansible_host=127.0.0.1
[windows:vars]
ansible_user=vagrant
ansible_password=vagrant
ansible_connection=winrm
ansible_port=5986 # Port HTTP (pour HTTPS, utilisez 5986)
ansible_winrm_server_cert_validation=ignore
ansible_winrm_scheme=https
ansible_become_method=runas
ansible_become_user=SYSTEM
Modules Ansible dans un playbook
Ce playbook utilise plusieurs modules Ansible pour effectuer différentes tâches sur une machine Windows nommée windows2022.
name: Gérer la machine Windows2022
hosts: windows
become: true
tasks:
name: Vérifier la connectivité
win_ping:
name: Créer un utilisateur avec un mot de passe expiré
win_user:
name: nouvel_utilisateur
password: MonNouveauMotDePasse
password_expired: true
name: Créer un groupe
win_group:
name: nouveau_groupe
name: Installer une fonctionnalité Windows
win_feature:
name: Web-Server
state: present
name: Installer un logiciel avec Chocolatey
win_chocolatey:
name: notepadplusplus
state: present
name: Obtenir des informations sur un fichier
win_stat:
path: 'C:/Windows/System32/notepad.exe'
name: Définir une variable d'environnement
win_env:
name: PATH
value: 'C:/Program Files/Notepad++'
append: yes
name: Exécuter une mise à jour Windows
win_update:
state: latest
name: Redémarrer la machine
win_reboot:
Explication du playbook
Ce playbook effectue les tâches suivantes :
- Vérifie la connectivité à la machine Windows2022 avec le module win_ping.
- Crée un utilisateur nommé nouvel_utilisateur avec le module win_user et définit son mot de passe sur MonNouveauMotDePasse, en le marquant comme expiré.
- Crée un groupe nommé nouveau_groupe avec le module win_group.
- Installe la fonctionnalité Windows Web-Server avec le module win_feature.
- Installe le logiciel notepadplusplus en utilisant Chocolatey avec le module win_chocolatey.
- Récupère des informations sur le fichier C:/Windows/System32/notepad.exe avec le module win_stat.
- Définit la variable d’environnement PATH pour inclure le répertoire C:/Program Files/Notepad++ avec le module win_env.
- Exécute une mise à jour Windows pour installer les derniers correctifs de sécurité avec le module win_update.
- Redémarre la machine pour appliquer les modifications.
Conclusion
Ansible offre une solution viable pour l’automatisation de tâches administratives sur des serveurs Windows, mais il est crucial de considérer ses limitations en termes de performance et d’explorer les alternatives natives de Microsoft, en particulier pour les environnements Windows à grande échelle ou critiques. Le choix de l’outil dépend des besoins spécifiques, des préférences et de l’expertise de l’administrateur système.
En résumé, Ansible peut être un outil précieux pour gérer les serveurs Windows, mais il est important de l’utiliser judicieusement en tenant compte de ses avantages et de ses limites.