Ansible and microsoft

Introduction

Ansible est un outil open source d'automatisation des tâches. Il gère la configuration de vos serveurs Linux et Windows. Il fonctionne sans agent.

Vous pouvez utiliser Ansible pour automatiser trois types de tâches :

  • Le provisionnement : Configurer plusieurs serveurs dont vous avez besoin dans votre infrastructure.
  • Gestion de la configuration : Modifier la configuration d'une application, d'un système d'exploitation ou d'un périphérique ; démarrer et arrêter des services ; installer ou mettre à jour des applications ; mettre en œuvre une politique de sécurité ou effectuer une grande variété d'autres tâches de configuration.
  • Déploiement d'applications : Facilitez le DevOps en automatisant le déploiement d'applications développées en interne vers vos systèmes de production.

Configurer le serveur Windows

Un script PowerShell est disponible pour configurer automatiquement votre serveur Microsoft. Ce script va automatiquement configurer WinRM (Windows Remote Management) et ouvrir le pare-feu.

Téléchargez le script PowerShell depuis le repo officiel Ansible sur Github.

Lancer une fenêtre PowerShell en Administrateur

Modifiez les règles d'exécution des scripts PowerShell pour permettre l'exécution du script.

PS C:\Users\Administrator\Downloads\ansible\examples\scripts> Set-ExecutionPolicy Unrestricted
 
Execution Policy Change
The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose
you to the security risks described in the about_Execution_Policies help topic at
https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): Y

Exécutez le script.

PS C:\Users\Administrator\Downloads\ansible\examples\scripts> .\ConfigureRemotingForAnsible.ps1
 
Security warning
Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the
 Unblock-File cmdlet to allow the script to run without this warning message. Do you want to run
C:\Users\Administrator\Downloads\ansible-2.10.7\ansible-2.10.7\examples\scripts\ConfigureRemotingForAnsible.ps1?
[D] Do not run  [R] Run once  [S] Suspend  [?] Help (default is "D"): R
Self-signed SSL certificate generated; thumbprint: 50AFF90B626CD0B963368D36CD9EEA62D937E097
 
 
wxf                 : http://schemas.xmlsoap.org/ws/2004/09/transfer
a                   : http://schemas.xmlsoap.org/ws/2004/08/addressing
w                   : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
lang                : en-US
Address             : http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
ReferenceParameters : ReferenceParameters
 
Ok.

On vérifier la présence des règles firewall une fois la fin de l'exécution du script ConfigureRemotingForAnsible.ps1 terminé.

Ansible doit etre exécuté avec les droits d'admins. Nous allons donc creer cet utilisateur dans le groupe Administrators du serveur :

Notre serveur Windows est maintenant prêt pour être géré à distance avec Ansible.

Configuration du serveur Ansible

Ici nous allons configurer notre serveur ansible afin de pouvoir administrer nos serveurs Windows depuis celui-ci. Nous considérons que l'installation d'ansible a déjà été faite (cf lien installation Ansible)

Nous allons désormais installer le prérequis pywinrm qui permet d'administrer les serveurs windows. Saisissez les commandes ci-dessous :

Centos :

- dnf install python-pip

- pip3 install pywinrm

Debian :

- apt-get install python-pip

- pip3 install pywinrm

Dans le fichier /etc/hosts, nous allons configurer des variables qui serviront à l'authentification sur les serveurs distants.

Voici la liste :

ansible_user=Ansible #Utilisateur créé precedement dans le groupe Administrator de notre serveur Windows ansible_password=Password2020 #Mot de passe du user ansible_connection=winrm #Protocole utilisé par Ansible pour communiquer avec les serveurs Windows ansible_winrm_server_cert_validation=ignore

Dans cette demonstration, nous avons decidé d'ignorer la demande de certificat aux hotes distants.

Une fois les variables créées, nous alons renseigner notre serveur windows dans notre fichier /etc/hosts [win] 192.168.1.8 (ip de notre serveur Windows)

Voici le resultat final de notre configuration :

Une fois la configuration du serveur hote ainsi que du serveur ansible, nous pouvons tester afin de verifier que la communication est operationnelle :

Ici, nous testons un simple win_ping qui fera un ping de la machine distante :

Administration serveur Windows via Ansible

Annexe

Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus