Guía Paso a Paso: Configurar Ubuntu 24.04 con Ansible para Ejecutar Playbooks en un Windows Server 2025 Usando Pares de Claves SSH
Ansible es una herramienta poderosa para la automatización, y configurar un servidor Ubuntu para gestionar un servidor Windows mediante pares de claves SSH es una tarea que requiere cuidado. En esta guía, aprenderás cómo hacerlo desde cero, incluyendo la instalación de Ansible y todas las configuraciones necesarias. Al final, podrás ejecutar un ping exitoso con Ansible desde Ubuntu al servidor Windows.
Paso 1: Preparar Windows Server 2025 para configurar el servicio SSH
Para habilitar la autenticación SSH en el servidor Windows, necesitarás un servicio SSH activo. Windows Server 2025 incluye OpenSSH como característica opcional.
En una consola de powershell ejecuta el siguiente comando para que el servicio de SSH se inicie en cada inicio del servidor:
set-service -name sshd -StartupType Automatic
A continuación, crea una regla de Firewall para habilitar conexiones entrantes:
New-NetFirewallRule -DisplayName 'Permitir SSH' -Name 'Permitir SSH' -Profile Any -LocalPort 22 -Protocol TCP
Ahora debemos configurar la shell por defecto en windows cuando nos conectemos por SSH, os dejo dos opciones para powershell normal:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name ShellPorDefecto -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
O mi preferencia, para powershell 7 (debéis instalarlo primero)
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name ShellPorDefecto -Value "C:\Program Files\PowerShell\7\pwsh.exee" -PropertyType String -Force
Ahora a levantar el servicio de SSH:
start-service -name sshd
Paso 2: Configurar Ubuntu y Preparar el Entorno
Instalar Ansible
Primero, asegúrate de que tu Ubuntu 24.04 esté actualizado:
sudo apt update && sudo apt dist-upgrade -y
Instala los paquetes requeridos para añadir el repositorio de Ansible:
sudo apt install -y software-properties-common
Añade el repositorio oficial de Ansible e instálalo:
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible vim iputils-ping sshpass -y
Verifica la instalación de Ansible:
ansible --version
Resultado esperado: Verás información sobre la versión instalada, confirmando que Ansible está listo para usar.
Toca comprobar que podemos conectarnos por SSH a nuestro servidor windows ejecutando:
ssh [usuario Windows]@[IP o nombre del servidor]
Ejemplo: ssh administrator@10.10.100.166
Paso 3: Configurar Ansible
Crear el Archivo de Inventario
Crea un archivo de inventario llamado inventory.ini
:
sudo vim ~/hosts_inicial.ini
Contenido del archivo:
[windows]
server2025 ansible_host=10.10.100.166 #Pon aquí tu listado de servidores
[all:vars]
ansible_connection = ssh
ansible_shell_type = powershell
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
Paso 4: Probar la Conexión
Ejecuta el comando para probar la conexión con Ansible:
ansible all -i hosts_inicial.ini -m ansible.windows.win_ping -u Administrator --ask-pass
Resultado esperado: Deberías ver una salida indicando un SUCCESS
y un mensaje "pong"
del servidor Windows, lo que confirma que la configuración es exitosa.
Paso 5: Configurar Pares de Claves SSH
Crear Pares de Claves en Ubuntu
Genera un par de claves SSH en tu máquina Ubuntu:
ssh-keygen -b 4096
Durante la generación, puedes presionar Enter para aceptar las rutas y configuraciones predeterminadas. Esto crea dos archivos en ~/.ssh/
:
id_ed25519
(clave privada)id_ed25519.pub
(clave pública)
Transferir la Clave Pública al Servidor Windows
Crear el archivo C:\ProgramData\ssh\administrators_authorized_keys y copia en el el contenido de la clave pública generada.
cat ~/.ssh/id_ed25519
Resultado esperado: Podrás conectarte al servidor Windows desde Ubuntu usando SSH sin contraseña:
ssh ansible_user@[IP o nombre de tu servidor Windows]
Ejemplo: ssh ansible_user@10.10.100.166
Ahora usamos el agente de ssh para que abra un proceso en el backgroun y guarde nuestra clave privada en caché, ejecutando:
ssh-agent bash
ssh-add ~/.ssh/id_ed25519
Paso 6: Comprobar que podemos conectar via SSH con Ansible usando pares de claves SSH
Copiamos el archvo de inventario con: Para ello ejecutamos el comando:
cp ~/hosts_initial.ini ~/hosts.ini
Lo editamos con vim:
vim ~/hosts.ini
Y lo dejamos de la siguiente forma:
[windows]
10.10.100.166 #Pon aquí tu listado de servidores
[all:vars]
ansible_connection = ssh
ansible_shell_type = powershell
ansible_user = Administrator
Y ya solo nos queda comprobar que podemos utilizar Ansible con los pares de claves SSH:
ansible all -i hosts.ini -m ansible.windows.win_ping
Conclusión
Siguiendo esta guía, has configurado un servidor Ubuntu 24.04 con Ansible para gestionar un servidor Windows Server 2025 usando pares de claves SSH. Este método es más seguro y práctico que usar contraseñas. Ahora estás listo para ejecutar tareas automatizadas en el servidor Windows desde tu máquina Ubuntu. 🎉
Resumen de Archivos
- Clave SSH pública:
~/.ssh/id_ed25519.pub
- Clave SSH privada:
~/.ssh/iid_ed25519
- Archivo de inventario:
hosts~/
.ini
- Archivo de Claves Autorizadas: C:\ProgramData\ssh\administrators_authorized_keys
¡Disfruta automatizando! 🚀