
Soy Oscar Mas y en este apartado, procederemos a la instalación de nuestro sistema de Ansible mediante los repositorios oficiales y posteriormente configuraremos nuestro equipo para que se integre con nuestro Active Directory, para poder gestionar nuestro sistemas basados en Windows.

Lo primero que haremos es añadir el repositorio de Ansible a nuestro equipo que realizará las funcionalidades de Ansible, de la siguiente manera:
root@ansible:~# apt-add-repository ppa:ansible/ansible
Una vez lanzado el comando para añadir el repositorio de Ansible, tendremos que pulsar la Tecla “Enter” para que nos añada el repositorio a nuestro equipo
Una vez añadido el repositorio, procederemos a actualizar la lista de paquetes disponibles en nuestro sistema y posteriormente instalaremos Ansible, de la siguiente manera:
root@ansible:~# apt-get update && apt-get install -y ansible
Con el procedimiento anterior, simplemente tendremos instalado el sistema de Ansible en nuestro equipo. Pero como queremos que se integre con nuestro Active Directory para poder gestionar nuestros equipos basados en Windows, necesitaremos instalar y configurar nuestro sistema, para que le pida un ticket Kerberos a nuestro Active Directory y de esta manera poder gestionar nuestro servidores de Windows de una manera centralizada. Para ello necesitaremos instalar PIP, que es la herramienta para instalar paquetes Phyton, es lo mismo que un apt-get pero para Phyton. Desde PIP instalaremos los paquetes necesarios para la integración de nuestro equipo basado en Ubuntu con nuestro Active Directory.
Instalaremos e actualizaremos PIP,ya que con Ubuntu 16.04 LTS nos viene la versión 8.1.1. Podríamos realizar toda la instalación de este sistema con esa versión, pero os aconsejo actualizarla tal y como se muestra en la siguiente captura.:
root@ansible:~# apt-get -y install python-pip root@ansible:~# pip install --upgrade pip
Si no actualizamos la versión de PIP, podremos observar que cada vez que instalemos un paquete, nos ira saliendo un Warning indicándonos que existe una nueva versión. Recordad que no es obligatorio actualizar la versión de PIP, pero es aconsejable. Yo en este lab no he actualizado la versión de PIP y me ha ido perfectamente todo el proceso, aunque me han salido los warnings cada vez que instalaba un paquete con PIP.
Instalaremos el paquete de WinRM desde PIP, el cual nos permitirá conectarnos a nuestros equipos de Windows mediante el protocolo WinRM, para ello lanzaremos el siguiente comando:
root@ansible:~# pip install "pywinrm>=0.1.1"
Una vez instalado el paquete de conexión por WinRM, necesitaremos que nuestro sistema solicite un ticket Kerberos a nuestro Active Directory para poder usar WinRM. Para conseguir esto, necesitaremos instalar los paquetes de Kerberos en nuestro equipo de la siguiente manera:
root@ansible:~# apt-get install -y python-dev libkrb5-dev krb5-user root@ansible:~# pip install kerberos requests_kerberos
Una vez instalados todos los paquetes necesarios, procederemos a la configuración de nuestro entorno:
root@ansible:~# vim /etc/krb5.conf
[realms]
ILBA.CAT = {
kdc = dc.ilba.cat
}
[domain_realm]
.ilba.cat = ILBA.CAT
Una vez configurado nuestro sistema de Kerberos, nos autenticaremos contra nuestro Active Directory para que nos entregue un ticket Kerberos y posteriormente verificaremos que nos ha entregado el ticket Kerberos con el comando “klist”. Recordar que el ticket kerberos que solicitemos, nos expirará en 8 horas.
root@ansible:~# echo "PasswordAdminDominio" | kinit [email protected] root@ansible:~# klist
Existen múltiples formas para poder habilitar los comandos remotos de PowerShell en nuestros sistemas de Windows. Lo podríamos habilitar desde consola de PowerShell, desde una política de Active Directory, etc…. Yo en este caso, he decidido utilizar una herramienta gratuita de SolarWinds, que nos permite habilitar la ejecución remota de comandos de PowerShell en una serie de servidores o en un único servidor. Para ello nos descargaremos la herramienta de su web oficial desde la siguiente URL: http://www.solarwinds.com/free-tools/remote-execution-enabler-for-powershell. Una vez descargada, la instalaremos y podremos lanzar esta herramienta de la siguiente manera:
Yo en este caso simplemente he configurado un servidor de Windows, pero podríamos ponerle un rango de IP’s y habilitar la ejecución de comando remotos de PowerShell a un rango de servidores.
Como siempre para no usar IP’s, es importante verificar siempre la correcta resolución DNS contra los equipos de destino desde nuestro servidor de Ansible, para ello lanzaremos un ping contra el equipo de destino y verificaremos que la resolución DNS funciona correctamente:
root@ansible:~# ping -c1 ansible-cli-ws.ilba.cat
Una vez hayamos habilitado WinRM en nuestro servidor de destino, verificaremos que desde nuestro servidor de Ansible que tenemos conectividad con el servidor de destino, que en mi caso el servidor de destino es ansible-cli-ws.ilba.cat. Cabe destacar que aunque el comando ponga ping, realmente no es un TCP ping como conocemos todos, lo que intenta es conectarse por WinRM al servidor de destino, si nos saliese algún error, necesitaremos verificar que WinRM está habilitado en el servidor de destino.
root@ansible:~# ansible ansible-cli-ws.ilba.cat -m win_ping
Verificaremos que el acceso al WinRM de nuestro servidor de destino es correcto, de la siguiente manera:
root@ansible:~# curl -vk -d "" -u "ILBA\administrator:sorisat" https://ansible-cli-ws.ilba.cat:5986/wsman
Como siempre, para hacer más ameno el post lo he divido en diferentes partes:

Leave a Reply