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:

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