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
Postar um comentário