Administrer des serveurs Windows avec Ansible
Je continue mon exploration de l’environnement Windows et que de progrès parcouru pour le rendre compatible avec les outils Devops. En effet depuis la version 2.8 il est possible d’utiliser OpenSSH et non plus winrm pour manager des serveurs Windows avec Ansible et ce sans trop de modifications. Il faudra juste utiliser des modules propres à Windows, mais rien empêche d’espérer un jour de voir les modules linux compatible avec Windows.
Installation d’Ansible Windows ou pas?
La vous avez plusieurs possibilités :
Installation et paramétrage d’OpenSSH sur le serveur Windows
Je reprends ici l’installation d’OpenSSH sur les deux dernières versions de Windows Server. Le compte utilisateur que vous utiliserez coté Windows doit faire partie du groupe Administrateurs.
Windows Server 2016
- Télécharger le binaire depuis le repo github ↗ et prenez la dernière release en version win64.zip.
- Décompresser l’archive dans répertoire
C:\Program Files
. - Ouvrez une fenêtre Powershell en tant qu’Administrateur
- Depuis le répertoire
C:\Program Files\OpenSSH-Win64
Lancer “install-sshd.ps1” - Créer un répertoire .ssh dans votre profil :
C:\users\stephane.r\.ssh
. - Y Créer un fichier “authorized_keys”
C:\users\stephane.r\.ssh\authorized_keys
. - Ajoutez y le contenu la cle publique de votre node controller
- Ouvrir le port 22 dans le Pare-feu Windows.
- Dans la base de registre HKLM/SOFTWARE/OpenSSH créer une
String Value
DefaultShell
avecC:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
comme valeur - Editer le fichier C:\ProgramData\ssh\sshd_config:
- décommenter
PubkeyAuthentication yes
. - commenter
#Match Group administrators
. - commenter
#AuthorizedKeysFile PROGRAMDATA/ssh/administrators_authorized_keys
.
- décommenter
- Démarrer les services “OpenSSH SSH Server” & “OpenSSH Authentication Agent” et les mettre en démarrage automatique
Windows Server 2019
- Ouvrez une fenêtre Powershell en tant qu’Administrateur
- Créer un répertoire .ssh dans votre profil (ex: c:\users\pierrc.ssh)
- Créer un répertoire .ssh dans votre profil :
C:\users\stephane.r\.ssh
- Y Créer un fichier “authorized_keys”
C:\users\stephane.r\.ssh\authorized_keys
- Ajoutez y le contenu la cle publique de votre node controller
- Dans la base de registre HKLM/SOFTWARE/OpenSSH créer une
String Value
DefaultShell
avecC:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
comme valeur - Editer le fichier C:\ProgramData\ssh\sshd_config:
- décommenter
PubkeyAuthentication yes
- commenter
#Match Group administrators
- commenter
#AuthorizedKeysFile PROGRAMDATA/ssh/administrators_authorized_keys
- décommenter
- Démarrer le service “OpenSSH SSH Server” et le mettre en démarrage automatique
Lancements de Playbooks Ansible sur des cibles Windows
Dans un premier temps testons juste que nous arrivons à pinger le serveur Windows.
Créer un fichier inventaire avec ce contenu:
Lançons le module ping :
Vous devriez obtenir :
Maintenant testons le module win_feature, mais avant il faut installer la collection :
Editer votre playbook install-iis.yml
et y mettre ceci:
Lancer votre playbook :
Voila on a installé iis
avec tous ces composants.
La liste de tous les modules windows ↗
Si vous voulez plus de tutorials Ansible je vous renvoie sur le billet de l’introduction à ansible