12 de febrero de 2012

Crea tu propio mirrorlist en Centos (Rev 1)

Mucho del dia a dia lo realizo con repositorios locales de CentOS, Epel y mi repositorio personal.
Hago uso de los mirrorlist de Centos como segunda opcion y por supuesto los locales son de primer frente.
Para esto instalo apache y php en mi servidor de repositorio de paquetes, y modifico cada un de los archivos .repo contenidos en /etc/yum.repos.d/ .
El archivo original de CentOS-Base.repo contiene la siguiente informacion

[base]
name=CentOS-$releasever - Base
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-$releasever - Updates
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#Fasttrack - packages by Centos Users
[fasttrack]
name=CentOS-$releasever - Contrib
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=fasttrack
#baseurl=http://mirror.centos.org/centos/$releasever/fasttrack/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Modificamos el archivo y colocamos en la linea anteriior al los mirror por defecto el nuestro quedando el archivo de congifuracion asi;
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out #baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist= http://10.1.1.1/?release=$releasever&arch=$basearch&repo=os
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist= http://10.1.1.1/?release=$releasever&arch=$basearch&repo=updates
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist= http://10.1.1.1/?release=$releasever&arch=$basearch&repo=extras
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist= http://10.1.1.1/?release=$releasever&arch=$basearch&repo=centosplus
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist= http://10.1.1.1/?release=$releasever&arch=$basearch&repo=contrib
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#Fasttrack - packages by Centos Users
[fasttrack]
name=CentOS-$releasever - Contrib
mirrorlist= http://10.1.1.1/?release=$releasever&arch=$basearch&repo=fasttrack
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=fasttrack
#baseurl=http://mirror.centos.org/centos/$releasever/fasttrack/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


Luego creamos un archivo index.php que contenga la siguiente información:

<?php
$ip='10.1.1.1';
$release=$_REQUEST['release'];
$arch=$_REQUEST['arch'];
$repo=$_REQUEST['repo'];
if ($repo == 'epel'): 
    echo  'http://'.$ip.'/'.$repo.'/'.$release.'/'.$arch.'/';
elseif ($repo == 'walter'): 
    echo 'http://'.$ip.'/'.$repo.'/'.$release.'/'.$arch.'/';
else: 
    echo 'http://'.$ip.'/centos/'.$release.'/'.$repo.'/'.$arch.'/';
endif;
?>


Este archivo debe estar en el path por defecto de apache /var/www/html , y pos supuesto nuestro repositorio en la ruta definida por el mirrorlist "http://10.1.1.1/centos/"

mi alias de apache donde se encuentra el repositorio de paquetes es el siguientes

alias /centos /var/www/html/centos

<Directory /var/www/html/centos>
   Options Indexes FollowSymlinks
   AllowOverride none
   order allow,deny
   allow from all
</Directory>

el directorio que esta en apache es un enlace blando a /home/repos/centos, un usuario del sistema, otra cosa es configurar SELinux con el contexto de archivo para apache "httpd_sys_content_t"

No hay comentarios:

Share Up To 110 % - 10% Affiliate Program