Como adicionar Docker containers ao seu EVE-NG de forma simples, rápida e gráfica

Como prometido, segue aqui a “receita de bolo” para vocês adicionarem o servidor Ubuntu ao seu lab EVE e, na sequência, instalar o Docker e o Portainer (Front-end para o Docker).

Adicionando uma imagem Ubuntu ao EVE

O que vou mostrar aqui serve, na verdade, para qualquer imagem / sistema que você queira adicionar ao EVE. O processo é relativamente bem documentado no EVE CookBook, escrito pelo pessoal do EVE, mas aqui eu compartilho o passo-a-passo de como eu faço:A primeira coisa é preparar o EVE para receber a nova imagem. Acesse o EVE e vá para o diretório /opt/unetlab/addons/qemu/ – é nele que todas as imagens devem ser adicionadas. Abaixo você pode ver todos os diretórios que acompanham a instalação do EVE (e alguns que eu criei depois). Todos estarão vazios se sua instalação for nova. Você precisará buscar as imagens e adicioná-las ao diretório correspondente.

Repare que os diretórios seguem um padrão. Por exemplo, se eu quiser adicionar uma nova imagem Linux, eu tenho que criar um diretório chamado “linux-[qualquer nome que eu queira]”. Isso devido ao templates que o EVE usa e como ele vai identificar novas imagens. Assim, se eu quiser adicionar uma imagem do Ubuntu 18.04, eu criaria o diretório linux-ubuntu-18.04 (assim eu sei o que tem lá dentro). Vamos fazer isso:

O próximo passo é obter a imagem. O EVE-NG utiliza KVM como hypervisor, portanto, as imagens que você carregar aqui precisam ser compatíveis. Além disso, o EVE possui em seus templates um default para buscar imagens .qcow2 (outros formatos podem não funcionar como esperado). Outro detalhe é que a imagem deve ser nomeada hda.qcow2. O QEMU possui ferramentas que permitem converter imagens em outros formatos para qcow2. É possível converter os seguintes formatos:

  • VMDK (usado em VMWare ESX)
  • QED
  • RAW (.img)
  • VHD (usado em Microsoft Hyper-V)
  • VDI (usado em VirtualBox)

Eis um exemplo de comando usado para converter uma imagem gerada no ESX para o formato suportado pelo EVE:

qemu-img convert -f vmdk -O qcow2 image.vmdk hda.qcow2

OBS: Maiores informações sobre as opções disponíveis podem ser encontradas aqui.

Existe também a possibilidade de se criar uma imagem de disco vazia e bootar a máquina virtual usando uma imagem ISO de instalação, e instalar o sistema do zero na VM. Para isso, você deve baixar a ISO que deseja usar, colocá-la no diretório da nova VM que vai criar e renomea-la cdrom.iso. Fazendo isso, ao iniciar a VM no EVE, ela vai buscar a imagem do CD-ROM antes, e vai inicializar por ela, permitindo a instalação.

Para criar uma imagem qcow2 zerada, use o comando abaixo:

qemu-img create -f qcow2 hda.qcow2 30G

Obviamente, 30G no exemplo acima é o tamanho do disco virtual que será criado. Altere para se adequar às suas necessidades. O vídeo abaixo mostra esta abordagem:

Instalação do Docker

A instalação do Docker em uma VM Ubuntu é bastante simples. Basta usar o comando abaixo:

apt install docker.io

Uma vez que o Docker finalize a instalação, você deve iniciar o processo e também adicionar a entrada em seu init.d para que ele inicialize automaticamente sempre que a VM for iniciada:

systemctl start docker
systemctl enable docker

Instalação do Front-end (Portainer)

A instalação da interface gráfica para gerenciamento dos containers é feita usando o Docker (o sistema irá rodar em um container). Baixe a imagem do container usando o comando abaixo:

docker pull portainer/portainer

Inicialize o container usando o comando abaixo:

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

No exemplo acima, eu estou mapeando a porta TCP 9000 da minah VM Ubuntu para a porta TCP 9000 no container que vai rodar o sistema Portainer. Desta forma, para eu acessar o front-end eu preciso apontar meu navegador para o endereço IP da minha VM Ubuntu na porta 9000 (ex: se minha VM Ubuntu tem o IP 192.168.10.1, no meu navegador eu digitaria http://192.168.10.1:9000)

Para visualizar os containers que estão rodando em sua VM Ubuntu, você pode usar o comando abaixo:

docker ps

Instalação dos containers NGINX (Web Server)

O último passo é a criação dos containers NGINX, mas antes disso, vamos criar na VM Ubuntu o diretório e o conteúdo que o container NGINX vai usar. Acesse a VM Ubuntu e crie um diretório que vai servir de repositório para o conteúdo web:

mkdir -p /data/www/c1

OBS: O caminho do diretório pode ser o que você quiser, não precisa ser exatamente igual ao meu exemplo.

Dentro do diretório criado, vamos criar uma página web simples:

cd /data/www/c1
nano index.html

Digite no editor:

<br><br><br><br><br><br>
<center><strong><font face="verdana" size="10" color="red">Container 1</font></strong></center>

E, depois, digite CTRL+X e “Y” para sair e salvar o arquivo.

Vamos agora criar o container NGINX. Para isso, vamos usar o Portainer. Acesse o Portainer no endereço IP e porta definidos anteriormente. No seu primeiro acesso, defina uma senha e depois clique na opção “Local”. Uma vez dentro do ambiente, clique em “Images” e adicione a imagem do container NGINX, como abaixo:

OBS: Lembro que sua VM Ubuntu precisa ter acesso à Internet para que isso funcione.

Uma vez finalizado o download da imagem, clique em “Containers” e então na opção “Add Container”:

Ainda na definição do container, role para o fim da página e selecione a opção “Volumes”. Vamos fazer o mapeamento de pastas do container para a VM Ubuntu, para que o conteúdo que criamos anteriormente seja utilizado pelo nosso container NGINX:

Finalmente, clique em “Deploy the Container”, e você verá seguinte tela:

Parabéns! Seu container NGINX foi criado e já está rodando, servindo o conteúdo criado anteriormente na pasta /data/www/c1! Você pode testar acessando o endereço IP de sua VM Ubuntu na porta 8081 (a porta que você mapeou anteriormente na sua VM Ubuntu para o seu novo container).

O gravação do Webinar mostra tudo isso (menos a criação da VM Ubuntu). Basta assistí-la, se tiver dúvidas!

Abs

Marco



Comente usando o Facebook!

Deixe uma resposta