Como configurar um repositório Yum local com Nexus Sonatype
Administradores de sistemas, sempre que operam em ambiente GNU/Linux, realizam a instalação de pacotes pré-compilados localizados em repositórios remotos. Para distribuições baseadas em Red Hat, fazemos uso de repositórios Yum (Yellowdog Updater, Modifier), que armazenam pacotes do tipo RPM. O mesmo vale para distribuições baseadas em Debian, com repositório APT (Advanced Package Tools) e pacotes Deb. Tais repositórios garantem a integridade e disponibilidade dos pacotes, bem como versões para diferentes arquiteturas de sistemas com i386, amd64, arm, etc.
Uma desvantagem no uso de grandes ambientes é o download repetido de pacotes por mais de uma estação, por exemplo, uma park de centenas de servidores web, para um grande portal de notícias precisa realizar o download do pacote do servidor web Nginx para cada máquina. O problema, nesse caso, é o consumo gerado por cada uma das máquinas ao realizar o download. A solução apresentada nesse artigo, constitui uma alternativa a criação manual de repositórios, fazendo, para isso, uso do Nexus Sonatype Repository Manager.
O gerênciador de repositórios Nexus, pode ser utilizado não somente com pacotes Yum, mas também pacotes Maven, PyPi, APT (por meio de plugin), Node, Ruby Gems e outros.
Para esse laboratório, empregaremos CentOS 7 configurando um repositório Yum para nossa rede local.
Pré-Requisitos
Um dos pré-requisitos para instalação do Nexus, é o Java em versão superior a 1.8, provido pelo repositório padrão do CentOS. Para installar o Java execute o comando abaixo:
yum install -y java-1.8.0-openjdk
Instalação
Com isso, conseguimos instalar o Nexus. Realize o download no link https://www.sonatype.com/download-oss-sonatype. Em seguida descompacte o pacote baixado de https://www.sonatype.com/oss-thank-you-tar.gz:
tar -xf oss-thanks-you-tar.gz
Feito isso, acesse o diretório nexus-$VERSAO/bin. Atenção: $VERSAO correspondente a versão do pacote no seu ambiente.
cd $HOME/nexus-3.12.0-01/bin
Agora execute o binário do nexus com opção start. Assim, iniciaremos o servidor na porta 8081. Espere alguns minutos, o ambiente será gerado.
./nexus start
Logo que o Nexus terminar a criação do ambiente, o acesso a interface web estará disponível no endereço local pela porta 8081. O login padrão é admin e senha admin123.
Devemos criar um novo repositório para nossos pacotes Yum. O Nexus funcionará como uma repositório proxy para o repositório oficial do CentOS.
Criando um Repositório
Para criar o repositório, faça login e acesse o menu administrativo na engrenagem, clique em Repositories, como na imagem abaixo, depois “Create respository”.
Agora, basta configurar o nome do novo repositório e o seu endereço para que sirva como proxy. Em nosso caso utilizaremos o nome yum-proxy com endereço http://mirror.centos.org/centos/7/os/x86_64.
Com a configuração quase finalizada, marque a opção Storage como “Default”, clique em “Create repository”. Precisaremos criar um novo arquivo de repositório na distribuição CentOS, que será nosso cliente de testes.
Configurando Cliente
No ambiente CentOS, os arquivos localizados em /etc/yum.repos.d/ armazenam os endereços dos repositórios que a distribuição utilizará. Sempre que uma instalação ou atualização de pacote for feita, o utilitário yum checará esses arquivos, para atualizar a lista de pacotes disponíveis nos repositórios. Feito isso, o download poderá ter início, utilizando o endereço mais adequado ao que se deseja instalar/atualizar.
Para adicionar nosso repositório, crie um novo arquivo dentro deste diretório. Usaremos o nome nexus.repo. Importante manter o padrão: nome-do-arquivo.repo. Deste modo, yum reconhecerá como um arquivo de repositório.
cd /etc/yum.repos.d/
vim nexus.repo
Adicione o conteúdo abaixo no arquivo:
[nexusrepo] name=Nexus Repository baseurl=http://<endereço-servidor>:8081/repository/yum-proxy/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 priority=1
Agora, basta utilizar o comando yum para instalar qualquer aplicativo. A solicitação será enviada para o Nexus, que se encarregará por realizar o download, mantendo o pacote para futuras atualizações.
Como teste, instalamos o samba e postgresql-server com os comandos que seguem:
yum install -y samba postgresql-server
Após a instalação visualizamos os pacotes no Nexus, bastando para isso voltar ao Home da interface web, clicar em “Browse” e “yum-proxy”.
Verificamos a presença, não somente os pacotes samba e postgresql-server, mas também todas as dependências.
Observações
Nexus Sonatype não é limitado a repositórios Yum, sua configuração pode ser realizada com APT, via pluging e artefatos Maven. Nexus também pode ser integrado com outras ferramentas como Jenkins, possibilitando a integração contínua do ambiente de desenvolvimento. Desta forma, sempre que uma nova build for executada, pacotes do Maven ou PyPi poderão ser adquiridos localmente.
About author
Você pode gostar também
Entenda o Terraform e como ele se encaixa na Infraestrutura Ágil
Antes de entendermos como o Terraform funciona na prática é necessário compreendermos do que se trata a infraestrutura ágil e onde o Terraform se encaixa. Infraestrutura Ágil Infraestrutura ágil é
Como resolver problemas de dependências de projeto com o servidor de automação Jenkins
Jenkins é um servidor de automação, independente e de código aberto, usado para automatizar todos os tipos de tarefas relacionadas à criação, teste e distribuição ou implementação de software. Recentemente,
Entenda o SAST e como implementar com o Horusec em seu projeto
Saudações pessoal! Nós já falamos por aqui sobre DevSecOps e como implementar em nosso ciclo de desenvolvimento. Neste post iremos entrar em uma das etapas mais importantes deste ciclo de