Este tutorial te guía a través de la instalación de Docker en múltiples hosts utilizando Ansible y el popular rol de Ansible mantenido por la comunidad geerlingguy.docker
.
Prerrequisitos
Antes de comenzar, asegúrate de tener:
- Ansible instalado en tu máquina de control. (Guía de Instalación)
- Acceso SSH configurado a tus hosts de destino.
- Usuario con privilegios de sudo (o acceso root) en los hosts de destino.
Paso 1: Crear el Playbook de Ansible
Crea un archivo llamado docker-playbook.yml
:
- name: Install Docker using geerlingguy.docker role
hosts: all
become: yes # Usa sudo para elevar privilegios
gather_facts: yes
roles:
- geerlingguy.docker
Este simple playbook aplica el rol de instalación de Docker a todos los hosts especificados.
Paso 2: Definir Dependencias de Rol y Colección
Crea un archivo llamado requirements.yml
para definir claramente las dependencias externas de rol y colección de Ansible:
roles:
- name: geerlingguy.docker
version: 7.4.1 # Especifica la versión para consistencia
collections:
- name: community.docker
version: ">=3.0.0"
Especificar versiones asegura implementaciones repetibles y consistentes.
Paso 3: Instalar Roles y Colecciones Requeridas
Ejecuta el siguiente comando para instalar las dependencias especificadas en requirements.yml
:
ansible-galaxy install -r requirements.yml
Este comando obtiene e instala tanto el rol como la colección.
Paso 4: Ejecutar el Playbook
Ejecuta el playbook utilizando la interfaz de línea de comandos de Ansible. Puedes especificar tu inventario en línea para mayor simplicidad:
ansible-playbook docker-playbook.yml -i "host1,host2," -u root
Reemplaza host1
y host2
con los nombres de host o direcciones IP de tus hosts de destino.
Nota:
- La coma al final del inventario en línea es requerida.
- La opción
-u root
establece el usuario que Ansible utiliza para conectarse a los hosts; modifícalo según tu configuración SSH.
Verificando la Instalación de Docker
Después de ejecutar el playbook, puedes verificar la instalación de Docker en cada host ejecutando:
ssh root@host1 docker --version
ssh root@host2 docker --version
Deberías ver una salida similar a:
Docker version 26.1.3, build XXXXXXX
Conclusión
Siguiendo este método estructurado, aprovechas eficientemente Ansible para instalar Docker de manera consistente y confiable en múltiples servidores, simplificando la gestión de tu infraestructura.