Está en la página 1de 10

MEMORIA:

INSTALACIÓN
DE
LINUX
TERMINAL
SERVER

Cédric Marco Detchart


Eneko Vélez Yoldi
INTRODUCCIÓN

LTSP permite una manera sencilla de utilizar clientes de bajo coste, bien en modo
gráfico o en modo texto, basados en terminales en un servidor GNU/Linux server.

En una configuración tradicional de oficina, existen PC´s de una potencia


relativamente alta basados en Intel diseminados en cada lugar de trabajo, contando cada
uno con una cantidad considerable de espacio en el disco duro. Los usuarios tienden a
almacenar sus propios datos en los sistemas de almacenamiento locales, guardando los
datos en copias de seguridad raramente(incluso hay casos en los que no se realizan
backups nunca). Realmente, no tiene demasiado sentido mantener un PC completo en
cada lugar de trabajo.

Afortunadamente, existe otro camino . Con LTSP, puedes reutilizar material,


quitando el disco duro, la disquetera y la unidad de CD-Rom, añadiendo una tarjeta de red
que tenga posibilidad de arrancar a través de la red. Muchas de estas tarjetas de red
tienen incorporados puertos bootrom, esperando a ser instalados.

Durante el inicio del sistema, el cliente sin discos creado obtiene la información
sobre las IP´s y un kernel del servidor, para montar despues el sistema de archivos del
root vía NFS.

Los clientes pueden ser modificados de tres maneras diferentes:

Interfaz gráfica X Window:

Utilizando X Windows, el cliente puede ser utilizado para acceder a cualquier


aplicación del servidor, o de otros servidores dentro de la red.

-1-
Sesiones telnet en texto

Línea de comandos:

El cliente puede ser configurado para entrar directamente en una shell


directamente en modo consola local. Esto es particularmente útil cuando el X Window o el
NFS fallan.

Lo realmente interesante de LTS es que puedes tener muchos clientes soportados


por un único servidor GNU/Linux. La siguiente pregunta es:¿Cuántos clientes podremos
instalar? El número de clientes soportados dependerá, por una parte, del tamaño del
servidor y por otra de las aplicaciones que serán utilizadas.

Para hacernos una idea, no es raro tener 50 clientes, todos ejecutando Mozilla y
OpenOffice en un Dual P4-2.4 con 4 gigas de RAM.

REQUISITOS
Hay cuatro servicios básicos que necesitamos para iniciar un cliente LTSP: DHCP,
TFTP,NFS y XDMCP.

INSTALANDO LTSP EN EL SERVIDOR


Aunque LTSP es una distribución por si sola, que se suele instalar por encima del
SO que tengamos, normalmente Linux, aunque existen ciertas versiones de Windows que
pueden ser configuradas como un servidor LTSP.

Las fases de instalación de LTSP son:

Instalaciónde las utilidades LTSP.


Instalaciónde los paquetes cliente.
Configuración de los servicios requeridos por LTSP.

INSTALACIÓN DE LAS UTILIDADES LTSP

LTSP cuenta con un paquete de utilidades para instarlar y manejar los paquetes de
cliente y para configurar los servicios del LTSP.

La utilidad de administración es ltspadmin, mientras que la utilidad de


configuración es ltspcfg . Ambas utilidades están en el paquete ltsp-utils, así que lo
descargamos y lo instalamos (versión 0.25):

dpkg -i ltsp-utils_0.25_all.deb

INSTALANDO LOS PAQUETES DE INSTALACIÓN DE LTSP

Una vez la instalación de ltsp-utils haya acabado, podemos ejecutar el comando


ltspadmin. Esta utilidad se utiliza para controlar los paquetes de cliente de LTSP.

Una vez ejecutamos ltspadmin , veremos lo siguiente:

-2-
Elegimos “Install/Update” .Si es la primera vez que instalamos la utilidad, aparecerá
la pantalla de configuración del display:

En esta pantalla, podemos establecer valores que el instalador usará para


descargar e instalar los paquetes LTSP.

Esos valores son:

• Where to retrieve packages from: Es una URL que apunta al lugar donde esté
depositado el paquete. Normalmente, suele ser la web oficial. Si, por contra,
queremos instalar desde un sistema de archivos local, usaremos el prefijo file: por

-3-
ejemplo, file:///mnt/cdrom (Cuidado con los 3 slash).

• In which directory would you like to place the LTSP client tree?: Directorio del
servidor, donde queremos poner el árbol de clientes de LTSP. Debería ser
/opt/ltsp. Si el directorio no existe aún, será creado. Dentro de este directorio serán
creados los root de cada arquitectura.

• HTTP PROXY: Si el acceso web debe ser por proxy y el servidor está protegido
con un sistema firewall, puedes configurar el proxy en esta opción. Lo dejamos en
none.

• FTP PROXY: Para utilizar paquetes localizados en un FTP. Funciona de manera


análoga al HTTP PROXY. También lo dejamos en none.

Una vez hayamos pasado la pantalla de configuración, el instalador consultará el


directorio de paquetes, mostrando aquellos que están disponibles:

-4-
CONFIGURANDO SERVICIOS
Ejecutando ltspcfg , escaneará el servidor, para ver qué está instalado y
funcionando en este momento:

PANTALLA PRINCIPAL
Esta pantalla muestra todas las opciones posibles al iniciar nuestro sistema.Para
configurar todas las cosas necesarias, pulsamos 'C'.

 Runlevel: Es una variable usada por init. En sistemas Linux y Unix, en cualquier tiempo
dado, al sistema se le está supuesto un “Runlevel” específico. Los niveles 2 y 3 se suelen
utilizar para el modo texto. El nivel 5 , por contra, señala que el sistema está en modo
gráfico. Lo establecemos a nivel 5.

 Interface selection: En sistemas con interfaces de servidores múltiples, tendremos que


especificar a cuál de ellas se conectarán los clientes. Seleccionando la interfaz, la
instalación creará otros archivos de configuración tales como dhcpd.conf o los archivos de
/etc/exports.

 DHCP Configuration: El DHCP también ha de ser configurado. Los campos son: fixed-
address,filename, subnet-mask,broadcast-address y root-path.Seleccionando este menú,
podremos crear el archivo dhcpd y activarlo.

 TFTP : Utilidad que permite descargar el Kernel de Linux.

 Portmapper: Lo usan los servicios RPC.

-5-
 NFS Configuration: LTSP necesita NFS porque los clientes montan sus sistemas de
archivos root desde el servidor.Este menú se encarga de instalarlo.

 XDMCP: “X Display Manager Control Protocol”

Create /etc/hosts entries: Algunos servicios necesitan ser capaces de mapear la


dirección IP de un cliente a un host. La manera más simple es el archivo /etc/hosts.

Create the /etc/exports file : Archivo que utiliza NFS para determinar que directorios
pueden ser montadas por máquinas remotas .

Create the lts.conf file: La configuración de cada cliente está controlada por este archivo.
Para clientes modernos que cuenten con un bus PCI, no necesitariamos ninguna
modificación en este archivo. De todas, formas, como el archivo debe existir, este menú lo
crea.

CONFIGURACIÓN DE CLIENTES
Ahora debemos configurar nuestro cliente para las opciones concretas que deseamos.Los
archivos que debemos modificar son:/etc/dhcpd.conf , /etc/hosts y
/opt/ltsp/i386/etc/lts.conf:

Antes de nada, tenemos que desactivar el firewall para que los puertos estén
completamente abiertos. Para ello,vamos a ”K”-->Sistema-->Administrador de paquetes
adept. Aquí, buscamos iptables y lo desinstalamos.

DHCP
El cliente obtendrá la siguiente información del servidor DHCP:

Dirección IP
Hostname
Dirección IP del servidor.
Nombre de la ruta del kernel a cargar.
Ruta del servidor y del directorio en el que montar el sistema root.

Para configurar dhcp.conf, hemos cogido el archivo dhcpd.conf.sample que crea e l


ltsp al instalarlo y lo editamos para nuestro supuesto.

Este es el que nos da de ejemplo:

#dhcpd.conf

ddns-update-style ad-hoc;

option subnet-mask 255.255.0.0;


option broadcast-address 192.168.255.255;
option routers 192.168.1.25;
option domain-name-servers 192.168.1.25;
option domain-name "your_domain.org"; # You really should fix this
option option-128 code 128 = string;
option option-129 code 129 = text;
-6-
get-lease-hostnames true;

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

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-1/pxelinux.0";
}
else{
filename "/tftpboot/lts/vmlinuz-2.6.16.1-ltsp-1";
}
}
#
# 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";

Y el modificado:

dns-update-style none;
use-host-decl-names on;
default-lease-time 21600;
max-lease-time 43200;

subnet 192.168.1.0 netmask 255.255.255.0 {

option root-path "192.168.1.1:/opt/ltsp/i386"; #Directorio de inicio


range dynamic-bootp 192.168.1.128 192.168.1.254; #Rango de ip's dinámicas
next-server 192.168.1.1; #IP del servidor PXE y tftp
if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
filename "/tftpboot/lts/2.6.16.1-ltsp-1/pxelinux.0"; #Fichero para PXE
}
else{
filename "/tftpboot/lts/vmlinuz-2.6.16.1-ltsp-1"; #Fichero para Etherboot
}
}

host ws004 #nombre del host cliente{


hardware ethernet 00:16:D4:30:E7:D4; #MAC cliente
fixed-address 192.168.1.4; #IP que asignamos al cliente
}

-7-
/etc/hosts

Normalmente, los ordenadores se comunican correctamente utilizando solo


direcciones IP. El problema viene de la necesidad de poner nombres a los ordenadores,
para no olvidar los números de las IP´s. Aquí es donde entran en juego o bien las DNS o
/etc/hosts. Normalmente, este mapeado de IP´s a hostnames no es imprescindible, con la
excepción del entorno LTSP, que nos ocupa. Es imprescindible porque sin él, NFS te dará
errores de permisiones cuando el cliente quiera montar el sistema root.

Aparte de problemas relacionados con NFS, si el cliente no está listado en


/etc/hosts, también podríamos tenerlos con GDM o KDM.

/opt/ltsp/i386/etc/lts.conf
La sintaxis del fichero lts.conf cuenta con dos partes fundamentales, una, llamada
default, en la que encontramos todas las opciones genéricas que hemos explicado antes y
otra parte en la que encontramos todos los clientes concretos uno a uno. En nuestro caso:

# Copyright (c) 2003 by James A. McQuillan (McQuillan Systems, LLC)


#
# This software is licensed under the Gnu General Public License.
# The full text of which can be found at http://www.LTSP.org/license.txt
#
#
# Config file for the Linux Terminal Server Project (www.ltsp.org)
#

[Default]
SERVER = 192.168.1.100
XSERVER = auto
X_MOUSE_PROTOCOL = "PS/2"
X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 3
USE_XFS =N
SCREEN_01 = startx

[ws017]
USE_NFS_SWAP =Y
SWAPFILE_SIZE = 48m
RUNLEVEL =5

-8-
INICIANDO EL CLIENTE
LTSP puede integrar el kernel en memoria de muchas maneras, por ejemplo con
Etherboot,Netboot,PXE y por disquete. En nuestro caso, utilizaremos PXE.

PXE

Si tu tarjeta de red tiene el PXE integrado, puedes utilizarlo para cargar el kernel de
Linux.PXE es una tecnología de inicio similar a otros como Etherboot o Netboot.

PXE cuenta con una limitación: solo puede cargar archivos de tamaño menor o
igual a 32kb.El kernel de Linux es un poco mayor que eso, así que no podemos cargarlo
directamente. Tenemos que cargar algo conocido como NBP o 'Network Bootstrap
Program'.

LTSP incluye pxelinux.0 NBP y el fichero de configuración que necesitamos y una


imagen ramdisk inicial.

La manera en que trabaja es :

 PXE inicializa el la tarjeta de red y manda una solicitud a DHCP.


 DHCP responde con una dirección IP y el nombre del NBP a cargar.
 PXE descarga el NBP, lo coloca en memoria y empieza a ejecutarlo.
 NBP utiliza tftp para descargar el archivo de configuración desde el servidor.
 El archivo de configuración incluye el nombre del kernel, el nombre del archivo ramdisk
inicial y opciones para el kernel, una vez esté instalado. He aquí un ejemplo de ello:

prompt=0
label linux
kernel bzImage-2.4.24-ltsp-4
append init=/linuxrc rw root=/dev/ram0 initrd=initrd-2.4.24-ltsp-4.gz

 NBP vuelve a utilizar tftp para descargar el kernel de Linux y initrd(el ramdisk inicial).
 Se le pasa el control al kernel de Linux, lo inicia, monta initrd y continua con el inicio del
cliente Thin.

-9-