Saltar al contenido
Solo Software Libre

Automatización de Despliegues con Ansible y Docker 2025

Aprende a automatizar fácilmente tus entornos con Ansible y Docker. Despliegues rápidos, eficientes y seguros paso a paso.

Automatización de Despliegues con Ansible y Docker
Índice

    ¿Por qué automatizar con Ansible y Docker?

    La combinación de Ansible y Docker permite automatizar procesos de despliegue de manera rápida, reproducible y segura. En entornos DevOps modernos, esta dupla es clave para lograr despliegues sin errores y con mínimo esfuerzo manual.


    ⚙️ ¿Qué necesitas para comenzar?

    • Ansible instalado en tu máquina de control (pip install ansible)
    • Docker instalado en los hosts destino
    • Acceso SSH con permisos de sudo
    • Conocimientos básicos de YAML

    📁 Estructura básica de un proyecto de Ansible

    bashCopiarEditarmy-ansible-project/
    ├── inventory
    ├── playbook.yml
    ├── roles/
    │   └── docker-deploy/
    │       ├── tasks/
    │       │   └── main.yml
    │       └── templates/
    

    🛠️ Paso a paso: Automatizar un despliegue con Ansible y Docker

    1. Define tu inventario de hosts

    iniCopiarEditar[webservers]
    192.168.1.100 ansible_user=ubuntu
    

    2. Crea tu playbook principal

    yamlCopiarEditar- hosts: webservers
      become: true
      roles:
        - docker-deploy
    

    3. Tareas del rol docker-deploy

    yamlCopiarEditar- name: Instalar Docker
      apt:
        name: docker.io
        state: present
    
    - name: Ejecutar contenedor
      docker_container:
        name: app_web
        image: nginx:latest
        state: started
        ports:
          - "80:80"
    

    🔁 Mejores prácticas para automatización de despliegues

    🔒 1. Evita credenciales en texto plano

    Usa Ansible Vault para cifrar secretos.

    🔍 2. Prueba tus roles localmente

    Utiliza Molecule para testear antes de ejecutar en producción.

    📄 3. Usa plantillas para configurar servicios

    Ansible permite usar templates/*.j2 para configurar archivos de Docker de forma dinámica.


    💡 Casos de uso comunes

    • Despliegue de aplicaciones web en contenedores
    • Provisionamiento de clústeres Docker Swarm
    • Configuración automática de balanceadores de carga
    • Actualizaciones automatizadas de servicios

    📦 Ejemplo: Despliegue de aplicación Flask en Docker

    Dockerfile:

    DockerfileCopiarEditarFROM python:3.9
    WORKDIR /app
    COPY . .
    RUN pip install flask
    CMD ["python", "app.py"]
    

    Playbook de Ansible:

    yamlCopiarEditar- name: Construir imagen Docker
      docker_image:
        build:
          path: /home/ubuntu/flask-app
        name: flask-app
        tag: latest
    
    - name: Ejecutar contenedor
      docker_container:
        name: flask-container
        image: flask-app:latest
        state: started
        ports:
          - "5000:5000"
    

    🔍 Herramientas útiles para automatización avanzada

    HerramientaFunciónEnlace oficial
    Ansible VaultGestión de secretoslink
    MoleculeTesting de roleslink
    Docker SDKControl programático de contenedoreslink

    📚 Recursos externos recomendados


    🧠 Conclusión

    Automatización de despliegues con Ansible y Docker es una habilidad esencial para cualquier profesional DevOps en 2025. Este enfoque reduce errores, mejora tiempos de entrega y facilita el mantenimiento. Con esta guía ya estás listo para crear tus propios scripts de automatización seguros y eficientes.

    Usuario logueado: No