Pessoal, alguem sabe como instalar o docker e docker compose com ansible? Procurei bastante no google mas nenhuma solucao funcionou aqui. Estou usando uma EC2 Ubuntu 20.04, t3.medium.
Pessoal, alguem sabe como instalar o docker e docker compose com ansible? Procurei bastante no google mas nenhuma solucao funcionou aqui. Estou usando uma EC2 Ubuntu 20.04, t3.medium.
Tudo bem Gabriel?
Para instalar o docker podemos seguir o guia oficial ,o guia recomenda instalar pelo repositório, e para isso temos que adicionar um par de chaves, podemos usar esse trecho de código para isso:
tasks:
- name: Instalar os pacotes recomendados pelo docker e para o ansible
apt:
pkg:
- apt-transport-https
- software-properties-common
- ca-certificates
- curl
- gnupg
- lsb-release
state=latest
update_cache=yes
- name: adiciona a chave do repositorio do docker
apt_key:
url: https://download.docker.com/linux/ubuntu/gpg
state: present
- name: Add o repositorio
apt_repository:
repo: deb https://download.docker.com/linux/ubuntu focal stable
state: present
- name: atualiza o apt e instala o docker
apt:
update_cache=yes
pkg:
- docker-ce
- docker-ce-cli
- containerd.io
state=latest
Para podermos controlar o docker com o docker compose, não precisamos instala-lo, o ansible já tem um modulo para podermos utiliza-lo e podemos usar a documentação do modulo e vermos como ele funciona. Este é um bom exemplo que podemos executar se já tivermos o docker-compose.yml
ou docker-compose.yaml
:
tasks:
- community.docker.docker_compose:
project_src: path
state: present
Onde o project_src:
é o caminho até o arquivo, também temos a opção de executar a tarefa colocando o docker compose dentro do próprio Ansible:
tasks:
- community.docker.docker_compose:
project_name: nome
definition:
version: '2'
services:
db:
image: postgres
web:
build: "{{ playbook_dir }}/flask"
command: "python manage.py runserver 0.0.0.0:8000"
volumes:
- "{{ playbook_dir }}/flask:/code"
ports:
- "8000:8000"
depends_on:
- db
register: output
Se ficou mais alguma duvida é só mandar aqui novamente, espero ter ajudado, continue se esforçando e bons estudos
Muito obrigado pela ajuda, Leonardo!!! Uma dúvida, esse par de chaves seria o que exatamente?
De forma resumida o par de chaves é uma medida de segurança, que garante o repositório.
De forma um pouco mais detalhada, esse par de chaves são chaves publico-privado, com elas, quem mantem o repositório, como o docker nesse caso, pode "assina-lo digitalmente", fazendo com que seja impossível alguém redirecionar as requisições e instalar software malicioso.
Um repositório sem um par de chaves, é um repositório vulnerável, é possível que alguém crie um repositório bem parecido, porem com programas maliciosos, com virus e malwares, e o gerenciador de pacotes não consegue diferencia-los. Então é sempre importante adicionar as chaves corretas e atualizadas, nunca instale chaves se você não sabe de ondem elas vem.
Espero que tenha sanado a sua duvida, qualquer coisa é perguntar aqui.