9/09/2007


Howto LTSP en Debian Etch 4 !


Howto Ltsp en Debian etch 4.0

Bueno esta guia es para aquellas personas que quieran configurar un servidor ltsp como dice el titulo obvio =),en debian etch(no le hagan caso a la imagen de edubuntu).
Para el que no tenga idea lo que es ltsp, les explico:

Linux Terminal Server Project o LTSP son un conjunto de aplicaciones servidores que proporcionan la capacidad de ejecutar Linux en computadoras de pocas prestaciones de velocidad o computadoras de bajo costo, permitiendo reutilizar equipos que actualmente resultan obsoletos debido a los altos requerimientos que piden los sistemas operativos. La última versión estable es la 4.2.2 (6 de julio del 2006).

El sistema de funcionamiento del LTSP consiste en repartir por medio de la red el núcleo de Linux que es ejecutado por los clientes y que posteriormente ejecutaran secuencias de scripts típicos de una mini distribución. Los clientes podrán acceder a las aplicaciones por medio de una consola textual o por un servidor gráfico que se comparte utilizando el protocolo XDMCP.

Actualmente uno de los campos donde se utiliza bastante LTSP es en la educación, debido a sus bajo costo de implantación que suele tener.

segun Wikipedia®.

La cuestion es que por medio de la red, boteas a las maquinas que son parte de ella, para que sirve, bueno para poder correr aplicaciones en maquinas con pocos recursos 64 mb de ram,procesador de 200 mhz y sin disco rigido =), entonces todo se ejecuta en el servidor, administrando la cuota de disco, usuarios y recursos, controlas totalmente la red =). Podemos decir que no solo se limita a algo economico =).
Bueno empecemos primero hay que hacer un recuento del hardware que tenemos en la red =). Averiguamos el tipo de placa y lo anotamos en un papel, luego buscamos un disquete o un cdvirgen lo que quieran y se bajan la imagen de arranque para su placa. Muchas veces las maquinas nuevas botean solas pero por las moscas =P.
Buscamos en Rom-o-matic y elegimos la placa, si no sabes como se llama el modulo de tu placa entra a Nombre de Modulos de Placas, parece una idiotes pero yo no veia el link ja!.
Empezemos con el servidor, yo voy a usar debian etch 4.0, con dos placas de red, una para la red interna y otra para internet.Imagino que tenemos debian instalado de 0, sin ningun servidor X como Xorg o algun gestor de ventanas o de escritorio(kde, gnome, lo que sea), cualquier cosa en un post posterior explico como instalar debian etch en modo texto, es una tonteria pero el que recien se inicia es medio duro =S.Basta de sermones y empecemos:

$su root //pasamos a root
password: //el de root
$apt-get update
#apt-get upgrade
//actualizamos paquetes
#apt-get install x-window-system-core gdm xfce4 iceweasel

/* x-windows-system-core es el servidor grafico, gdm es el login de usuarios en modo grafico y permite conexiones remota x eso hay que instalarlo, xfce4 es el administrador de escritorio que voy a instalar, aunque prefiero ventanitas fluxbox pero necesita un tunning je,iceweasel es firefox pero para debian, tiene cambiado de nombre por problemas de licencia, tmb les recomiendo yakuake que es una consola linux tipo quake o counter-strike que la bajas y subis con una tecla =) */

#apt-get install dhcp3-server atftpd libwww-perl nfs-server


/*dhcp3-server es el servidor dhcp(asigna ip automaticamente),atfpd(este servidor se encarga de transferir archivos, en este caso transfiere el kernel a cada maquina),lib son librerias*/
/*nfs-server servidor que comparte directorios y archivos tipo smb pero para *nix*/

#apt-get install ltsp-utils
//el administrador de paquetes y conf de ltsp

#ltspadmin //iniciamos el programita

Luego en el programita nos van a aparecer un menu y varias opciones para elegir:
"Configure the installer options" //entramos con enter y dejamos todo en default

"Install/Update ltsp packages"
/*En el seleccionaremos todos los paquetes y presionamos "Q", aproximadamente descargara 120 mb en total,ni se atrevan con dialup =P */

Luego ingresamos en:
"Configure LTSP" y presioname la tecla 'S" para ver el estado de los servicios, posteriormente los configuramos manualmente presionamos la "C"
Presionamos:
"1" y nos preguntara el nivel de inicio elegimos "2", nos quedaria runlevel=2;
"2" elegimos la placa de red que esta conectada a la red interna y por la cual el servidor dhcp entregara las ip, en mi caso era la eth1 entonces puse "eth1";
"3" Creamos el archivo de configuracion, mas adelante mostrare el mio para que lo tengan de ejemplo.
"4" al "11" presionamos la tecla "y" para activar los servicios.
Presionamos "R" y volvemos al menu, luego la "q" y lo quitamos.


**Configurando las placas desde el arranque**
Con su editor favorito modifiquen el siguiente archivo, yo lo hago con el editor vim.

# vim /etc/network/interfaces//le mostrara un archivo de texto, agreguen esto
##Copiar##
auto eth1 #mi placa, si la suya es otra lo modifican
iface eth1 inet static #estamos diciendo que la ip en la placa eth1 sea estatica.
address 192.168.0.1 # la ip que le asignamos
netmask 255.255.255.0 #la mascara de subred
gateway 192.168.0.1 #la misma que la ip.
##fin##
#/etc/init.d/networking restart //reiniciamos
Reiniciamos la maquina: //para que se aplique todos los cambios
#shutdown -r now

Ingresamos de nuevo al ltspadmin
#ltspadmin
//como root por supuesto,entramos en la opcion "Configure LTSP" y presionamos la "S" y vemos que esta funcionando. si algo dice que no en running quiere decir que no arranco =S.
Con esto ya tendrian que arrancar las maquinas como dicen los tutoriales, obviamente que a mi no me arranco de una =).

**Configurando el servidor dhcp3**
#vim /etc/dhcp3/dhcp.conf //este es mi archivo

# dhcpd.conf

ddns-update-style ad-hoc;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1;
option domain-name "192.168.0.1";
option option-128 code 128 = string;
option option-129 code 129 = text;
get-lease-hostnames true;

next-server 192.168.0.1;
option root-path "192.168.0.1:/opt/ltsp/i386";

#Configuracion basica
#subnet 192.168.0.0 netmask 255.255.255.0 {
# range 192.168.0.100 192.168.0.199;
# if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
# filename "/tftpboot/lts/2.6.16.1-ltsp-2/pxelinux.0";
# }
# else{
# filename "/tftpboot/lts/vmlinuz-2.6.16.1-ltsp-2";
# }
#}


subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.60;
}
group {
option log-servers 192.168.0.1;
option root-path "192.168.0.1:/opt/ltsp/i386";
next-server 192.168.0.1;

host vieja{
hardware ethernet 00:A0:24:0D:2D:F8;
fixed-address 192.168.0.40;
filename "/tftpboot/lts/vmlinuz-2.6.16.1-ltsp-2";
option option-128 e4:45:74:68:00:00; # NO es la direccion mac, sino que xq es la placa es ISA.
option option-129 "NIC=3c509";
}
host nueva{
hardware ethernet 00:11:25:4D:67:FB;
fixed-address 192.168.0.35;
filename "/tftpboot/lts/vmlinuz-2.6.16.1-ltsp-2";
option option-129 "NIC=eepro100-1032";
}

}
#
# If you need to pass parameters on the kernel command line, you can
# do it with option-129. In order for Etherboot to look at option-129,
# you MUST have option-128 set to a specific value. The value is a
# special Etherboot signature of 'e4:45:74:68:00:00'.
#
# Add these two lines to the host entry that needs kernel parameters
#
# option option-128 e4:45:74:68:00:00; # NOT a mac address
# option option-129 "NIC=ne IO=0x300";
#

Como veran tengo dos maquinas, maquina nueva y maquina vieja en ellas especifico:

host nueva{ //el nombre en este caso nueva
hardware ethernet 00:11:25:4D:67:FB; //pongan la mac de la placa de la pc
fixed-address 192.168.0.35; //pongan la ip de la maquina
filename "/tftpboot/lts/vmlinuz-2.6.16.1-ltsp-2"; // la dire del kernel ltsp
option option-128 e4:45:74:68:00:00;/*solo si tienen una placa isa agreguen esta linea*/
option option-129 "NIC=eepro100-1032"; /*es el nombre del modulo de la placa, en este caso eepro100-1032*/
y cierren }

bueno espero que les haya servido este mini tuto de ltsp,si tiene dudas no dudan en preguntar, yo no soy ningun experto pero quizas pueda ayudar, yo tengo mis problemas que los ire solucionando a medida que siga aprendiendo sobre este interesante tema!
Bueno si se les presenta algun problema de conectividad instalen algun sniffer como wireshark ex ethereal:

#apt-get install wireshark

Con el se va a dar cuenta de varios problemas basicos ej:
**Problemas Basicos** =P
Si cuando inician una maquina le muestra kernel panic y al snifear los paquetes
tira error de transferencia aftp, podemos identificarlo con el tipo de protocolo que es tftp, seguramente el directorio en dhcp.conf está equivocado:
Yo utilizo: filename "/tftpboot/lts/2.6.16.1-ltsp-2/pxelinux.0";
En otras ocaciones les indica "/tftpboot/ltsp-4.2/" y es erroneo.
Otro problema es del protocolo nfs, similar al error anterior
fijense en el archivo /etc/exports y vean que la ruta que comparte este todo OK.
Saludos a todos y mucha suerte! =).

4 comentarios:

Gustavo said...

Hola. Te queria comentar que hay dos problemas con respecto a los pasos de tu howto: el primero y mas sencillo, el paquete se llama atftpd (esta mal el nombre en la pagina). El segundo, que ltspadmin arroja un error sobre que no encuentra un termcap valido (no vi muchas soluciones a esto en los foros y me imagino que es algo bastante trivial, sin embargo no lo pude resolver aun).
Saludos y gracias por compartir tu howto.

braian said...

gracias gustavo, el error fue solucionado y con respecto al error en ltspadmin es muy raro, quizas uses otra distro, porque en debian etch seguí estos pasos y no tuve problemas. Gracias por las sugerencias

daniel said...

Hola, queria preguntarte sobre la arquitectura, para saber como conectaste los clientes con el servidor.
Como bootean tus clientes, con la placa de red, un disco u otra cosa...

Saludos Daniel

Braian said...

no comprendo tu pregunta daniel, si como dice el articulo es obvio que bootean a traves de la placa de red, pero si la misma no posee booteo, sera necesario bajar el modulo en un cd o disquete en la pagina de rom o matic. Saludos!