GentooRsyncMirror
De Gentoo Linux Wiki
| Kernel & Hardware • Red y Servicios • Portage • Relacionado con el Sistema • Servidor X • Juegos • Misceláneos |
Tabla de contenidos |
[editar] Introducción
En este wiki se mostrará el modo de crear un repositorio local de rsync para Gentoo, algo bastante útil si se usan varias Gentoo's en la subred de la empresa. Además de un servidor Rsync de Gentoo, también se mostrará la configuración necesaria en los demás equipos de la subred, añadiendo la posibilidad de necesitar sincronización con una rama desarrollada por la empresa además de con la rama oficial.
[editar] Gentoo Rsync Mirror
Primero, necesitamos instalar el rsync (si no lo tenemos ya) mediante
| Código: Console |
# emerge rsync |
y editar el fichero /etc/conf.d/rsyncd para dejarlo de forma parecida a
| Archivo: /etc/conf.d/rsyncd |
RSYNC_OPTS="--config /etc/rsync/rsyncd.conf --address rsync.aplica.intra" |
aunque esto es algo de costumbres, yo prefiero tener los ficheros de configuración en directorios separados (en lugar de todos en /etc), además establecemos la dirección que tendrá el servidor, en nuestro caso rsync.aplica.intra.
El siguiente paso es editar la configuración del rsync, almacenada como indicamos antes en /etc/rsync/rsyncd.conf y que contendrá lo siguiente en nuestro caso:
| Archivo: /etc/rsync/rsyncd.conf |
# /etc/rsyncd.conf
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
uid = nobody
gid = nobody
use chroot = yes
read only = yes
# Vete de aqui forastero
hosts allow=192.168.0.0/255.255.0.0
hosts deny=*
max connections = 3
motd file = /etc/rsync/msg.motd
pid file = /var/run/rsyncd.pid
use chroot = yes
read only = yes
# Simple example for enabling your own local rsync server
[gentoo]
path = /usr/portage
comment = Gentoo Portage tree
exclude = /distfiles /packages
|
Tras las directivas de configuración del principio y la indicación del fichero motd que contiene el mensaje que se mostrará al que se sincronice, se especifican los "puertos" de sincronización que ofrecemos, en nuestro caso gentoo . La configuración de cada puerto contiene un directorio a sincronizar, un comentario y ficheros que se van a excluir, los cuales son los de los directorios de distfiles y packages .
[editar] Actualizando el portage ofrecido por el servidor
El servidor debe actualizar diariamente su árbol de portage para cuando se sincronicen los demás equipos. Una sincronización de más de una vez al dia no la considero necesaria, además, al hacer emerge --sync desaconsejan la actualización excesiva, ya que se pueden saturar sus servidores (que es uno de los objetivos, junto con la velocidad, por los que se crea este "mirror"). Para la actualización automática, basta con encargarselo a cualquier servicio de cron
| Código: Console |
# emerge vixie-cron ... # rc-update add vixie-cron default * vixie-cron added to runlevel default # /etc/init.d/vixie-cron start * Starting vixie-cron ... # echo "emerge --sync" > /etc/cron.daily/portage.cron # chmod +x /etc/cron.daily/portage.cron |
Una vez está todo montado, basta con añadir
SYNC="rsync://rsync.aplica.intra/rsync"
en el fichero make.conf de la máquina que deseemos sincronizar contra nuestro servidor.
[editar] Rama de Portage de la empresa
Si nuestra empresa desarrolla su propia rama del árbol de Portage, con ebuilds creados para la instalación de software propio o con modificaciones de ebuilds que se ajustan a nuestras necesidades es posible que necesitemos un mirror con el que los equipos de los desarrolladores puedan sincronizarse. Esto se hace de forma similar a la anterior, aunque las ramas no oficiales tienen algunos cambios a la hora de la sincronización y configuración. Empezaremos con el fichero de configuración del rsync, al que debemos de añadir
| Archivo: /etc/rsync/rsyncd.conf |
...
[portage_aplica]
path = /usr/local/portage_overlay
comment = Gentoo Portage for the Aplica people
exclude = /distfiles /packages *svn*
|
con lo que añadimos el puerto de sincronización portage_aplica y lo configuramos como en el primer caso excluyendo adicionalmente todos los ficheros del subversion al tratarse de la rama de desarrollo de la empresa (Aplica monta el sistema de instalación sobre Gentoo y no hay necesidad de que las sincronizaciones envien también información del subversión).
[editar] Configuración del cliente
Una vez rellenado el directorio con los ebuilds dados, pasamos a configurar los clientes para que se sincronicen correctamente, para eso se usa el layman , un programa para manejar ramas no oficiales de Gentoo.
| Código: Console |
# emerge layman |
y hacemos caso del comentario de postinstalación
| Código: Console |
# echo "source /usr/portage/local/layman/make.conf" >> /etc/make.conf |
Tras lo cual tenemos que indicarle al layman que tenemos una rama, para lo cual tenemos que editar primero el fichero de configuración del layman
| Archivo: /etc/layman/layman.conf |
# Configuracion estándar del layman
...
# Overlays, añadimos un fichero propio junto a la lista global de overlays
overlays : http://www.gentoo.org/proj/en/overlays/layman-global.txt
file:///usr/portage/local/layman/lista.xml
|
Un overlay no es otra cosa que una rama no oficia de Portage. En el fichero que añadimos (/usr/portage/local/layman/lista.xml) lo único que debemos poner es una descripción de nuestro mirror, de la forma:
| Archivo: /usr/portage/local/layman/lista.xml |
<?xml version="1.0" ?>
<layman>
<overlay
type = "rsync"
src = "rsync://rsync.aplica.intra/portage_aplica"
contact = "pepito@correo.com"
name = "aplica">
<link> http://gestion.aplica.intra </link>
<description>Rama de Portage de Aplica</description>
</overlay>
</layman>
|
Tras lo cual, al hacer un
| Código: Console |
# layman -L |
| Código: Console |
# layman -a aplica |
Una vez añadido, cada vez que queramos sincronizarnos con nuestra rama interna bastará con poner
| Código: Console |
# layman -S |
¡Y eso es todo!
