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

Infraestrutura TI

Guia sobre como criar um cluster com o centralizador de logs Graylog 3.3

O Graylog [1] é uma ferramenta open source e serve para monitorar, centralizar e organizar mensagens de log em sua infraestrutura. É uma alternativa ao famoso ELK. O Graylog oferece

Desenvolvimento

Descubra a importância do Python na cultura DevOps e na automatização

Automatização de Infraestrutura – DevOps e Python Hoje em dia os profissionais de TI estão olhando cada vez mais para DevOps e Python. Se você quer saber por que a

DevOps

Desvendando os Anti-Padrões DevOps: Como otimizar a entrega de software

Introdução Um dos maiores problemas que (acredito eu!) deve afeta grande parte das equipe de desenvolvedores de software, não é “como transformar uma ideia em um bom sistema”, mas sim