Servidor de Repositório Yum - CentOS / Oracle Linux

Este documento é dirigido ao pessoal da área de TI, especialmente aos administradores de redes, sistemas e/ou segurança, que são os responsáveis pelo planejamento, implementação ou operação de redes e sistemas. Também podem se beneficiar da sua leitura gerentes com conhecimento técnico de redes ou até mesmo pessoas leigas. Este documento também tem o objetivo de explicar como instalar e configurar passo a passo cada aplicação nele necessária para que seja criado o servidor de repositórios CentOS 7.x e Oracle Linux Server 7.x.

[ Hits: 20.900 ]

Por: Wagner em 07/12/2018


Introdução



* Criado em um Server CentOS 7.5

Instalação de pacotes necessários:

# yum install epel-release wget-y

Atualizar servidor:

# yum update

Desativar selinux

Para que seja possível listar os arquivos do repositório via Nginx é necessário desativar o SELINUX, para isso acesse o seguinte arquivo:

# vi /etc/selinux/config

Altere a linha SELINUX=enforcing para "disabled", após isso reinicie a máquina.

INSTALAÇÃO DO NGINX - WEB SERVER

Digite:

# yum install nginx -y

Habilitar o serviço para iniciar junto ao sistema:

# systemctl enable nginx

Iniciar serviço:

# systemctl start nginx

Liberar no firewall local as portas 80 e 443:

# firewall-cmd -zone=public -permanent -add-service=http
# firewall-cmd -zone=public -permanent -add-service=https


Recarregar as novas configurações adicionadas no firewall:

# firewall-cmd --reload

Validar se o Nginx está funcionando:

http://nome_do_seu_servidor.FQDN

CRIAR REPOSITÓRIO LOCAL YUM (CENTOS / ORACLE LINUX 7)

Para criação dos repositórios serão necessários alguns pacotes como exibido abaixo:

# yum install createrepo yum-utils -y

Criar as pastas para onde os pacotes serão enviados:

# mkdir -p /var/www/html/repos/{base,centosplus,extras,updates,ol7_latest}

Sincronizar os repositórios com o server:

# reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/var/www/html/repos/
# reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/var/www/html/repos/


Baixar a lista de repositório do Oracle Linux para a pasta /etc/yum.repos.d/:

# wget https://yum.oracle.com/public-yum-ol7.repo -O /etc/yum.repos.d/public-yum-ol7.repo

Baixar a chave pública do Oracle Linux:

# wget https://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

Validar a verificação de chave Oracle:

# gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

Importar a chave:

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

Sincronizar o repositório Oracle Linux 7:

# reposync -g -l -d -m --repoid=ol7_latest --newest-only --download-metadata --download_path=/var/www/html/repos/

Agora crie um novo repodata para os repositórios locais executando os seguintes comandos, em que o sinalizador -g é usado para atualizar as informações do grupo de pacotes usando o ".xml" arquivo especificado.

# createrepo -g comps.xml /var/www/html/repos/base/
# createrepo -g comps.xml /var/www/html/repos/centosplus/
# createrepo -g comps.xml /var/www/html/repos/extras/
# createrepo -g comps.xml /var/www/html/repos/updates/
# createrepo -g comps.xml /var/www/html/repos/ol7_latest/


Para permitir a visualização de repositórios e pacotes neles, por meio de um navegador da Web, crie um bloco do servidor Nginx que aponte para a raiz dos seus repositórios, conforme mostrado.

# vi /etc/nginx/conf.d/repos.conf

Insira o conteúdo no arquivo, salve e saia:

server {
        listen   80;
        server_name  nome_do_seu_servidor.FQDN;
        root   /var/www/html/repos;
        location / {
                index  index.php index.html index.htm;
                autoindex on;   #enable listing of directory index
        }
}

Salve e feche o arquivo. Em seguida reinicie o nginx.

# systemctl restart nginx

Acesse o endereço novamente e valide se é possível visualizar os arquivos nas pastas:

http:// nome_do_seu_servidor.FQDN

CRIAR CRON JOB PARA SINCRONIZAR E CRIAR REPOSITÓRIOS

Adicione uma tarefa cron que sincronize automaticamente seus repositórios locais com os repositórios oficiais do CentOS para obter as atualizações e os patches de segurança:

# vi /etc/cron.daily/update-localrepos

Adicione o conteúdo abaixo no arquivo:

#!/bin/bash
##specify all local repositories in a single variable
LOCAL_REPOS="base centosplus extras updates ol7_latest"
##a loop to update repos one at a time
for REPO in ${LOCAL_REPOS}; do
reposync -g -l -d -m --repoid=$REPO --newest-only --download-metadata --download_path=/var/www/html/repos/
createrepo -g comps.xml /var/www/html/repos/$REPO/
done

Salve o script e feche-o e defina as permissões apropriadas nele.

# chmod 755 /etc/cron.daily/update-localrepos

CONFIGURAÇÃO DO REPOSITÓRIO LOCAL DO YUM EM MÁQUINAS CLIENTES

Agora, nas máquinas clientes do CentOS, adicione seus repositórios locais à configuração do YUM.

# vi /etc/yum.repos.d/local-repos.repo

Adicione o conteúdo abaixo:

[local-base]
name=CentOS Base
baseurl=http:// nome_do_seu_servidor.FQDN /base/
gpgcheck=0
enabled=1

[local-centosplus]
name=CentOS CentOSPlus
baseurl=http:// nome_do_seu_servidor.FQDN /centosplus/
gpgcheck=0
enabled=1

[local-extras]
name=CentOS Extras
baseurl=http:// nome_do_seu_servidor.FQDN /extras/
gpgcheck=0
enabled=1

[local-updates]
name=CentOS Updates
baseurl=http:// nome_do_seu_servidor.FQDN /updates/
gpgcheck=0
enabled=1

Para o Oracle Linux adicionar o seguinte repositório e deletar todos os outros na pasta /etc/yum.repos.d/:

# vi /etc/yum.repos.d/local-repos.repo

Adicione o conteúdo abaixo no arquivo, salve e feche:

[local-ol7_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=http:// nome_do_seu_servidor.FQDN /ol7_latest/
gpgcheck=0
enabled=1

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Instalação Tesseract 4.1 e Apache Airflow no CENTOS 7

Adicionando Novo Disco - RHEL e CentOS

Configuração de Servidor SFTP

Integrando Servidores Linux no Active Directory com Samba

Integração de servidores Linux com Active Directory

Leitura recomendada

adesklets: Uma leve e funcional ferramenta de displays

Reconstruindo um pacote RPM

Monitoramento de Serviços e Servidores

Distros nacionais em evolução: visão do Definity Linux CURRENT e do Kurumin beta

Desenvolvendo um servidor DNS no CentOS

  
Comentários
[1] Comentário enviado por arairs em 07/10/2021 - 21:21h

Sei que o guia é de 2018, mas ele é perfeito ainda, especialmente por mostrar as configurações para o oracle linux.

[2] Comentário enviado por wagner31 em 09/10/2021 - 10:41h


[1] Comentário enviado por arairs em 07/10/2021 - 21:21h

Sei que o guia é de 2018, mas ele é perfeito ainda, especialmente por mostrar as configurações para o oracle linux.


Obrigado Iaira!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts