Configurando o Nexus como repositório do Helm: um guia passo a passo

Configurando o Nexus como repositório do Helm: um guia passo a passo

Hoje, no blog da 4Linux, vamos falar sobre como podemos  configurar o Nexus para ser o repositório do  Helm.

O que é Helm

É uma ferramenta de empacotamento de software semelhante aos pacotes Linux, como APT  e YUM. O Helm é usado para gerenciar pacotes de aplicações  voltada ao Kubernetes.
Mais detalhes nesse outro post do blog https://blog.4linux.com.br/o-gerenciador-de-pacotes-helm/

O que é o Nexus

O Nexus é uma ferramenta confiável para armezamento de artefatos  e repositórios. Além de ser Open Source, o Nexus possui uma boa documentação, apresenta um bom nível de segurança e controle de acesso, e armazena os artefatos no sistema de arquivos, o que elimina muitas dores de cabeça.
Mais detalhes nesse outro post do blog  https://blog.4linux.com.br/repositorios-locais-com-nexus-sonatype/

 

Pré-requisitos

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:

 

Inicializando  infraestrutura

git clone https://github.com/silvemerson/nexus-helm-repository.git

cd nexus-helm-repository

vagrant up

 

Nexus, primeiros passos

Após concluído a criação da infraestrutura, vá no seu navegador http://192.168.56.10:8081/ para fazer o primeiro acesso ao Nexus. Pode ser que demore um pouco até inicializar totalmente a aplicação. Ela está rodando em container, portanto você pode acessar a VM com comando vagrant ssh nexus-server e consultar os logs do container.

Após acessar no navegador, vá em Sign In:

Vai receber a seguinte instrução para  realizar o login:

Então na VM do Nexus, vamos  executar o seguinte comando para obter a senha de Administrador:

$ docker exec -it nexus cat /nexus-data/admin.password

Coletado a senha de admin e feito o login inicial, o Nexus vai pedir  alterar a senha:

Vamos deixar as seguintes credencias:

 

Usuário: admin

Senha: admin

Mantenha a opção abaixo assinalada:

 

Criando Blob e Repositório

Blob Stores

Agora que estamos acessando o Painel do Nexus, vamos no ícone de engrenagem -> Blob Stores > Create Blob Store:

Selecione o Type como File e preencha conforme informações abaixo:

Agora salve.

 

Repository

Vá novamente no ícone de engrenagem -> Create repository 

Selecione o tipo de repositório como helm(hosted).

Após selecionado a opção do passo anterior, preencha com informações abaixo. Observe que em Blob Store, vamos selecionar o Blob que criamos.

Preenchido, só salvar.

Criando usuário e permissões

Role

Antes de criar nosso usuário, vamos criar uma Role de acesso ao repositório que criamos para o Helm. Para isso, bora lá em ícone de engrenagem -> Security -> Roles:

:

Selecione o Type como Nexus Role e as demais informações conforme abaixo:

Selecione o seguinte privilegio:  nx-repository-view-helm-*-*

Salve e vamos para o próximo passo.

Usuário

Agora que temos nossa Role devidamente criada, vamos criar nosso usuário de acesso ao repositório. Vá em ícone de engrenagem -> Security ->Users -> Create local user:

Preencha os campos conforme abaixo, onde o nosso usuário será o helm_user e a nossa senha helmpass.

Feito isso, associe nosso usuário com a Role que criamos:

Pronto, usuário criado, agora vamos enviar nosso chart.

Enviando Chart

Concluímos as configurações no Nexus, agora vamos na nossa VM do K3s e criar nosso chart, enviar para o repositório e depois fazer o deploy da nossa aplicação.

Acesse VM, dentro da pasta do repositório:

 

vagrant  ssh k3s
sudo su && cd

 

Agora que estamos que estamos na VM como root, vamos inicializar o Kubeconfig do K3s:

export KUBECONFIG=/etc/rancher/k3s/k3s.yaml

Dentro da pasta do usuário root, teremos um diretório chamado de super-mario. Ele que iremos “empacotar”, transformando ele em um chart da seguinte forma:

helm package super-mario

Depois, vamos enviar para o repositório que criamos no Nexus:

curl -u helm_user:helmpass http://192.168.56.10:8081/repository/helm-repository --upload-file super-mario-0.0.1.tgz -v

Conseguimos fazer o envio com sucesso, vamos adicionar esse repositório no nosso ambiente do K3s:

helm repo add super-mario http://192.168.56.10:8081/repository/helm-repository/ --username helm_user --password helmpass

Atualizar os repositórios e realizar o deploy da nossa aplicação:

helm repo update

helm install --repo http://192.168.56.10:8081/repository/helm-repository/ super-mario super-mario

 

Inicializando aplicação no K3s

Nossa aplicação está em execução conforme abaixo:

Vamos criar um port-forward e validar a aplicação:

kubectl port-forward --address 0.0.0.0 pod/<PODNAME> 8080:8080
Agora, acesse o seguinte endereço http://192.168.56.20:8080/

Ambiente pronto!

E por hoje é só pessoal, esse é o nosso ambiente usando o Nexus para ser o nosso repositório do Helm. Espero que tenham gostado!

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 Avance na carreira com a certificação AWS SysOps: novo curso da 4Linux
Próxima Guia Completo: Como Utilizar o Vagrant para Gerenciar Máquinas Virtuais

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

DevSecOps: Como usar o SonarQube para análise de vulnerabilidades

Quando falamos de DevSecOps, estive um termo chamado Shift Left, que consiste em analisar questões de segurança desde o inicio do desenvolvimento de uma aplicação, ao invés do modelo tradicional

Infraestrutura TI

Monitoramento de Dados: Como Utilizar o PostgreSQL e o PgPool com Zabbix

Com o mercado tecnológico cada vez mais crescente, o volume de dados aumenta significativamente a cada minuto, e esse volume é armazenado em diversos sistemas de banco de dados distribuídos.

Cloud

MLOps: A chave para o sucesso na implantação de Machine Learning

Um projeto de Machine Learning (ML) de sucesso depende de implantação profissional. Muitas organizações ainda não estão preparadas para fazer implantação de modelos de ML por falta de profissionais especializados.