Gerenciamento eficiente de infraestrutura Docker com Portainer.io
O gerenciamento de uma infraestrutura com docker se dá quase que exclusivamente via terminal, mas quando surge a necessidade de apresentar a infraestrutura para a equipe, ou para toda a empresa, chegamos ao consenso que uma tela preta com letrinhas brancas não é algo chamativo.
A Portainer.io criou então uma aplicação web de código livre que permite ver toda sua infraestrutura no seu navegador WEB, e não só isso, ela também permite gerenciar containers e realizar manutenções de forma simples e prática. Outra funcionalidade bem bacana são as integrações nativas com repositórios on-line, como GitHub e GitLab, assim o gerenciamento da sua infraestrutura através do seu código fica muito mais intuitivo e pode promover conhecimento de sua equipe sobre toda a infraestrutura, com telas e informações via web.
Instalação
Para instalar o portainer basta acessar o site portainer.io para ter acesso a todas as instruções de instalação, utilizando qualquer sistema operacional suportado pela aplicação. Em nosso ambiente utilizaremos como base um Linux na distribuição OpenSuse. Para a segurança da aplicação será necessário criar um volume para que os dados sejam persistidos no container, desse modo, mesmo que por algum motivo o container seja perdido, seus dados estarão sempre salvos em um volume local, essa ação permite que você tenha sempre as informações de sua estrutura independente do container.
Vamos criar o volume?
$ docker volume create portainer_data
Volume portainer_data criado com sucesso!
Agora podemos iniciar o container da nossa aplicação com o comando abaixo:
$ docker run -d -p 9000:9000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.9.3
Configuração
Iniciamos nossa aplicação, agora podemos então acessar nossa interface web no endereço http://{ip-do-container/ou ip-externo}:9000 e começaremos a configurar nosso ambiente!
Logo no primeiro acesso a aplicação solicita para criarmos um usuário administrador e de uma senha forte para este novo usuário
Após a criação do usuário a página de configuração inicial é exibida, nela vamos conectar ao ambiente docker, que pode ser local ou também pode ser ambientes remotos, para nosso laboratório utilizaremos a opção de escolha por ambiente local.
Assim que clicamos em adicionar o sistema identifica o ambiente e faz uma varredura por toda infraestrutura e traz para nós quantas Stacks possuímos, quantos containers existem, quantos estão ativos e quantos estão parados, nesta página serão exibidos em forma de card todos os ambientes que você está gerenciando através dessa instância.
Automação
Para mostrar como essa ferramenta não é somente uma interface bonitinha o Portainer consegue automatizar e gerenciar seus containers, através da Stack você pode criar Deploys de suas aplicações versionando seus arquivos em repositórios online, criar templates customizados, ou realizando um upload de seu arquivo compose para dentro do Portainer manualmente através de um upload.
Chega de teoria e vamos para a prática!
Vamos construir algumas aplicações e colocar para nosso Portainer realizar o deploy através de uma nova stack, neste arquivo teremos um WordPress, MySQL e o JuiceShop.
$ vim docker-teste.yml
version: "3.9" services: db: image: mysql:5.7 volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest volumes: - wordpress_data:/var/www/html ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress juiceshop: image: bkimminich/juice-shop ports: - "3000:3000" restart: always volumes: db_data: {} wordpress_data: {}
Com o arquivo salvo podemos voltar para nossa aplicação, no menu lateral vamos selecionar a opção Stack e clicar em Add Stack.
Somos apresentados ao formulário de criação da Stack, nesta seção vamos preencher as informações para o deploy de nossas aplicações:
- No campo Name daremos o nome para nossa Stack e sempre lembrando de utilizar letras minúsculas e somente os caracteres “_” e “-” são permitidos;
- Em Build Method informaremos como serão inseridos as instruções para o deploy, neste caso como utilizaremos nosso arquivo criando anteriormente, escolheremos a opção Upload;
- Em Environment variables são informadas as variáveis de ambientes, dependendo de sua aplicação algumas variáveis globais são necessárias para que tenham interações entre elas, para nosso laboratório deixaremos o padrão;
- A opção Access Control é onde definiremos quem poderá ter acesso a esta Stack, podem ser adicionados grupos ou pessoas para visualização ou até mesmo para gerenciar suas Stacks, em nosso teste definiremos somente o grupo Administrators.
Após o deploy você terá todas as usas aplicações rodando em sua Stack, podendo realizar alterações no compose e adicionando novos usuários que poderão ter acesso à esta estrutura via interface web.
Conclusão
Montamos um ambiente pequeno e apenas para o teste prático do funcionamento do Portainer, mas já conseguimos ver o quão poderosa essa ferramente pode ser e há inúmeras funcionalidades que você pode explorar e deixar ainda mais observável sua estrutura de virtualização com o docker.
Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:
About author
Você pode gostar também
Guia passo a passo para configurar o FreeIPA em CentOS e Ubuntu
Este post é o Segundo de uma série de posts sobre o FreeIPA. Se ainda não leu a Parte #1, onde instalamos e configuramos o servidor do FreeIPA , é
Descubra o DevSecOps: Segurança e eficiência no desenvolvimento de software
Saudações pessoal! Hoje vamos explorar o fascinante mundo do “DevSecOps”. Talvez você já tenha ouvido falar desse termo, mas não tenha ideia do que ele realmente significa. Neste artigo, vamos
Guia Prático: Como Implementar uma Wiki em Ambiente Corporativo
Em ambientes corporativos, onde vários projetos são elaborados, algumas informações são muito importantes e muito específicas aos diretamente envolvidos, como configurações de ambiente e opções dos parâmetros. Neste contexto, a