Buenos dias queridos lectores!
En el post de hoy vamos a ver como con unos sencillos pasos, podremos configurar nuestros servidores windows para que puedan ser manejados desde Ansible.
Preparar servidores widows
Inicialmente será necesario configurar el WinRM de tal forma que acepte conexiones desde nuestro nodo de control.
Los chicos de Ansible, se han currado un script en PowerShell, con lo que solo con descargarlo y ejecutarlo ya tendremos esta parte configurada

Preparar servidor Ansible
Para ello, hay que instalar el gestor de paquetes de python-pip y todos los modulos necesarios, como pywinrm o kerberos:
$ yum install -y python-pip
$ pip install https://github.com/diyan/pywinrm/archive/master.zip#egg=pywinrm
$ yum -y install gcc python-devel krb5-devel krb5-workstation
$ pip install kerberos
Crear inventario
Antes de crear o modificar nuestro fichero de inventario, deberemos crear las variables necesarias para conectarnos a nuestros windows, para ello, en el mismo directorio donde tengamos nuestro fiehero de inventario, crearemos la carpeta group_vars y el fichero de variables:
$ vim inventory/group_vars/windows.yml
Este fichero de variables deberá contener los siguientes datos:
ansible_ssh_user: administrador
ansible_ssh_pass: MySuperSecretPass123!
ansible_ssh_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore
En nuestro fiechero de inventario, deberemos crear un bloque con el mismo nombre que el fichero de variables, en nuestro caso ‘windows’
[windows]
demo01
demo02
demo03
Comprobar
Para comprobar que podemos conectarnos sin problemas a nuestros Windows, podremos ejecutar el siguiente comando desde nuestro servidor Ansible:
$ curl -vk -d "" -u administrator:MySuperSecretPass123! http://myserver.ncora.local:5985/wsman
…y deberiamos ver una salida similar a esta:

Enjoy
Si hemos seguido todos los pasos y ya tenemos nuesto entorno configurado para que pueda ser manejado con Ansible, no nos queda nada mas que empezar a ejecutar comandos sobre nuestra granja. De manera ad-hoc:
$ ansible -m win_ping -i inventory/servers windows -vvv
$ ansible -m win_file -a 'path=c:\\test.txt state=touch' -i inventory/servers windows
$ nsible -m win_updates -a 'category_names=SecurityUpdates' -i inventory/servers windows
$ ansible -m win_updates -a 'category_names=CriticalUpdates' -i inventory/servers windows
…o através de nuestros playbooks y roles pada dotar a nuestras tareas de mas complejidad
Recordad que hay una extensa lista de módulos para windows que nos simplificarán mucho la vida a la hora de administrar nuestra granja.
Un saludo y hasta el próximo post
Miquel.