Configuration Ansible pour clients Windows ( AD ou non)

Configuration Ansible pour clients Windows ( AD ou non) - Management du SI - Systèmes & Réseaux Pro

Marsh Posté le 31-03-2017 à 11:07:10    

Bonjour à tous,
 
Connaissez-vous un tuto qui fonctionne concernant la configuration qu'il faut appliquer à Ansible pour l'utiliser avec des clients Windows ? ( dans un AD ou non).
J'ai suivi des dizaines de tutos en vain et là je commence a désespérer... ( La version TOWER fonctionne donc le pb vient bien de la conf de Ansible en version gratuite, ou de kerberos, mais je ne vois pas d'où exactement). De plus les messages d'erreurs que je récupère ne me servent a rien ( ils changent tout le temps et aucune info sur internet... Ou sinon des solutions qui aggravent les choses ^^' )
 
Donc si vous connaissez un tuto qui explique bien comment faire et qui fonctionne ( que je puisse suivre à la lettre), je suis preneur :)
 
Merci pour votre aide

Reply

Marsh Posté le 31-03-2017 à 11:07:10   

Reply

Marsh Posté le 31-03-2017 à 11:13:41    

Pour préciser, ansible fonctionne très bien avec les clients Linux.
Pour les clients windows j'ai suivis pas mal de tutos avec les étapes suivants :  
- Paramétrer Windows ( ScriptConfigWinrm.ps1 + avoir Powershell en version 3 ou plus
- Paramétrer kerberos sur serveur ansible
- Configurations diverses du serveur Ansible pour connexion winrm avec Windows. ( Bien sur ca n'a jamais fonctionné... )
 
 
J'ai également testé la version Tower de Ansible ( avec des licences de test) et elle fonctionne très bien aussi bien pour clients UNIX que Windows.
 

Reply

Marsh Posté le 31-03-2017 à 15:18:50    

Salut,
 
j'ai réussi en suivant ce tuto, avec un client Ansible simple (en cours de test, j'ai pas de playbook & co):
https://www.it-connect.fr/debutez-a [...] s-windows/
 
Ce que je dois faire pour que ça fonctionne:
 
- initialiser la session kerberos avec la commande kinit au moins une fois avant de lancer les commandes ansible
- utiliser le meme compte AD via kinit + connexion distante au serveur
- utiliser un fichier vault pour y mettre les login/mdp, avec les options suivantes :  


ansible_user:  
ansible_password:
ansible_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore


 
Ce qui me donne la commande suivante (par ex pour le setup):

$ ansible monserveur -m setup --ask-vault-pass -i hosts-windows -vvv


 
Bon courage !

Reply

Marsh Posté le 31-03-2017 à 17:30:09    

Salut Remi, et merci pour ta réponse qui m'a été très utile :)
 
J'ai testé et tout fonctionne bien ( Ansible avec client W7 hors domaine et client WindowsServer2012R2 en Contrôleur de Domaines ).
Par contre il y a quelque chose de bizarre... J'ai voulu tester (juste pour voir) de me connecter au Contrôleur de Domaine sans utiliser Kerberos, avec l'administrateur du domaine (sans installer tous les petits packages, dont krb5-user) et avec le même style de conf que pour W7.
Je pensais que la connexion ne fonctionnerait pas ( car normalement il faut utiliser Kerberos en l'installant à part ,cf site d'Ansible, et créer le certificat avec kinit ...). Cependant la connexion a fonctionné normalement. En regardant les logs de sécurité coté "W2012 DC" je vois qu'il y a bien ue une connexion et qu'elle utilise Kerberos...  
 
Cela signifie-t-il que l'on peut se passer d'utiliser kinit ?  :??:  
 
Encore Merci

Reply

Marsh Posté le 02-04-2017 à 10:01:40    

Salut,
 
vérifie bien que tu n'as pas de jeton kerberos en cours de validité sur ta machine ansible avec la commande "klist".
Si t'en a 1, tu peux le détruire avec la commande "kdestroy", et refaire ton test. Au moins tu es sûr de ne pas utiliser Kerberos.

Reply

Marsh Posté le 02-04-2017 à 10:57:24    

Bonjour Remi,
 
Oui, j'ai bien vérifié. Hier j'ai refais le test avec une nouvelle machine Ansible serveur ( Ubuntu Xenial) et un nouveau Windows Domain Controlleur ( un W2016 cette fois, pour tester la compatibilité avec Ansible). Les 2 machines ne s'étant jamais "parlées" avant il ne peut y avoir de Kerberos entre les deux. Cependant, la encore, en utilisant juste Ansible et en remplissant les champs "ansible_user" et "ansible_password" avec les bons credentials (admin du domaine), la connexion fonctionne et je vois bien une connexion Kerberos dans les logs de sécurité de W2016 DC.
Donc visiblement on peut bien se passer de Kinit. Je vais voir si en utilisant des playbooks il y a des problèmes, mais a priori je ne vois pas pourquoi il y en aurait :) ).
En même temps je trouve ça plus logique car je ne comprends pas pourquoi il faudrait avoir un Kerberos prés-initialisé entre les 2 machines avant la connexion sachant que de toutes façons les credentials sont contenues dans le fichier .yml du dossier group_vars...
 
Par contre, dés le moment où j’installe kerberos ( avec les commandes kinit, klist, etc...) Ansible me force à les utiliser, ce qui complique légèrement le processus de connexion aux hôtes Windows....
 

Reply

Marsh Posté le 02-04-2017 à 17:47:24    

Salut,
 
je viens de tester aussi de mon côté.
 
En fait, Ansible utilise Kerberos si dispo, sinon c'est ntlm, ou autre (je ne connais pas l'ordre).
Voir ici les options d'authentification: http://docs.ansible.com/ansible/in [...] on-options
 
Si tu mets "ansible_winrm_transport: ntlm" dans ton fichier d'option, tu force l'auth NTLM et ça n'utilisera pas kerberos, meme si installé sur ton serveur Ansible.. et donc plus beosin de kinit & co ;)

Reply

Marsh Posté le 02-04-2017 à 19:07:27    

et utiliser le compte administrateur du domaine, je doute que ce soit très recommandé ...

Reply

Marsh Posté le 03-04-2017 à 13:08:36    

NTLM n'est pas un protocole sécurisé, il faut toujours privilégier Kerberos à la place quand cela est possible.

Reply

Marsh Posté le 03-04-2017 à 14:14:21    

Bonjour,
 
Yes en effet ne pas utiliser l'admin du domaine, et plutôt Kerberos, mais pour ma part ça me permet de comprendre comment fonctionne la config d'Ansible pour la gestion des hôtes windows.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed