Este tutorial orienta você na instalação do Docker em múltiplos hosts usando Ansible e o popular papel mantido pela comunidade geerlingguy.docker.


Pré-requisitos

Antes de começar, certifique-se de que você possui:


Passo 1: Criar o Playbook do Ansible

Crie um arquivo chamado docker-playbook.yml:

- name: Install Docker using geerlingguy.docker role
  hosts: all
  become: yes  # Use sudo to elevate privileges
  gather_facts: yes

  roles:
    - geerlingguy.docker

Este playbook simples aplica o papel de instalação do Docker a todos os hosts especificados.


Passo 2: Definir Dependências de Papel e Coleção

Crie um arquivo chamado requirements.yml para definir claramente as dependências externas de papel e coleção do Ansible:

roles:
  - name: geerlingguy.docker
    version: 7.4.1  # Specify version for consistency

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

Especificar versões garante implantações repetíveis e consistentes.


Passo 3: Instalar Papéis e Coleções Necessárias

Execute o seguinte comando para instalar as dependências especificadas em requirements.yml:

ansible-galaxy install -r requirements.yml

Este comando busca e instala tanto o papel quanto a coleção.


Passo 4: Executar o Playbook

Execute o playbook usando a interface de linha de comando do Ansible. Você pode especificar seu inventário inline para simplicidade:

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

Substitua host1 e host2 pelos nomes de host ou endereços IP reais de seus alvos.

Nota:

  • A vírgula no final do inventário inline é obrigatória.
  • A opção -u root define o usuário que o Ansible usa para se conectar aos hosts; modifique conforme sua configuração SSH.

Verificando a Instalação do Docker

Após executar o playbook, você pode verificar a instalação do Docker em cada host executando:

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

Você deve ver uma saída semelhante a:

Docker version 26.1.3, build XXXXXXX

Conclusão

Seguindo este método estruturado, você aproveita eficientemente o Ansible para instalar o Docker de forma consistente e confiável em múltiplos servidores, simplificando a gestão de sua infraestrutura.