Curso Ansible: Puertos de comunicación necesarios
Ansible es una poderosa herramienta de automatización que se comunica con diversos nodos en la red, gestionando tanto sistemas basados en Unix como en Windows. La comunicación entre Ansible y estos nodos se realiza a través de puertos específicos, que deben estar correctamente configurados y abiertos. A continuación, se detallan los puertos necesarios para diferentes sistemas operativos y cómo configurarlos adecuadamente.
Comunicación SSH (Secure Shell) en Sistemas Unix
Ansible utiliza principalmente el protocolo SSH para conectarse a los nodos gestionados en sistemas Unix (Linux, macOS, BSD, etc.). SSH es un protocolo de red que permite a los usuarios administrar sistemas y servicios de manera segura a través de una red no segura.
- Puerto predeterminado: 22
Para que Ansible funcione correctamente, debes asegurarte de que el puerto SSH (22 por defecto) esté abierto y accesible en todos los nodos gestionados. Además, el usuario con el que Ansible se conecte debe tener los permisos necesarios para ejecutar los comandos y tareas especificadas.
Configuración del Puerto SSH en el Inventario de Ansible
Puedes definir el puerto SSH en el archivo de inventario de Ansible utilizando la variable ansible_ssh_port.
1 2 3 4 5 6 7 |
[webservers] web1.example.com ansible_ssh_port=2222 web2.example.com ansible_ssh_port=2222 [dbservers] db1.example.com ansible_ssh_port=2222 db2.example.com ansible_ssh_port=2222 |
Comunicación WinRM (Windows Remote Management) en Sistemas Windows
Para gestionar máquinas Windows, Ansible utiliza el protocolo WinRM. WinRM es un servicio de administración remota de Windows que permite ejecutar scripts y comandos de manera remota.
- Puertos predeterminados: 5985 (HTTP) y 5986 (HTTPS)
Para habilitar la comunicación con nodos Windows, debes asegurarte de que los puertos 5985 y 5986 estén abiertos y configurados correctamente en los nodos Windows.
Configuración de WinRM en el Inventario de Ansible
Para gestionar nodos Windows, debes especificar los detalles de WinRM en el archivo de inventario.
1 2 3 |
[windows] win1.example.com ansible_user=Administrator ansible_password=your_password ansible_port=5986 ansible_connection=winrm ansible_winrm_transport=ntlm win2.example.com ansible_user=Administrator ansible_password=your_password ansible_port=5986 ansible_connection=winrm ansible_winrm_transport=ntlm |
Comunicación con Equipos de Red (Routers, Switches, Firewalls)
Para equipos de red, Ansible puede utilizar diversos protocolos dependiendo del fabricante y modelo del dispositivo. Los más comunes son SSH y API HTTP/HTTPS.
Dispositivos basados en Cisco IOS
- Puerto SSH: 22
- Puerto Telnet: 23 (aunque menos seguro y no recomendado)
- API HTTP/HTTPS: 80/443
Configuración del Inventario de Ansible para Dispositivos de Red
1 2 3 |
[routers] router1 ansible_host=192.168.1.1 ansible_ssh_user=admin ansible_ssh_pass=password ansible_network_os=ios router2 ansible_host=192.168.1.2 ansible_ssh_user=admin ansible_ssh_pass=password ansible_network_os=ios |
Configuración de Firewall y Seguridad
Es crucial asegurarse de que los puertos necesarios estén abiertos y configurados correctamente en los firewalls que protegen tus nodos gestionados. Aquí tienes ejemplos de cómo hacerlo en diferentes sistemas operativos.
Linux (iptables)
1 2 |
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables-save |
1 2 |
sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --reload |
Windows Firewall
Para abrir el puerto 5986 en el firewall de Windows:
1 |
New-NetFirewallRule -Name "WinRM HTTPS" -DisplayName "WinRM HTTPS" -Protocol TCP -LocalPort 5986 -Action Allow |
Comunicación con macOS
Para gestionar máquinas macOS, Ansible utiliza también el protocolo SSH.
- Puerto predeterminado: 22
Configuración del Inventario de Ansible para macOS
1 2 |
[macs] mac1.example.com ansible_user=admin ansible_ssh_pass=password ansible_ssh_private_key_file=~/.ssh/id_rsa |
Comunicación Ansible con Hypervisores
Para gestionar hypervisores con Ansible, es crucial asegurarse de que los puertos de comunicación necesarios estén abiertos y correctamente configurados. A continuación, se presentan los puertos de comunicación esenciales para los hypervisores más comunes cuando se gestionan con Ansible.
VMware vSphere
- vCenter Server:
- HTTPS (API y gestión): 443
- ESXi Hosts:
- SSH (gestión y comandos remotos): 22
- HTTPS (API y gestión): 443
Microsoft Hyper-V
- Hyper-V Host:
- Management via WMI (Windows Management Instrumentation): 135, 49152-65535
- SSH (si se usa Cygwin/SSH para gestión remota): 22
Proxmox VE
- Proxmox Web GUI:
- HTTPS: 8006
- Cluster Communication:
- SSH para comunicación entre nodos y gestión: 22
Nutanix AHV
- Prism Central/Prism Element:
- HTTPS (API y gestión): 9440
- SSH (gestión y comandos remotos): 22
XenServer (Citrix Hypervisor)
- XenServer Host:
- Management via XenCenter (API y gestión): 443
- SSH (gestión y comandos remotos): 22
KVM (Kernel-based Virtual Machine)
- Management (Libvirt):
- TCP: 16509
- TLS: 16514
- SSH (para gestión remota y comandos): 22
ENTRADAS RELACIONADAS CURSO ANSIBLE
- Curso Ansible: Qué es y para qué sirve
- Curso Ansible: Instalación, configuración inicial y ejemplo práctico básico
- Curso Ansible: Puertos de comunicación necesarios
- Curso Ansible: Playbooks conceptos básicos
- Curso Ansible: Manejo de Inventarios
- Curso Ansible: Manejo de Variables
- Curso Ansible: definición y uso de Roles
- Curso Ansible: qué son los Handlers
- Curso Ansible: Condicionales y bucles
- Curso Ansible: Gestión de secretos y credenciales con Ansible Vault
- Curso Ansible: Uso de roles de la comunidad con Ansible Galaxy
- Curso Ansible: Despliegue de aplicaciones en contenedores con Ansible
- Curso Ansible: Integración de Ansible con CI/CD pipelines
- Curso Ansible: Generar ficheros YAML
- Curso Ansible: Integración de Ansible con Terraform para gestionar Proxmox
- Curso Ansible: Provisioners de Ansible en Terraform
- Curso Ansible: Hecho o Fact
- Curso Ansible: Optimización y buenas prácticas
OTRAS ENTRADAS RELACIONADAS ANSIBLE
- Ansible: Conceptos básicos
- Ansible: Comandos básicos
- Instalar Ansible en Centos 7
- Ansible: Gestión básica máquinas virtuales Proxmox
- MacOS: Instalar Podman y Ansible
- Docker Swarm: Instalar Ansible AWX
- Ansible: Validar ficheros YAML
- Ansible: Instalar SQL Server 2019 en Linux
- Ansible: Crear página web WordPress
- Ansible: Instalación servidores web
- Ansible: Gestión de máquina Windows
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?