Yum Repos
La idea es crear repositorios personales, ya sean replicas de los repositorios oficiales o nuevos repositorios con paquetes compilados por nosotros. Esta idea surge a raíz de dos hechos
- Con puppet, cada vez que tenemos que levantar una máquina se instalan los paquetes que necesiten desde repositorios remotos, por lo general los oficiales de CentOS, y estos pueden haber sido actualizados, con lo cual cada vez que levantamos una máquina nueva puede que haya paquetes nuevos (por ejemplo nueva versión de php) sin que lo hayamos probado. Si conseguimos tener nuestros repos siempre tendreos la oportunidad de probar un paquete en nuestros sistemas.
- También relacionado con puppet y con un aspecto importante de seguridad: No tener porqué dar acceso a navegación a nuestros servidores que no lo necesiten, como por ejemplo los servidores de DB's. Hasta ahora entrabamos en conflicto en el método de instalación de nuestras máquinas con puppet, mediante los manfiestos de instalación, que actualmente tiran contra los repos de internet, y el departamento de comunicaciones y seguridad siempre se queja de que con este método siempre tenemos que dejar abierta la navegación de estas máqiunas a internet. Un método alternativo sería tener un servidor proxy solo para estas máquinas, y al menos tener el control de por donde navegan, pero si conseguimos tener en local los origenes de los repositorios ya no hará falta ni siquiera eso.
Además, puedo sacar ventaja de esto también para las máquinas vagrant, para al igual que en el primer punto que explico arriba tener un repositorio común para todos los clientes que usen nuestras definiciones de vagrant y puppet tiren de los mismos paquetes o se instalen paquetes que hemos generado nosotros mismos.
Enlaces de interes
http://www.howtoforge.com/creating_a_local_yum_repository_centos
Primeros pasos en mis pruebas
Lo primero que he descubierto es que existe un comando, createrepo, que ayuda a crear los metadatos necesarios para los repositorios YUM. Este comando se instala con el propio yum
yum install createrepo
También es necesario tener una estructura de directorios donde estarán los paquetes. En mi caso, esa estructura estará en el document root de un vhost de apache. Este document root estará en el directorio /var/www/yum. Estas pruebas iniciales van a ser sobre un servidor apache público, yum.ardemans.com
En primero lugar he creado el directorio /var/www/yum/centos/6/ardemans/x86_64/RPMS.