Pesquisa de site

Como configurar o repositório HTTP Yum local no CentOS 7


Um repositório de software (“repo” em resumo) é um local central de armazenamento de arquivos para manter e manter pacotes de software, a partir do qual os usuários podem recuperar pacotes e instalá-los em seus computadores.

Os repositórios são frequentemente armazenados em servidores em uma rede, por exemplo, na Internet, que pode ser acessada por vários usuários. Entretanto, você pode criar e configurar um repositório local em seu computador e acessá-lo como um único usuário ou permitir acesso a outras máquinas em sua LAN (Rede Local).

Uma vantagem de configurar um repositório local é que você não precisa de conexão com a Internet para instalar pacotes de software.

YUM (Yellowdog Updater Modified) é uma ferramenta de gerenciamento de pacotes amplamente utilizada para RPM (RedHat Package Manager) baseado em sistemas Linux, o que facilita a instalação de software no Red Hat /CentOSLinux.

Neste artigo, explicaremos como configurar um repositório YUM local em um servidor web HTTP (Nginx) no CentOS 7 VPS e também mostra como encontrar e instalar pacotes de software em máquinas clientes CentOS 7.

Nosso ambiente de testes

Yum HTTP Repository Server:	CentOS 7 [192.168.0.100]
Client Machine:		CentOS 7 [192.168.0.101]

Etapa 1: instalar o servidor Web Nginx

1. Primeiro comece instalando o servidor HTTP Nginx do repositório EPEL usando o gerenciador de pacotes YUM da seguinte maneira.

yum install epel-release
yum install nginx 

2. Depois de instalar o servidor web Nginx, você pode iniciá-lo pela primeira vez e habilitá-lo para iniciar automaticamente na inicialização do sistema.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Em seguida, você precisa abrir as portas 80 e 443 para permitir o tráfego da web para o serviço Nginx, atualizar as regras de firewall do sistema para permitir pacotes de entrada em HTTP e HTTPS usando os comandos abaixo.

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

4. Agora você pode confirmar se seu servidor Nginx está instalado e funcionando, usando o seguinte URL; se você vir a página da web padrão do Nginx, está tudo bem.

http://SERVER_DOMAIN_NAME_OR_IP 

Etapa 2: crie um repositório local Yum

5. Nesta etapa, você precisa instalar os pacotes necessários para criar, configurar e gerenciar seu repositório local.

yum install createrepo  yum-utils

6. Em seguida, crie os diretórios necessários (repositórios yum) que armazenarão pacotes e qualquer informação relacionada.

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

7. Em seguida, use a ferramenta reposync para sincronizar os repositórios CentOS YUM com os diretórios locais, conforme mostrado.

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/
Saída de amostra
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.fibergrid.in
 * epel: mirror.xeonbd.com
 * extras: mirrors.fibergrid.in
 * updates: mirrors.fibergrid.in
base/7/x86_64/group                                                    | 891 kB  00:00:02     
No Presto metadata available for base
(1/9911): 389-ds-base-snmp-1.3.7.5-18.el7.x86_64.rpm                   | 163 kB  00:00:02     
(2/9911): 389-ds-base-devel-1.3.7.5-18.el7.x86_64.rpm                  | 267 kB  00:00:02     
(3/9911): ElectricFence-2.2.2-39.el7.i686.rpm                          |  35 kB  00:00:00     
(4/9911): ElectricFence-2.2.2-39.el7.x86_64.rpm                        |  35 kB  00:00:00     
(5/9911): 389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm                   | 695 kB  00:00:04     
(6/9911): GConf2-devel-3.2.6-8.el7.i686.rpm                            | 110 kB  00:00:00     
(7/9911): GConf2-devel-3.2.6-8.el7.x86_64.rpm                          | 110 kB  00:00:00     
(8/9911): GConf2-3.2.6-8.el7.i686.rpm                                  | 1.0 MB  00:00:06     

Nos comandos acima, a opção:

  • -g – permite a remoção de pacotes que falham na verificação de assinatura GPG após o download.
  • -l – ativa o suporte ao plugin yum.
  • -d – permite a exclusão de pacotes locais que não estão mais presentes no repositório.
  • -m – permite o download de arquivos comps.xml.
  • --repoid – especifica o ID do repositório.
  • --newest-only – diz ao reposync para extrair apenas a versão mais recente de cada pacote nos repositórios.
  • --download-metadata – permite baixar todos os metadados não padrão.
  • --download_path – especifica o caminho para baixar pacotes.

8. Em seguida, verifique o conteúdo dos seus diretórios locais para garantir que todos os pacotes foram sincronizados localmente.

ls -l /var/www/html/repos/base/
ls -l /var/www/html/repos/base/Packages/
ls -l /var/www/html/repos/centosplus/
ls -l /var/www/html/repos/centosplus/Packages/
ls -l /var/www/html/repos/extras/
ls -l /var/www/html/repos/extras/Packages/
ls -l /var/www/html/repos/updates/
ls -l /var/www/html/repos/updates/Packages/

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

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/  

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

vim /etc/nginx/conf.d/repos.conf 

Adicione a seguinte configuração ao arquivo repos.conf.

server {
        listen   80;
        server_name  repos.test.lab;	#change  test.lab to your real domain 
        root   /var/www/html/repos;
        location / {
                index  index.php index.html index.htm;
                autoindex on;	#enable listing of directory index
        }
}

Salve o arquivo e feche-o.

11. Em seguida, reinicie seu servidor Nginx e visualize os repositórios em um navegador da web usando o seguinte URL.

http://repos.test.lab

Etapa 3: Crie um Cron Job para sincronizar e criar repositórios

12. Em seguida, adicione um cron job que sincronizará automaticamente seus repositórios locais com os repositórios oficiais do CentOS para obter as atualizações e patches de segurança.

vim /etc/cron.daily/update-localrepos

Adicione esses comandos no script.

#!/bin/bash
##specify all local repositories in a single variable
LOCAL_REPOS=”base centosplus extras updates”
##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, feche-o e defina as permissões apropriadas.

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

Etapa 4: configurar o repositório Yum local em máquinas clientes

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

vim /etc/yum.repos.d/local-repos.repo

Copie e cole a configuração abaixo no arquivo local-repos.repo (faça alterações quando necessário).

[local-base]
name=CentOS Base
baseurl=http://repos.test.lab/base/
gpgcheck=0
enabled=1

[local-centosplus]
name=CentOS CentOSPlus
baseurl=http://repos.test.lab/centosplus/
gpgcheck=0
enabled=1

[local-extras]
name=CentOS Extras
baseurl=http://repos.test.lab/extras/
gpgcheck=0
enabled=1

[local-updates]
name=CentOS Updates
baseurl=http://repos.test.lab/updates/
gpgcheck=0
enabled=1

Salve o arquivo e comece a usar seus espelhos YUM locais.

14. Em seguida, execute o seguinte comando para visualizar seus repositórios locais na lista de repositórios YUM disponíveis, nas máquinas clientes.

 yum repolist
OR
yum repolist all

Isso é tudo! Neste artigo, explicamos como configurar um repositório YUM local no CentOS 7. Esperamos que este guia tenha sido útil para você. Se você tiver alguma dúvida ou qualquer outra opinião para compartilhar, use o formulário de comentários abaixo.