"LTSP Mini-COMO"

Anuncio
LTSP - Minicomo
Terminales Linux de bajo costo
A. Quesada, pLin_io@gulic.org
J. Torres, aplatanat@gulic.org
A. Morales, amd77@gulic.org
Índice
1. Introducción
1
2. Configuración de las terminales
2.1. Arranque de los terminales . . . . . . . . . . . . . . . . . . . . .
2.2. Comprobacion de la red . . . . . . . . . . . . . . . . . . . . . . .
2
2
3
3. Configuración del servidor
3.1. Servidor. Requisitos previos .
3.2. Servidor. Instalación de LSTP
3.3. Servidor. Configuración . . . .
3.3.1. El archivo dhcpd.conf
3.3.2. El archivo host . . . .
3.3.3. El archivo lts.conf . .
3.3.4. Uso de XFS . . . . . .
3.4. Para muestra un ejemplo . . .
4
4
5
7
7
8
9
9
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4. Acerca de este mini-como
10
Resumen
Se describe la instalación básica de una red basada en LTSP (Linux Terminal Server Project), que persigue la utilización de ordenadores antiguos
o de bajo costo como terminales gráficos mientras que las aplicaciones se
ejecutan en un servidor.
1.
Introducción
La instalación de una red no tiene por qué suponer un gran desembolso de
dinero para los ordenadores clientes, podemos aprovechar los viejos i486/66 con
16 Mb de RAM como terminales gráficos. Sólo será necesario que dispongan de
tarjeta de red, pudiendo prescindir de unidades de disco duro, disqueteras o cd-rom.
1
2
CONFIGURACIÓN DE LAS TERMINALES
Ordenadores mejor equipados no tienen por qué mostrar necesariamente un mayor
rendimiento, teniendo en cuenta que las aplicaciones son ejecutadas en el servidor.
Los requerimientos del servidor dependerán del número de terminales que
atenderán, en este caso se describe los pasos seguidos en un PII/266 con 256 Mb
de RAM y HD de 6,4 Mb, utilizando Linux-Mandrake 8.1.
En mi centro hay un aula dotada con 486 con unos 16 Mb de RAM y funcionando con variantes WIN95-98 instalados en HD de 500 Mb, el mantenimiento es
tedioso pues carecen de CD-ROM.
Ahora planeo arrancar mi sistema favorito LINUX y obtener un login KDM
en sólo un minuto sin interferir con ningún compañero que prefiera el entorno propietario, y lo que es mejor, no dependeré del estado o configuración de cada PC,
ya que arrancaré mediante disquette.
Este documento no pretende ser una guía exhaustiva, para ello puede dirigirse
a la página oficial de LTSP en http://www.ltsp.org donde encotrará todo lo que
necesita, así como una estupenda Guía de instalación en español, traducida por
Dario Rapisardi.
2.
2.1.
Configuración de las terminales
Arranque de los terminales
Antes de tocar nada en nuestros equipos, preparemos el arranque de los terminales, una vez comprobemos que realizan petición a la red tendremos casi el 50 %
del trabajo realizado.
Las posibilidades de arranque podrían ser las siguientes:
Arranque desde la tarjeta de red.
Las tarjetas necesitan EPROM, se pueden comprar y grabarlas.
Arranque desde disquette.
Es la solución que adoptaremos por ser la más sencilla.
Arranque desde el HD
• Configurar Lilo.
• Usar loadlin. Configurar un Config.sys bajo MS-DOS/WIN.
Para nuestro ensayo usaremos el arranque desde disquette, ya que es muy sencillo de configurar y no se precisa ningún equipo especial. En primer lugar identificaremos el chip que usa nuestra tarjeta de red para procurarnos la ROM apropiada en http://www.rom-o-matic.net, teniendo en cuenta seleccionar Floppy
Bootable ROM Image (.lzdsk).
Una vez leída la ROM, la grabaremos en un disquette formateado; para una
tarjeta PCI basada en realtek 8139 usaríamos:
2
A.Quesada, J.Torres, A.Morales - GULIC
2
CONFIGURACIÓN DE LAS TERMINALES
# dd if=eb-5.0.5-rtl8139.lzdsk of=/dev/fd0
Después de asegurarnos que la BIOS de nuestra terminal está configurada para
arrancar por defecto desde la unidad A, introducimos nuestro disquette de inicio
recién acabado, debiendo obtener algo parecido a esto:
.000021.0000 done
ROM segment 0X800 leng 0X4000 reloc 0x9400
Etherboot 5.0.5 (GPL) Tagged ELF for [RTL8139]
Boot from (N)etwork or from (L)ocal? {\bf N}
Found Realtek 8139 at 0XFC00, ROM address 0X0000
Probing .... [RTL8139] - ioaddr 0XFC00 addr 00:48:54:55:45:F0
10 Mbps half-duplex
Searching for server (DHCP) ...
Enhorabuena, nuestra tarjeta funciona y está buscando un servidor DHCP para
configurar la red.
2.2.
Comprobacion de la red
Es el momento de comprobar que la petición de DHCP llega al servidor, aunque
no hayamos tocado nada en él. Para monitorizar los paquetes entrantes provenientes de los terminales, necesitamos tener instalados los siguientes programas en el
servidor:
tcpdump
En caso de no ser así, procederemos a su instalación tecleando:
# apt-get install tcpdump (en Debian)
# urpmi tcpdump
(en Mandrake)
Lanzamos el siguiente proceso para ejecutar la monitorización:
# tcpdump -qte broadcast and port bootpc > /tmp/mac.lis
En este momento debemos arrancar los terminales, si no lo hemos hecho (si ya
están arrancados solo hay que esperar un poco). Tras esperar un momento a que las
peticiones de búsqueda de los terminales sean enviadas, matamos el tcpdump con
CTRL-C.
El contenido de /tmp/mac.lis debe ser algo como esto:
0:48:54:55:45:f0
0:48:54:55:45:f0
0:48:54:55:45:f0
0:48:54:55:45:f0
(...)
Broadcast
Broadcast
Broadcast
Broadcast
590:
590:
590:
590:
0.0.0.0.68
0.0.0.0.68
0.0.0.0.68
0.0.0.0.68
3
>
>
>
>
255.255.255.255.67:
255.255.255.255.67:
255.255.255.255.67:
255.255.255.255.67:
A.Quesada, J.Torres, A.Morales - GULIC
udp
udp
udp
udp
548
548
548
548
3
CONFIGURACIÓN DEL SERVIDOR
Los números XX:XX:XX:XX:XX:XX son las direcciones mac únicas de las
tarjetas de los terminales que necesitaremos más adelante. Para extraer las direcciones mac (las utilizaremos posteriormente) tecleamos el siguiente comando:
# cut -f1 -d’ ’ /tmp/mac.lis | sort | uniq
0:48:54:55:45:f0
También podríamos obtenerlas manualmente apuntando la salida por pantalla
del disquete de cada uno de los terminales. Con los comandos anteriores podemos
obtener las direcciones mac de todos los terminales de forma automática.
3.
Configuración del servidor
3.1.
Servidor. Requisitos previos
Nuestro servidor ha de estar configurado previamente con los siguientes servicios:
tftp-server en Mandrake y tftpd en Debian
dhcp-server en Mandrake y dhcp en Debian
nfs en Mandrake y nfs-kernel-server/nfs-user-server en Debian
En caso de no ser así, su instalación es trivial, procedamos en Mandrake:
# urpmi dhcp-server
# urpmi tftp-server
# urpmi nfs-utils
Este último instalará además nfs-clients y portmap. Iniciamos los servicios
instalados:
#
#
#
#
service
service
service
service
dhcpd start
xinetd restart
portmap start
nfs start
Donde reinicamos el xinetd pues tftp server corre bajo xinetd. Para Debian el
procedimiento es similar en la instalación y los servicios Dquedan normalmente
iniciados al instalar.
# apt-get install tftpd
# apt-get install dhcp
# apt-get install nfs-kernel-server
4
A.Quesada, J.Torres, A.Morales - GULIC
3
CONFIGURACIÓN DEL SERVIDOR
Bajo Debian, el paquete nfs-kernel-server se diferencia del paquete nfs-user-server
en que en el primer caso el servidor nfs utiliza soporte compilado en el núcleo
mientras que el segundo implementa todo en espacio de usuario. En nuestro caso hemos elegido el primero, pues es más eficiente que el segundo, pero debemos
recordar que necesita que el núcleo tenga el siguiente soporte activado:
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
3.2.
Servidor. Instalación de LSTP
Nos vamos a la web principal de LTSP http://www.ltsp.org y en la sección
Download buscamos la última versión estable en formato .rpm si usamos Mandrake/RedHat, .deb si usamos Debian o .tgz si las otras alternativas no nos funcionasen. Los paquetes que deberemos instalar son:
ltsp_core
ltsp_kernel
ltsp_x_core
ltsp_x_fonts (*)
La mayoría de las tarjetas de video están soportadas por esta configuración, que
en el momento de escribir este mini-como se basa en las XFree 4.1. En caso de que
comprobemos que la tarjeta gráfica de algún terminal no estuviese soportada por
esta configuración, podríamos bajarnos las versiones basadas en las XFree 3.3.6,
que constan de paquetes individuales para cada marca de tarjetas. Podemos instalar
tantos paquetes simultaneamente como necesitemos. Otra razón que puede afectar
nuestra decisión es el consumo de recursos: XFree 4.1 gasta generalmente más
recursos que su predecesor XFree 3.3.6, por lo que nos puede interesar utilizar
la version vieja para terminales poco potentes. En nuestra explicación, nosotros
seguiremos la descripción usando la versión estandar.
Para el caso de .rpm, después de bajarse los paquetes, se instalan así:
#
#
#
#
rpm
rpm
rpm
rpm
-i
-i
-i
-i
ltsp_core-3.0.7-0.i386.rpm
ltsp_kernel-3.0.5-0.i386.rpm
ltsp_x_core-3.0.4-0.i386.rpm
ltsp_x_fonts-3.0.0-0.i386.rpm
Para el caso de .deb, la forma de instalación es la siguiente:
#
#
#
#
dpkg
dpkg
dpkg
dpkg
-i
-i
-i
-i
ltsp-core-i386_3.0.7-1_all.deb
ltsp-kernel-2.4.19-i386_3.0.5-0_all.deb
ltsp-x-core-i386_3.0.4-0_all.deb
ltsp-x-fonts-i386_3.0.0-0_all.deb
5
A.Quesada, J.Torres, A.Morales - GULIC
3
CONFIGURACIÓN DEL SERVIDOR
En el caso de .tgz, se procede por cada paquete a la descompresión e instalación de esta forma:
# tar -xzvf ltsp_core-3.0.7-i386.tgz
# cd ltsp_core
# sh install.sh
# cd ..
(y repetir para todos los ficheros bajados)
Una vez instalados los paquetes, en todos los casos, tendremos que hacer lo
siguiente:
# cd /opt/ltsp/templates
# ./ltsp_initialize
Este comando en esta nueva versión es interactivo, y al ejecutarse, muestra una
lista de los archivos que piensa modificar, permitiéndote habilitar y deshabilitar
individualmente estas modificaciones.
The Linux Terminal Server Project (http://www.LTSP.org)
The following files will be created/modified:
/etc/X11/xdm/Xsetup_workstation
/etc/dhcpd.conf.example
/etc/exports
/etc/X11/gdm/gdm.conf
/etc/rc?.d/*gdm
/etc/X11/gdm/Init/Default
/etc/hosts.allow
/etc/inetd.conf
/etc/X11/kdm/Xservers
/etc/X11/xdm/ltsp.gif
/etc/rc?.d/*nfs-*
/etc/rc?.d/*portmap
/etc/init.d/sysklogd
/etc/X11/wdm/Xservers
/etc/X11/xdm/Xservers
Sets the logo of your login window
Example config file for dhcp
The config file for nfs
The config file for gdm
Startup links for the display manager
The gdm startup script
Config file for tcp wrappers
Config file for inetd
Config to kdm to launch local Xserver
The logo picture for your login screen
Startup links for nfs
Startup links for portmapper
Startup script for the sysklog daemon
Config to wdm to launch local Xserver
Config to xdm to launch local Xserver
Ready to apply the changes? ( R-Review, A-Apply, C-Cancel )
Conviene recordar que muchas de las modificaciones que va a hacer pueden
comprometer la seguridad del sistema pues sobreescribe con versiones predefinidas
de archivos que tal vez hayamos configurado nosotros. Si la máquina servidora
pretende dar tambien acceso a internet a los terminales, se debería hojear este script
6
A.Quesada, J.Torres, A.Morales - GULIC
[Y]
[Y]
[Y]
[Y]
[Y]
[Y]
[Y]
[Y]
[Y]
[Y]
[Y]
[Y]
[Y]
[Y]
[Y]
3
CONFIGURACIÓN DEL SERVIDOR
minuciosamente y entender todas las modificaciones que hace, e incluso mezclarlas
a mano con nuestras modificaciones.
En una primera aproximación, se puede ejecutar tal cual, con todas las opciones
activadas. El script nos modificará uno a uno cada archivo, guardando el fichero
original con extensión *.1. En caso de haber un error y encontrar un archivo que
no puede actualizar, nos informará del error y detendrá el script, dejando el proceso
a medias.
En este momento tenemos que volver a ejecutar ltsp_initialize, marcando los ficheros erroneos para que no los actualice y repetir el proceso. El script
nos guardará ahora las versiones antes de los cambios en ficheros con extension
*.2 y se volverá a detener cuando existan errores. Continuaremos ejecutando y
corrigiendo hasta que consigamos una ejecución limpia de todo el script. En este
punto ya podemos comprobar los cambios y deshacernos de los ficheros de copia
de seguridad que no necesitemos.
En esta configuración por defecto se asume lo siguiente:
La red que dispondrá los terminales es la 192.168.0.0/24, es decir, hasta
253 terminales disponibles desde 192.168.0.1 hasta 192.168.0.253 y el servidor en la direccion 192.168.0.254. Las ips de los clientes se asignarán de
forma dinámica (y se verá más adelante), pero la ip del servidor es estática. Para configurar esto habrá que consultar la distribución que estemos
usando, pues cada una lo hace de forma distinta (por ejemplo, editando
/etc/network/interfaces en Debian).
Al ejecutar ltsp_initialize también se configura un registro de sucesos
centralizado (via syslog) en la máquina del servidor, es decir, que las incidencias que ocurran en todos los clientes se registran en esta única máquina
para facilitar la tarea del administrador.
Los kernel que se enviarán a los terminales para que arranquen (provenientes
de instalar el paquete ltsp_kernel-* se colocan en /tftpboot/lts/. Hay
que configurar el dhcp para que los encuentre.
Los archivos que verán los terminales (provenientes de instalar el resto de
paquetes ltsp_*) se instalan en el directorio /opt/ltsp/i386, y ese directorio se configura para su exportación por NFS.
La dirección ip del servidor de nombres (DNS) que se le enviará a los clientes es la del servidor: 192.168.0.254. Entonces, o bien instalamos un servidor DNS en el servidor, o bien modificamos dhcpd.conf para asignarle a los
clientes un servidor DNS válido.
7
A.Quesada, J.Torres, A.Morales - GULIC
3
3.3.
3.3.1.
CONFIGURACIÓN DEL SERVIDOR
Servidor. Configuración
El archivo dhcpd.conf
La instalación de LTSP nos ha creado el archivo /etc/dhcpd.conf.example
que copiaremos o renombraremos a /etc/dhcpd.conf una vez ajustado a nuestras
características.
Si la versión de dhcpd es la 3.0, es obligatorio añadir la línea ddns-update-style
ad-hoc justo al principio del archivo. Si no, es opcional. Además, será necesario descomentar las líneas option option-128 code 128 = string y option
option-129 code 129 = text.
Es necesario asignar un nombre de host a cada terminal (en este ejemplo usaremos los nombres ws001, ws002, etc). Estos nombres junto con las direcciones ip
y direcciones mac se añaden en la parte final del archivo, repitiendo este conjunto
de sentencias para cada uno de los terminales que queramos activar. Por ejemplo:
host ws0013 {
hardware ethernet 00:E0:06:E8:00:84;
fixed-address 192.168.0.13;
filename "/lts/vmlinuz-2.4.18-ltsp-1";
option option-128 e4:45:74:68:00:00;
option option-129 "NIC=ne IO=0x300";
}
Donde:
host ws0013 nombre de host del terminal
hardware ethernet ... asignar la mac de cada tarjeta.
fixed address ... asignar la ip del terminal
filename ... nombre del kernel para este terminal (los kernels están situados en /tftpboot/lts/)
option option-128 ... Este parámetro es siempre el mismo. Es un código de 6 bytes que se envía al cliente y que indica el formato de los parámetros
siguientes. El código que requiere un cliente etherboot es el e4:45:74:68:00:00.
Como es igual para todos, se suele poner por fuera, en el grupo que contiene
a los terminales.
option option-129 ... Este parámetro sólo se usa en casos especiales,
e indica qué información externa queremos dar al núcleo cuando se ejecute.
Es solo la información imprescindible para la carga del núcleo y la configuración de la red, pues el resto de información se pasa a posteriori una vez
establecida la red. Normalmente es el modelo de tarjeta de red y el puerto
hardware i/o (las tarjetas ISA no suelen detectarse correctamente).
Guardamos como /etc/dhcp.conf y arrancamos el servicio dhcp.
8
A.Quesada, J.Torres, A.Morales - GULIC
3
3.3.2.
CONFIGURACIÓN DEL SERVIDOR
El archivo host
Es el momento de añadir las líneas de nuestros terminales a /etc/hosts, de
forma que se correspondan con los entrados en /etc/dhcp.conf:
192.168.0.1
192.168.0.2
192.168.0.3
(...)
3.3.3.
ws001
ws002
ws003
El archivo lts.conf
Ahora modificaremos el archivo /opt/ltsp/i386/etc/lts.conf, que guarda las configuraciones de nuestras terminales. Contiene una sección de configuración por defecto y luego secciones particulares para cada terminal. Si un terminal
no aparece, entonces adopta la configuración por defecto, por tanto, solo configuraremos aquellos terminales que posean una configuración diferente al resto.
Guardamos los cambios y ¡Ya está!
Hacemos un repaso a todo, comprobamos que los servicios están activos y
arrancamos el terminal. Si todo ha ido bien, tendremos nuestro login gráfico.
3.3.4.
Uso de XFS
El uso de XFS como servidor de fuentes puede resultar espectacular pero hay
que mencionar que carga mucho la red si el número de terminales es elevado. Se
describe como habilitarlo de manera general.
1.
Edita el archivo /etc/init.d/xfs y busca las líneas (21 y 42), en las que figura: daemon --check xfs su xfs -c \"xfs -port -1\" -s /bin/sh sólo se ha de cambiar el -1 por 7100 en ambos casos.
2.
Edita el archivo /etc/X11/XF86Config, busca la línea que pone FontPath "unix/:-1"
y cámbiala por FontPath "tcp/localhost:7100".
3.4.
Para muestra un ejemplo
Esta es mi configuración personalizada en /opt/ltsp/i386/etc/lts.conf
para un ws001, que se negaba a arrancar primero por falta de memoria (activamos
SWAP = Y), luego por el servidor X (XF86-SVGA) y la profundidad de colores
(8). Finalmente le añadí soporte de XFS
XSERVER
LOCAL_APPS
USE_NFS_SWAP
SWAPFILE_SIZE
USE_XFS
=
=
=
=
=
XF86_SVGA
N
Y
48m
Y
9
A.Quesada, J.Torres, A.Morales - GULIC
4
XkbModel
XkbLayout
X_MOUSE_PROTOCOL
X_MOUSE_DEVICE
RUNLEVEL
=
=
=
=
=
ACERCA DE ESTE MINI-COMO
pc105
es
"Microsoft"
"/dev/ttyS0"
5
El runlevel se puede ajustar a 3 (shell), 4 (sesión/es telnet) o 5 (X Window). Es
importante si tienes problemas con un login gráfico y deseas depurar problemas.
Recuerda que los programas corren en el servidor y que cualquier cambio que
hagas como root afectarán a la configuración general del sistema.
4.
Acerca de este mini-como
Para ayuda adicional puedes unirte al canal irc de ltsp, en esta dirección http://www.ltsp.org/irc.php
te aclaran como hacerlo.
Si deseas información más detallada o estar al día visita http://www.ltsp.org.
Este documento está basado en el original de Michael Habbe, habbe@ltsp.org
publicado en la web de LTSP y adaptado con la puesta en funcionamiento por parte
de quien escribe.
10
A.Quesada, J.Torres, A.Morales - GULIC
Descargar