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:


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.