Questo tutorial ti guida attraverso l’installazione di Docker su più host utilizzando Ansible e il popolare ruolo Ansible mantenuto dalla comunità geerlingguy.docker.


Prerequisiti

Prima di iniziare, assicurati di avere:


Passo 1: Crea il Playbook Ansible

Crea un file chiamato docker-playbook.yml:

- name: Install Docker using geerlingguy.docker role
  hosts: all
  become: yes  # Usa sudo per elevare i privilegi
  gather_facts: yes

  roles:
    - geerlingguy.docker

Questo semplice playbook applica il ruolo di installazione di Docker a tutti gli host specificati.


Passo 2: Definisci le Dipendenze di Ruolo e Collezione

Crea un file chiamato requirements.yml per definire chiaramente le dipendenze esterne del ruolo e della collezione Ansible:

roles:
  - name: geerlingguy.docker
    version: 7.4.1  # Specifica la versione per coerenza

collections:
  - name: community.docker
    version: ">=3.0.0"

Specificare le versioni garantisce distribuzioni ripetibili e coerenti.


Passo 3: Installa i Ruoli e le Collezioni Richieste

Esegui il seguente comando per installare le dipendenze specificate in requirements.yml:

ansible-galaxy install -r requirements.yml

Questo comando recupera e installa sia il ruolo che la collezione.


Passo 4: Esegui il Playbook

Esegui il playbook utilizzando l’interfaccia a riga di comando di Ansible. Puoi specificare il tuo inventario inline per semplicità:

ansible-playbook docker-playbook.yml -i "host1,host2," -u root

Sostituisci host1 e host2 con i tuoi effettivi nomi host o indirizzi IP target.

Nota:

  • La virgola alla fine dell’inventario inline è necessaria.
  • L’opzione -u root imposta l’utente che Ansible utilizza per connettersi agli host; modificalo in base alla tua configurazione SSH.

Verifica dell’Installazione di Docker

Dopo aver eseguito il playbook, puoi verificare l’installazione di Docker su ciascun host eseguendo:

ssh root@host1 docker --version
ssh root@host2 docker --version

Dovresti vedere un output simile a:

Docker version 26.1.3, build XXXXXXX

Conclusione

Seguendo questo metodo strutturato, sfrutti in modo efficiente Ansible per installare in modo coerente e affidabile Docker su più server, semplificando la gestione della tua infrastruttura.