Ansible and microsoft
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 :
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.
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 :