distribuicion de .deb con configuraciones internas

Aldrin Martoq amartoq en dcc.uchile.cl
Jue Ene 24 15:05:49 CLST 2008


On Jan 24, 2008 1:58 PM, Victor Hugo dos Santos <listas.vhs en gmail.com> wrote:
> estoy analizando la posibilidad de crear un archivo ".deb" que
> contenga los archivos de configuracion de los servidores debian/ubuntu
> (después me meto con los rpms) que utilizamos aca en la empresa...
> como cada vez que agregamos un servidor tenemos que pasar el cheklist
> de instalacion (copiar/modificar archivos, instalar paquetes, entre
> otras tareas).. la idea es que al ejecutar "dpkg -i
> mipaquete-conf-1.0.0", haga:
> 1 - comprobar las dependecias que especifiquemos (ldap-utils,
> libpam-ldap, nscd, bacula-cliente,etc,etc) y instalarlas
> 2 - respaldar los archivos de configuracion que se ira sustituir
> (/etc/ldap/ldap.conf, /etc/resolv.conf, /etc/nsswitch.conf, etc,etc)
> con la sufijo "-old"
> 3 - sustituir los archivos de configuracion con los nuevos archivos
> que pusimos en nuestro paquete (mipaquete-conf-1.0.0).
>
> bueno.. hasta acá vamos bien.. pero estaba mirando como hacerlo (no se
> parece muy complicado) y en la documentacion de "Debian Policy
> ("http://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces"
> ) me indica que lo que intento hacer es un error (plop.. hasta aca
> llego mi muy buena idea)... que se hago lo que planteo.. posiblemente
> el paquete original del archivo de configuracion ira
> sobrescribir/modificar el nuevo archivo de configuracion a su gusto.

# METADISCUSION
Excelente descripcion del problema!. Estaba leyendo recien
$LINUXSRC/Documentation/SubmittingPatches, podriamos hacer una guia de
ese estilo para indicar como hacer preguntas en esta lista.

# VOLVIENDO AL PROBLEMA
Veo que tienes 3-4 objetivos o problemas a resolver:
1. Instalacion de paquetes escenciales o estandares
2. Configuracion de dichos paquetes
3. Respaldos de configuracion

Para el problema 1: escribir un .deb o "meta-paquete" es una excelente
solucion. Los meta-paquetes basicamente no contienen binarios ni
configuracion, sino que indican los paquetes escenciales para tener
cierta funcionalidad.

Puedes ver el codigo de por ejemplo ubuntu-desktop o
gnome-desktop-environment (apt-get source gnome-desktop-environment).
Asi haces tu paquete "servidor-ldap-mysql-apache" y agregas un
repositorio local y con apt-get estas al otro lado.

Sin embargo, crear un paquete no es dificil; lo que es dificil es
mantenerlo. Te sugiero si son pocas las aplicaciones que necesitas (y
debieran serlo! salvo que sea una estacion de trabajo o grafica), te
guies mas por un script simple. Es mas facil de escribir "apt-get
install ldap apache mysql" que irse con toda la parafernalia de un
.deb .


Para el problema 2: lo mas probable es que exista ya una solucion...
estuve buscando en mi lista de paquetes:
  525  apt-cache search config
  526  apt-cache search config manager
  527  apt-cache search config server
  528  apt-cache search config server  | less
  529  apt-cache search farm
  530  apt-cache search cluster
  531  apt-cache search cluster | less
Me parece que el paquete update-cluster* puede ser tu solucion.

Si decides irte por una solucion "home-made", te sugiero mantener un
diff y aplicarlo con patch, independiente del problema 1. La gracia de
aplicar un patch, es que la salida de diff contiene el contexto de
donde se realizo; si el archivo que pretende cambiar es distinto a lo
esperado patch gritara y tendras la chance de ver que sucede.



Para el problema 3:Debian ya provee la base de respaldos
(independiente del punto de instalacion), mira /var/backups; estos se
realizan mediante un crontab diario (/etc/cron.daily/*). No todos los
paquetes realizan un backup; pero tambien lo mas probable es que
exista una solucion debianita a este problema.

Ojo que el backup descrito es para diferencias o un mini historial del
archivo, no con respecto al original que venia en el paquete como tu
plantes; para esto ya esta el original en el paquete mismo


Espero haberte ayudado,


-- 
Aldrin Martoq



Más información sobre la lista de distribución Linux