Data: 22/08/22
Autores:
Esse estudo tem o intuito de exemplificar a configuração utilizada para permitir que o Nexus consiga manter localmente o cache de pacotes .RPM e .DEB uma vez já baixados dos repositórios Linux.
Fez-se necessário criar essas funções para evitar que toda vez que um sistema ou aplicação ao fazer Deploy evite buscar os pacotes em repositórios públicos e tenha que baixar todos os pacotes da internet para atualizar os sistemas baseados em Debian ou CentOS. Com isso os pacotes são armazenados localmente pelo Nexus e assim evita-se usar recursos de banda da internet, tornando o processo mais rápido e eficiente.
Yum ou «Yellowdog Updater, Modified» é um utilitário de gerenciamento de pacotes de linha de comando para distribuições Linux usando o gerenciador de pacotes RPM. Ele permite que você instale facilmente muitos pacotes Linux comumente usados em distribuições como RedHat, CentOS e Fedora.
Para fazer proxy de um repositório Yum, basta criar um novo yum (proxy)
As etapas mínimas de configuração são as seguintes:
Foi criado dois repositórios no Nexus para armazenamento com as seguintes configurações baseado na documentação.


Após criar os repositórios, foi criado as configurações de dockerfile no projeto https://gitlab.setic.ro.gov.br/blackops/hombridade/nexus-repositories/docker-rpm

Configurações a serem usadas nos projetos:
.# FROM quay.io/centos/centos:stream8
ENV container docker
.### AUTORIDADE CERTIFICADORA CENTOS, FEDORA, REDHAT E DISTRIBUIÇÕES DERIVADAS
RUN curl -fsSL https://gitlab.setic.ro.gov.br/publico/ca-trust/-/raw/master/openshift_ca.crt -o /etc/pki/ca-trust/source/anchors/openshift_ca.crt
RUN curl -fsSL https://gitlab.setic.ro.gov.br/publico/ca-trust/-/raw/master/portainer_ca.crt -o /etc/pki/ca-trust/source/anchors/portainer_ca.crt
RUN update-ca-trust
.### PARA CENTOS STREAM 9
RUN curl -fsSL https://gitlab.setic.ro.gov.br/publico/nexus-rpm/-/raw/main/mirror.stream.centos.org.repo -o /etc/yum.repos.d/mirror.stream.centos.org.repo
.### PARA CENTOS STREAM 8
.# RUN curl -fsSL https://gitlab.setic.ro.gov.br/publico/nexusrpm/-/raw/main/mirror.centos.org.repo -o /etc/yum.repos.d/mirror.centos.org.repo
Para validar as configurações foi realizado testes locais e confirmado que o repositório realiza o cache dos pacotes.



Debian e sistemas baseados nele, como Ubuntu, Linux Mint e Raspbian, usam o mesmo sistema de gerenciamento de pacotes. APT ( A dvanced P ackage Tool ) é um conjunto de ferramentas para gerenciar pacotes Debian e, portanto, os aplicativos instalados em seu sistema Debian. Ele fornece um amplo conjunto de operações, como pesquisar repositórios, instalar pacotes com suas dependências e gerenciar atualizações.
O Nexus Repository Manager oferece suporte ao formato de repositório Apt para repositórios proxy, bem como para repositórios hospedados. Os repositórios proxy oferecem várias vantagens significativas. Você não depende mais da disponibilidade de repositórios públicos e de uma conexão de rede externa. Quando os pacotes são armazenados em cache , você pode capturar metadados e ter certeza de que todos os pacotes estarão disponíveis mesmo quando removidos do repositório remoto. Com repositórios hospedados, você tem armazenamento confiável para seus próprios pacotes e pacotes de terceiros.
Você pode configurar um repositório proxy Apt para acessar um local de repositório remoto.
Para fazer proxy de um repositório Apt, basta criar um novo apt (proxy) conforme documentado em Repository Management .
As etapas mínimas de configuração são:
Foi criado um repositório no nexus com as seguintes configurações baseado na documentação.


Após criar os repositórios, foi criado as configurações de dockerfile no projeto
https://gitlab.setic.ro.gov.br/blackops/hombridade/nexus-repositories/docker-deb/

.### DISTRO UBUNTU JAMMY 22.04 LTS
.# FROM registry.ocp.local/ubuntu:jammy
.### DISTRO UBUNTU FOCAL 20.04 LTS
.# FROM registry.ocp.local/ubuntu:focal
.### DISTRO DEBIAN BULLSEYE 11
.# FROM registry.ocp.local/debian:bullseye
¶ DISTRO DEBIAN BUSTER 10
¶ FROM registry.ocp.local/debian:buster
.### DISTRO DEBIAN STRETCH 9
.# FROM registry.ocp.local/debian:stretch
.### CONFIGURAÇÕES MINIMAS PARA USO DE IMAGE
RUN apt-get update && apt-get install -y locales curl && rm -rf /var/lib/apt/lists/*
&& localedef -i pt_BR -c -f UTF-8 -A /usr/share/locale/locale.alias pt_BR.UTF-8
ENV LANG pt_BR.utf8
ENV container docker
.### ADICIONADO AUTORIDADE CERTIFICADORA PARA ALPINE, DEBIAN, UBUNTU E DISTRIBUIÇÕES DERIVADAS
RUN curl -fsSL https://gitlab.setic.ro.gov.br/publico/ca-trust/-/raw/master/openshift_ca.crt -o /usr/local/share/ca-certificates/openshift_ca.crt
RUN curl -fsSL https://gitlab.setic.ro.gov.br/publico/ca-trust/-/raw/master/portainer_ca.crt -o /usr/local/share/ca-certificates/portainer_ca.crt
RUN update-ca-certificates
.### ADICIONAR REPOSITÓRIO PARA DISTRO UBUNTU JAMMY 22.04 LTS
.# RUN echo «deb https://nexus.ocp.local/repository/archive.ubuntu.com jammy main» > /etc/apt/sources.list
.### ADICIONAR REPOSITÓRIO PARA DISTRO UBUNTU FOCAL 20.04.4 LTS
.# RUN echo «deb https://nexus.ocp.local/repository/archive.ubuntu.com focal main» > /etc/apt/sources.list
.### ADICIONAR REPOSITÓRIO PARA DISTRO DEBIAN BULLSEYE 11
.# RUN echo «deb https://nexus.ocp.local/repository/deb.debian.org bullseye main» > /etc/apt/sources.list
.### ADICIONAR REPOSITÓRIO PARA DISTRO DEBIAN BUSTER 10
.# RUN echo «deb https://nexus.ocp.local/repository/deb.debian.org buster main» > /etc/apt/sources.list
.### ADICIONAR REPOSITÓRIO PARA DISTRO DEBIAN STRETCH 9
.# RUN echo «deb https://nexus.ocp.local/repository/deb.debian.org stretch main» > /etc/apt/sources.list
RUN apt-get -y update;apt-get -y install nano
Para validar as configurações foram realizados testes locais e confirmado que o repositório realiza o cache dos pacotes.


CONFIGURAÇÕES (RPM - REPOSITORIES)
CONFIGURAÇÕES (APT - REPOSITORIES)
Tal estudo levou a configuração do Nexus Repository Manager a oferecer suporte ao formato de cache para repositórios proxy RPM e APT.
Os repositórios proxy oferecem várias vantagens significativas. Não ficando mais dependente da disponibilidade de repositórios públicos e de uma conexão de rede externa.
Quando os pacotes são armazenados em cache , você pode capturar metadados e ter certeza de que todos os pacotes estarão disponíveis mesmo quando removidos do repositório remoto.