Como montar seu próprio Registry Privado com Harbor

Como montar seu próprio Registry Privado com Harbor

Hoje, no blog da 4Linux, sobre Registry Privado e em como montar o nosso com o Harbor.

O que é um Registry

Quando falamos de contêineres, sabemos que para ele exista, precisamos de uma imagem que vai conter todos os binários e dependências da aplicação. E essa imagem precisa vir de algum “lugar”.
Dai entra o Registry, lugar onde vamos armazenar e versionar a imagem da nossa aplicação. No mercado existe várias ferramentas que oferecem isso, como o Docker Hub, que é o maior repositório público de imagens de contêineres. Ele possui planos para você utilizar de forma privada, assim como temos o ECR da AWS, entre outros.

A vantagem de possuir um Registry Privada são inúmeras, desde maior controle das imagens, integrações com outras ferramentas, ter conhecimento da autenticidade da imagem, etc.
O objetivo do nosso post hoje é mostrar uma das tantas alternativas existentes que é o Harbor, onde conseguimos fazer integração com LDAP, Scan de vulnerabilidade entre outros recursos.

Bora lá

Harbor

O Harbor é um registry Open Source que protege artefatos com políticas e controle de acesso baseado em função, garante que as imagens sejam verificadas e livres de vulnerabilidades e assine imagens como confiáveis. Ele é bem interessante para ambiente e vamos colocar a mão na massa!

 

Pré-requisitos

Para que possamos utilizar o Harbor, precisamos ter no nosso ambiente as seguintes configurações de hardware e software:

RecursosMinimoRecomendado
CPU2 CPU4 GB
Memória4 GB8 GB
Disco40 GB160 GB
  • Docker 17.04 ou superior
  • Docker-compose instalado

Para facilitar a criação do nosso ambiente, vou disponibilizar para vocês um repositório com a criação do ambiente de forma automatizada com o Vagrant. Para poder executar esse ambiente, vocês vão precisar ter instalado:

Feito isso, basta clonar o repositório e inicializar o Vagrant para ele criar a VM:

git clone https://github.com/silvemerson/harbor-labs.git/

cd harbor-labs

vagrant up

Instalando o Harbor

Acesse a VM utilizando o comando abaixo e se torne root. 

vagrant ssh 

sudo su

Faça o Download do Harbor na versão 2.6.0

wget https://github.com/goharbor/harbor/releases/download/v2.6.0/harbor-online-installer-v2.6.0.tgz

Após isso, descompacte o arquivo:

tar xzvf harbor-online-installer-v2.6.0.tg 

Gere os certificados:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout registry.4labs.example.key -out registry.4labs.example.crt -subj "/CN=registry/O=4Labs/OU=DevOps" -addext "subjectAltName = DNS:registry.4labs.example"

Gere um PEM do certificado:

openssl x509 -inform PEM -in registry.4labs.example.crt -out registry.4labs.example.cert

Crie um diretório que vai armazenar os certificados:

mkdir -p /data/certs

Realize a cópia dos arquivos gerados:

cp registry.4labs.example.* /data/certs

Crie o diretório para seu Registry no Docker:

mkdir -p /etc/docker/certs.d/registry.4labs.example/

Copie os arquivos gerados para o o diretório criado:

cp registry.4labs.example.cert /etc/docker/certs.d/registry.4labs.example/
cp registry.4labs.example.key /etc/docker/certs.d/registry.4labs.example/

cp registry.4labs.example.crt /etc/docker/certs.d/registry.4labs.example/ca.crt

Inicializando o Harbor

Realize o clone do repositório harbor-labs e copie o arquivo harbor.yml para o diretório do harbor

git clone https://github.com/silvemerson/harbor-labs.git 
cp harbor-labs/harbor/harbor.yml ~/harbor

Execute os scrips abaixo para preparar o ambiente:

cd ~/harbor
./prepare

Execute a criação do ambiente com o examinador Trivy:

./install.sh --with-trivy

Mapeie no seu /etc/hosts a seguinte linha:

172.16.0.103 registry registry.4labs.example

Por fim, acesse o Harbor pelo navegador:

https://registry.4labs.example

Credenciaisde acesso
Usuárioadmin
Senha4linux

Nosso ambiente em funcionamento:

E por hoje é só pessoal, no próximo post, vamos conectar ao nosso Registry Harbor, enviar imagens e analisar vulnerabilidades.

Não se esqueçam de compartilhar em suas redes sociais.

Até a próxima.

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

Anterior Guia Prático: Configurando o Prometheus em um Cluster Kubernetes
Próxima Descubra como o Rundeck pode otimizar suas tarefas de sysadmin

About author

Emerson Silva
Emerson Silva 9 posts

Desenvolvedor de Infraestrutura e Monitoramento, atua como Analista de Infraestrutura na 4Linux, entusiasta DevOps e apaixonado por software livre

View all posts by this author →

Você pode gostar também

DevOps

Descubra as vantagens do MongoDB para o desenvolvimento Web

Bancos de dados são a base dos projetos de desenvolvimento Web. Muitos desenvolvedores estão voltando sua atenção para o MongoDB, um banco de dados sem esquema que é popular para uma

Cloud

Guia prático: Como configurar e usar o Minio Server em sua infraestrutura

Minio é um storage de objetos, de alta performance e distribuído. A grande vantagem de usá-lo, reside em sua total compatibilidade com o Amazon S3. Neste artigo explico como subir

DevOps

Automatize processos com Rundeck: Guia completo para DevOps

O Rundeck é uma aplicação java de código aberto que automatiza processos e rotinas nos mais variados ambientes, gerenciado via interface gráfica fica extremamente simples de verificar status de execuções,