Automatizar instalación de docker con ansible

Playbook docker ansible

A medida que vamos haciendo tareas repetitivas como preparar entornos, tratamos de automatizarlas, y, si trabajamos con con #docker y cada vez que armamos una maquina virtual lo instalamos esta bueno tener un #playbook de #ansible para hacerlo.

Si estas en el camino del #sysadmin tenes que aprender #ansible asi que pasa y descubri como instalarlo aca:

En mi carpeta playbooks cree un archivo que se llama instalar_docker.yml y adentro le puse este contenido:

---
- name: Instalar Docker y última versión de Docker Compose en Ubuntu
  hosts: pruebas
  become: true
  vars:
    docker_compose_dest: /usr/local/bin/docker-compose

  tasks:
    - name: Instalar dependencias necesarias
      apt:
        name:
          - curl
          - jq
        state: present
        update_cache: true

    - name: Descargar script oficial de instalación de Docker
      get_url:
        url: https://get.docker.com
        dest: /tmp/get-docker.sh
        mode: '0755'

    - name: Ejecutar script de instalación de Docker
      shell: sh /tmp/get-docker.sh

    - name: Obtener última versión de docker-compose desde la API de GitHub
      uri:
        url: https://api.github.com/repos/docker/compose/releases/latest
        return_content: yes
      register: compose_release

    - name: Extraer número de versión desde la respuesta JSON
      set_fact:
        docker_compose_version: "{{ compose_release.json.tag_name }}"

    - name: Mostrar versión detectada
      debug:
        msg: "Última versión de Docker Compose detectada: {{ docker_compose_version }}"

    - name: Descargar docker-compose versión {{ docker_compose_version }}
      get_url:
        url: "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-linux-x86_64"
        dest: "{{ docker_compose_dest }}"
        mode: '0755'

    - name: Asegurar que docker-compose es ejecutable
      file:
        path: "{{ docker_compose_dest }}"
        mode: '0755'
        state: file

    - name: Agregar al usuario actual al grupo docker (opcional)
      user:
        name: "{{ ansible_user }}"
        groups: docker
        append: yes

    - name: Habilitar y arrancar el servicio de Docker
      systemd:
        name: docker
        enabled: true
        state: started

    - name: Reiniciar el sistema (opcional)
      reboot:
        msg: "Reiniciando después de instalar Docker y Docker Compose"
        pre_reboot_delay: 10

Luego claramente si viste el primer tutorial tenes que tener un archivo hosts.ini o como se llame donde esta tu inventario de equipamiento. Finalizado solo te falta ejecutar el comando para que el playbook para instalar docker se ejecute en todos los equipos que tenga tu inventario

ansible-playbook -i ../inventario/hosts.ini instalar_docker.yml --ask-become-pass
  • EN el playbook fijense de que la linea hosts: pruebas tenga el grupo que uds le pusieron a su hosts.ini
  • El parametro final –ask-become-pass es para pasarle el password de sudo ya que en entornos de producción no esta bueno editar visudo y similares… Se los pregunta al inicio como se ve en la siguiente pantalla y listo!

El resultado es docker y docker-compose instalado correctamente y en un solo comando:

instalar docker y docker-compose por medio de playbook de ansible

Espero les sea útil y vayan automatizando sus tareas!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *