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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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=latestPara 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: presentOnde 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: outputSe 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.