Creación de un CD personalizado de aplicaciones para Debian/Ubuntu

enero 26, 2009

Este documento explica el procedimiento para crear un CD Debian personalizado. Es un conjunto de pasos que el usuario debe seguir para lograr este objetivo. Estos pasos se utilizaron para crear un CD de este tipo.

INTRODUCCION

Para todo usuario del maravilloso sistema Debian GNU/Linux, es conocido que disponer de los paquetes en un lugar donde no exista la posibilidad de instalar un repositorio puede resultar en un dolor de cabeza. Este manual surge como necesidad para los usuarios que no tengan acceso a un repositorio Debian pueden crear sus CDs personalizados.

DESARROLLO

El proceso de creación de un CD personalizado aunque sencillo necesita de
conocimientos básicos de Linux, se recomienda antes de ejecutar el proceso familiarizarse con las funcionalidades de los siguientes comandos: apt-get, mkdir, du, echo, cp, cd, ln, dpkg-scanpackages, gzip y mkisofs. Cada vez que se le indica al sistema que instale un paquete desde cualquiera de los repositorios que tengamos configurados en /etc/apt/sources.list, el sistema, antes de desempaquetarlo para su posterior instalación lo descarga hacia un directorio local de la PC, /var/cache/apt/archives/ y una vez allí se continua con el proceso de instalación. En nuestro caso, aprovecharemos la existencia de esta cache actualizada, ya que en la misma estarán solamente los paquetes que en algún momento hemos necesitado tener instalados en la PC y por consiguiente son los que utilizamos para nuestro trabajo.

Preferiblemente se recomienda instalar el sistema desde cero, a partir del
CD 1 de Debian, ya que de esta forma tendremos la cache inicialmente vacía y lista para preparar nuestro sistema desde el principio. Esta cache trae predefinido un límite que cambiaremos para hacerlo casi ilimitado y así no correr el riesgo de perder ninguno de los paquetes al llenarse la misma. Los comandos necesarios para definir esta característica se detallan a continuación:

Se procede a instalar todo el sistema de paquetes que normalmente utilizamos. Para ello debemos tener configurado nuevo apt-get para que instale desde un repositorio conocido, utilizaremos la herramienta “apt-get install -d”, la opcion -d al final significa que no instalaremos el paquete, solo que lo descargue para /var/cache/apt/archives/.

SELECCION DE PAQUETES

A partir de este momento, comenzamos la seleccion de los paquetes. Conviene estar constantemente revisando la cache para que no sobrepase el tamaño del CD que tenemos a mano (650 o 700 Mbytes según sea el caso) para esto puede resultar particularmente útil el comando du, recomendamos también dejar de 5 a 10 Mbytes de espacio libre de guarda, después hay que utilizar este espacio para crear la base de datos que contiene la ubicación de los paquetes dentro del CD:

du -lsh /var/cache/apt/archives/

CREANDO LOS DIRECTORIOS DE NUESTRO NUEVO CD

Una vez que tengamos todos los paquetes necesarios para nuetro CD personalizado, procedemos a la creacion de los directorios del CD, para ello vamos a crearlos en /home/cd-1 (mkdir /home/cd-1).

Procedamos creando los siguientes directorios:

mkdir /home/cd-1/dists
mkdir /home/cd-1/pool
mkdir /home/cd-1/dists/etch
mkdir /home/cd-1/dists/etch/main
mkdir /home/cd-1/dists/etch/main/binary-i386
mkdir /home/cd-1/dists/etch/main/debian-installer
mkdir /home/cd-1/pool/main

Ya tenemos creados los directorios necesarios (como minimo) para proceder a escanear los paquetes. Ahora movemos los paquetes que estan en /var/cache/apt/archives para /home/cd-1/pool/main:

mv /var/cache/apt/archives/*.deb /home/cd-1/pool/main

Una vez realizado este ultimo paso, si queremos tener los paquetes organizados alfabeticamente, podemos crear dentro de /home/cd-1/pool/main las carpetas a, b, c, …, z y dentro de la a ponemos los paquetes que comiencen con a, y asi sucesivamente.

Ya estamos en condiciones de escanear los paquetes, lo hacemos con el comando dpkg-scanpackages, pero antes ejecutamos cd /home/cd-1.
Y escaneamos los paquetes:

dpkg-scanpackages . /dev/null > Packages; gzip -c9 Packages > Packages.gz

Esto puede tardar uno o dos minutos, o mas, cuando termine, se habran creado dos ficheros nuevos, Packages y Packages.gz, estos debemos copiarlos para las carpetas

/home/cd-1/dists/etch/main/binary-i386
/home/cd-1/dists/etch/main/debian-installer

lo hacemos asi:

cp /home/cd-1/Packages /home/cd-1/dists/etch/main/binary-i386
cp /home/cd-1/Packages.gz /home/cd-1/dists/etch/main/binary-i386
mv /home/cd-1/Packages /home/cd-1/dists/etch/main/debian-installer
mv /home/cd-1/Packages.gz /home/cd-1/dists/etch/main/debian-installer

CREACION DEL ISO

Y ya esta casi listo nuevo CD, solamente debemos crear el ISO, esto lo creamos con el comando mkisofs, si no esta instalada esta aplicacion la instalamos:

apt-get install mkisofs

ahora creamos el ISO:

mkisofs -f -J -R -o /home/cd.iso /home/cd-1

El nuevo fichero .ISO se llamara cd.iso y ya estamos en condiciones de quemarlo usando K3b, gnomebaker o Nero.

CONCLUSIONES

Para utilizar este CD, debemos primeramente montarlo en el sistema de ficheros, esto Debian lo hace automaticamente dentro de /media/cdrom, y podemos configurar el apt para usarlo, editamos el sources.list, comentamos todas las lineas, y finalmente escribimos esto:

deb file:///media/cdrom/ etch main

Salvamos los cambios y damos

apt-get update

Y ya podemos instalar paquetes desde nuestro CD.


Implementación del DFS (Distributed File System) en Debian Etch

junio 18, 2008

Ante nada, debemos tener instalado samba en nuestro sistema, de no tenerlo instalado, lo hacemos de esta manera:

apt-get install samba

Una vez instalado Samba, editamos el smb.conf y en la sección [global] agregamos:

host msdfs = yes

Debemos asegurarnos de que exista esta línea:

netbios name = servidor

De no haberla, la agregamos antes que la anterior.

Despues que terminemos la sesion [global] agregamos:

[recursos]
path = /home/dfsroot
msdfs root = yes

Ahora creamos el directorio /home/dfsroot con propietario root y con permisos 755:

mkdir /home/dfsroot
chmod 755 /home/dfsroot

Ahora dentro de /dfsroot creo los links a los recursos compartidos de mi red:

ln -s msdfs:maquina1\\instaladores instaladores
ln -s msdfs:maquina2\\musica musica

Reiniciamos SAMBA:

/etc/init.d/samba restart.

Cuando los clientes Windows utilizan el recurso \\servidor\recursos aparecen los directorios “instaladores” y “musica” que representan recursos compartidos en maquina1 y maquina2 respectivamente.

Suerte!!!


Configuración de un Servidor de Nombres de Dominio en Debian ETCH

mayo 27, 2008

Saludos colegas, a continuación explicaré uno de los servicios primarios que debe tener toda red de computadoras, hablo del Sistema de Nombres de Dominio (DNS).

Para comenzar el tutorial, primeramente haré una lista de los elementos que tenemos:

1- Un servidor Debian Etch con dos tarjetas de red, eth0 (192.168.1.2) y eth1 (172.16.1.1).
2- Un router cuya ip es 192.168.1.1.
3- Una red interna cuya red es 172.16.1.0/24.

La red la organizaremos de esta forma:

1- La primera tarjeta de red del servidor (eth0) la conectaremos al router.
2- La segunda tarjeta de red del servidor (eth1) la conectaremos al switch que nos une a la red interna.

Necesitamos configurar un Sistema de Nombres de Dominio para resolver los nombres de las maquinas de nuestra red, y la que no este en nuestra red, se la enviaremos a dos servidores padres (192.168.222.2 y 192.168.222.4).

Para ello debemos instalar el paquete bind9:
# apt-get install bind9
Una vez instalado, comenzamos la configuración de nuestro DNS.

El DNS en Debian consta de los ficheros de configuración, mas los ficheros de las zonas, los ficheros de configuración los encontraremos en (/etc/bind) y los de las zonas los pondremos en (/var/cache/bind).

Suponiendo que nuestro servidor se llama servidor.midominio.ccom, comenzamos a crear nuestra zona (midominio.ccom). Para ello editamos el fichero /etc/bind/named.conf.local

nano /etc/bind/named.conf.local

/************************** Inicio del FICHERO!
view “1″ {
//Zona midominio.com
match-clients { 172.16.1.0/24; 192.168.1.2; };
zone “midominio.com” {
type master;
file “/var/cache/bind/midominio.com-interna”;
};
//Zona inversa para la RED 172.16.1.0/24
zone “1.16.172.in-addr.arpa” {
type master;
file “/var/cache/bind/1.16.172.in-addr.arpa”;
};
};

view “2″ {
//Zona midominio.com
match-clients { any; };
zone “midominio.com” {
type master;
file “/var/cache/bind/midominio.com-externa”;
allow-transfer { 192.168.222.2; 192.168.222.4; };
notify yes;
};
//Zona inversa para la RED 192.168.1.0/30
zone “1.168.192.in-addr.arpa” {
type master;
file “/var/cache/bind/1.168.192.in-addr.arpa”;
allow-transfer { 192.168.222.2; 192.168.222.4; };
notify yes;
};
};
/**************************** FIN DEL FICHERO

Nota: Las lineas con los * no se incluyen, solo las usare para delimitar la explicación con los archivos de configuración.

Ahora agregaremos lo siguiente en /etc/bind/named.conf.options

nano /etc/bind/named.conf.options

Agregar:

forwarders { 192.168.222.2; 192.168.222.4; };

Ahora vamos para los ficheros de las zonas, como como se vio en el fichero de configuración radica en /var/cache/bind. Pero esos ficheros no existen, tenemos que crearlos nosotros, para ello los creamos de esta manera:

touch /var/cache/bind/midominio.com-interna
touch /var/cache/bind/midominio.com-externa
touch /var/cache/bind/1.168.192.in-addr.arpa
touch /var/cache/bind/1.16.172.in-addr.arpa

Comenzamos a editar el primer fichero (midominio.com-interna) que corresponde a las maquinas de mi red interna, o sea, en este fichero incluyo solo las maquinas de mi red interna.

nano /var/cache/bind/midominio.com-interna

/************************** INICIO DEL FICHERO
$ORIGIN midominio.com.
$TTL 86400
@ 21600 IN SOA servidor.midominio.com.
root.midominio.com. ( 2008021702 3600 3600 3600000 86400 )
21600 IN NS servidor.midominio.com.

servidor 21600 IN A 172.16.1.1
maq1 21600 IN A 172.16.1.11
maq2 21600 IN A 172.16.1.12
maq3 21600 IN A 172.16.1.13

mail 21600 IN CNAME servidor
www 21600 IN CNAME servidor
proxy 21600 IN CNAME servidor
ftp 21600 IN CNAME servidor
jabber 21600 IN CNAME servidor

/************************** FIN DEL FICHERO

Nota: En este ejemplo supuse que mi red interna solo contaba con un servidor y tres estaciones de trabajo. Ojo con esto, en la red interna tambien debe aparecer el servidor. Los demas registros de tipo CNAME son alias que ponemos al servidor, para los servicios web y ftp, entre otros.

Ahora vamos al segundo fichero:

nano /var/cache/bind/midominio.com-externa

/************************ INICIO DEL FICHERO
$ORIGIN midominio.com.
$TTL 86400
@ 21600 IN SOA servidor.midominio.com.
root.midominio.com. ( 2008021702 3600 3600 3600000 86400 )
21600 IN NS servidor.midominio.com.

router 21600 IN A 192.168.1.1
servidor 21600 IN A 192.168.1.2

correo 21600 IN CNAME servidor
www 21600 IN CNAME servidor
proxy 21600 IN CNAME servidor
ftp 21600 IN CNAME servidor
jabber 21600 IN CNAME servidor

/************************ FIN DEL FICHERO

Vamos al tercer fichero de configuracion de la zona:

nano /var/cache/bind/1.16.172.in-addr.arpa

/************************ INICIO DEL FICHERO
$ttl 86400
@ IN SOA servidor.midominio.com.
root.midominio.com. (
2008021702
3600
3600
604800
1200 )
@ IN NS servidor.midominio.com.
1 IN PTR servidor.midominio.com.
11 IN PTR maq1.midominio.com.
12 IN PTR maq2.midominio.com.
13 IN PTR maq3.midominio.com.

/************************ FIN DEL FICHERO

Y finalmente editamos el ultimo fichero:

nano /var/cache/bind/1.168.192.in-addr.arpa

/************************ INICIO DEL FICHERO
$ttl 86400
@ IN SOA servidor.midominio.com.
root.midominio.com. (
2008021701
3600
3600
604800
1200 )
@ IN NS servidor.midominio.com.
1 IN PTR router.midominio.com.
2 IN PTR servidor.midominio.com.

/************************ FIN DEL FICHERO

Y ya terminamos de configurar nuestra zona, es necesario saber que cada fichero de configuración tiene una numeración, para ello nos fijamos en el primer número en este caso coincide con “2008021701″, esto quiere que la última modificación que se le hizo al DNS fue el 17 de febrero de 2008. Para adaptarlo al nuestro escribimos el número segun la fecha que es, por ejemplo, si es 16 de julio de 2008, seria “2008071601″, los dos últimos digitos “01″ es la cantidad de moficicaciones que se hizo en el día, si en ese mismo dia hacemos otra modificación entonces escribimos “02″ al final, o sea “2008071602″.

Finalmente reiniciamos bind, /etc/init.d/bind9 restart

Suerte!!!


Mi primer comentario

mayo 27, 2008

Hola, este es mi primer comentario, espero con esto aumentar la cultura del Software Libre.

Saludos!


Seguir

Get every new post delivered to your Inbox.