Criando repositórios locais em servidores Red Hat



Repositórios várias vezes ficam offline ou ficam lentos, quando temos a disponibilidade de poder criar um servidor contendo todos os repositórios que utilizamos. Aqui começo falando sobre como criar e manter repositórios locais para servidores red hat. Vamos utilizar o repositório EPEL, que contém pacotes extras para servidores red hat e derivados(fedora, centOS...)


Como configuramos o Servidor:

Para configurar o servidor, precisamos primeiro configurar o servidor epel para que os pacotes possam ser baixados:

Precisamos baixar o rpm que instala o repositório:

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

executar o comando:

rpm -Uvh epel-release-6-8.noarch.rpm

Após isso vamos testar se o servidor está funcionando.

yum enablerepo=epel install htop -y

Instalando, temos configurado o servidor epel da internet.

Agora podemos montar o servidor local.

Precisamos instalar esses pacotes antes de fazer qualquer configuração:

yum install httpd yum-utils createrepo

Vamos criar a árvore de repositório:

mkdir -p /srv/mirror/epel/6/{x86_64,i686,noarch}

Vamos baixar o repositório:

reposync -r epel -p /srv/mirror/ -l -m

Após baixar os pacotes, confira se todos os pacotes estão em "/srv/mirror/epel/", caso não esteja use o comando para mover os pacotes para o local certo:

mv * /srv/mirror/epel/

Vamos colocar os arquivos em suas devidas pastas:

cd /srv/mirror/epel/

for a in {x86_64,i686,noarch} ; do    find . -maxdepth 1 -iname "*$a*" -exec cp -v {} 6/$a/ \; ;    cp -f comps.xml 6/$a/ ; done 

Vamos agora criar o metadata do repositório:

for a in {x86_64,i686,noarch} ; do    createrepo -p -v -g comps.xml 6/$a/ ; done

Após essas configurações já temos um repositório pronto, e com todos os pacotes funcionando.

Agora vamos publicar esse repositório no apache, para que seja possível aos hosts baixarem os pacotes:

vim /etc/httpd/conf.d/mirror.conf

cole essas configurações dentro do arquivo:

##### Repositorio EPEL ########

<VirtualHost _default_:80>
   ServerAdmin admin@email.org
   ServerName rf0020500096018
   DocumentRoot /srv/mirror/

   KeepAlive On
   KeepAliveTimeout 2
   MaxKeepAliveRequests 100

   AddType application/octet-stream .iso
   AddType application/octet-stream .rpm

   <Directory "/srv/mirror">
      Options +Indexes +FollowSymLinks
      AllowOverride None
      Order allow,deny
      Allow from all
   </Directory>

   <LocationMatch "\.(xml|xml\.gz|xml\.asc|sqlite)$">
      Header set Cache-Control "must-revalidate"
      ExpiresActive On
      ExpiresDefault "now"
   </LocationMatch>

   LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" %I %O \"%{User-Agent}i\"" combined
</VirtualHost>


Pronto, temos o repositório funcionando corretamente.

Porém, assim ele não se mantem atualizado.

Precisamos colocar esse script, para executar ao menos 1x por semana, assim mantemos tudo atualizado.


#!/bin/bash

# baixa apenas pacotes novos
/usr/bin/reposync -r epel -p /srv/mirror/ -n

#coloca os arquivos no local correto.

cd /srv/mirror/epel/
for a in {x86_64,i686,noarch} 
do   
find . -maxdepth 1 -iname "*$a*" -exec cp -v {} 6/$a/ \;
cp -f comps.xml 6/$a/
done


----------------------------------------------------------------


Configurações no Host:

Para adicionar o repositório local ao host devemos executar no próprio host os comandos.

vim /etc/yum.repos.d/localepel.repo

aperte "i" para inserir o texto abaixo:

[epel]
name=Extra Packages for Enterprise Linux 6 LOCAL - $basearch
baseurl=http://<<IP_DO_SERVIDOR>>/epel/6/$basearch
failovermethod=priority
enabled=1
gpgcheck=0


Após, executar o comando:

yum repolist && yum update

E para testar o funcionamento da instalação de um RPM:

yum enablerepo=epel install htop -y



Fontes utilizadas na pesquisa:

http://blog.iandexter.net/2012/12/create-local-epel-mirror.html?showComment=1357298310590#c7953647602490147537

http://ithelpblog.com/os/linux/redhat/centos-redhat/install-epel-repository-on-centos-6-3-or-redhat-6-3-rhel/

Comentários

Postagens mais visitadas deste blog

Servidor de Email Seguro com Postfix - Amavis - Opendkim - Opendmarc

Script de Checagem de Serviço.

Convertendo servidores Linux do Xen para VmWare ESX.