[FrontPage] [TitleIndex] [WordIndex

This is a read-only archived version of wiki.centos.org

Clientes sin disco en RHEL/CentOS

<!> Nota: Este artículo parece haber sido copiado, pero no previsualizado, antes de ser enviado. Reporta un éxito (o fracaso) parcial. El Linux Terminal Server Project puede contar con un contenido similar, pero con contenido más pulido, y funciona correctamente con CentOS.

Actualmente el soporte brindado por CentOS 5 para system-config-netboot no es funcional. Existen dificultades técnicas en el paquete que impiden el uso fácil. Puede instalar el paquete de system-config-netboot para Fedora Core 6, y funcionará, para algunas definiciones de funcionar, pero existen muchas otras cuestiones.

Esta guía puede ayudarlo tratando de hacer funcionar las cosas en un ambiente CentOS 4, pero el autor inicial de este artículo no tuvo éxito aun luego de seguir dichas instrucciones.

El Linux Terminal Server Project tiene contenido similar, pero bajo una forma que funciona con CentOS perfectamente.

El autor original afirmaba que Red Hat planea un arreglo e incluir un system-config-netboot funcionando en el futuro, pero no se hace constar el horizonte de tiempo esperado para ello. Esto no debe impedir usar máquinas cargadas con CentOS 4 o 5 como clientes sin disco, sino que únicamente significaba que él tuvo problemas al usar un CentOS 5 como el servidor NFS de imágenes diskless. Note, también, que ésta es la opinión del autor original; un revisor posterior de esta página, RussHerrold, corre un tal sistema, con arreglos de etiquetado de SELinux en el servidor NFS, sin incidentes.

Esta guía le ayudará a preparar un servidor NFS para servir clientes sin disco en su red. Esto es útil si desea levantar estaciones de trabajo rápidamente, sin los problemas asociados a los discos rígidos, y sin preocuparse por múltiples instalaciones que obstruyan. Algunos de los comandos son de los documentos oficiales de Red Hat. Esta guía asume que usted estará creando dos tipos diferentes de instalación, un servidor y una estación de escritorio.

Sistema probado

CentOS 4.6, CentOS 5.1

<!> Nota: Nótese que mientras esta sección cita niveles particulares de respin de CentOS, el contenido no debe variar independientemente del Major release, ya sea de 4 o 5, debido a la compatibilidad de API/ABI.

Referencias en otros lados

Official Red Hat Guide
Red Hat NFS Guide

/!\ FIXME with CentOS local references

Preparando el Servidor NFS

1. Instalar NFS y crear los directorios

El primer paso es crear un servidor NFS si no tiene ya uno preparado. El sistema de archivos del sistema operativo cliente vive (está almacenado en) ese servidor NFS. Como parte del proceso de arranque PXE, un host con una tarjeta de red con capacidad de arranque PXE emitirá una solicitud de dirección IP en broadcast. Un servidor DHCP le proveerá una tal dirección junto con un campo opcional de un next-server y una imagen de arranque inicial para encadenar luego de la imagen minimal de arranque usada por la tarjeta de red (obtenida de ROM o de otra fuente). El host recupera sus archivos y configuraciones del recurso compartido NFS configurado en esta sección.

Tener espacio en disco disponible en el disco NFS exportado se convierte en una necesidad a medida que uno empieza a agregar más de una variedad de una instalación, porque el sistema operativo completo del cliente será copiado al servidor NFS. Por lo común, el directorio del usuario final /home no queda contenido en estas imágenes, sino que se monta separadamente. Instale los paquetes NFS si no están ya instalados en el servidor.

# yum install nfs-utils nfs-utils-lib system-config-nfs

Ahora, cree los directorios que necesitará luego. Estos serán los recursos compartidos NFS especificados. Si desea ponerlos en alguna otra parte, o si puede especificar nombres diferentes, hágalo. Puede compartirlos desde cualquier parte. El primer directorio alojará una instalación de servidor de CentOS 4, y el segundo directorio una instalación de CentOS con un ambiente de escritorio.

# mkdir -p /srv/diskless/i386/RHEL4S/root
# mkdir -p /srv/diskless/i386/RHEL4D/root

2. Configurar NFS

Ahora necesita crear los recursos compartidos y arrancar el servidor NFS.

# vim /etc/exports
/srv/diskless/i386/RHEL4S/root/         *(ro,sync,no_root_squash)
/srv/diskless/i386/RHEL4S/snapshot/     *(rw,sync,no_root_squash)
/srv/diskless/i386/RHEL4D/root/         *(ro,sync,no_root_squash)
/srv/diskless/i386/RHEL4D/snapshot/     *(rw,sync,no_root_squash)

Arranque el servidor NFS y verifique que los recursos compartidos NFS están OK y arranque el servicio. Si ya están corriendo los servicios NFS, recárguelos.

# service nfs start (reload)
# chkconfig nfs on
# nfs-export -l

Directory                               Permissions             Hosts
/srv/diskless/i386/RHEL4S/root/         ro                      *
/srv/diskless/i386/RHEL4S/snapshot/     rw                      *
/srv/diskless/i386/RHEL4D/root/         ro                      *
/srv/diskless/i386/RHEL4D/snapshot/     rw                      *

Configuración del servidor DHCP

Si no tiene ya un servidor Linux DHCP funcionando en la red, por favor vea la documentación respecto a la preparación de un servidor DHCP. Es completamente aceptable instalar un servidor DHCP en el servidor NFS si desea. En mi ejemplo hay un servidor DHCP separado ya funcionando.

1. Configuración PXE DHCP

Ubique la siguiente configuración en /etc/dhcpd.conf. Esta especifica que se permitirá el inicio por la red. Cuando el servidor DHCP se encuentre con este pedido, redirigirá al cliente al servidor NFS que usted haya especificado. Recuerde que si ya tiene un servidor DHCP en la red, debe tener cuidado al agregar uno nuevo.

# vim /etc/dhcpd.conf
allow booting;
allow bootp;
class "pxeclients" {
   match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
   next-server 192.168.1.20;
   filename "linux-install/pxelinux.0";
}

2. Preparación de TFTP

Compruebe que xinetd y TFTP estén instalados en el servidor DHCP.

# yum install xinetd tftp-server

Asegure que ambos servicios estén preparados en el servidor DHCP.

# chkconfig --level 345 xinetd on
# chkconfig --level 345 tftp on

Instalar/Configurar/Copiar una instalación

Ahora tiene que efectivamente instalar una instalación, o usar un sistema ya existente en algún lado. Para este experimento, he preparado una instalación nueva sin GUI de CentOS 4.6. Prepare el host completamente tal como lo desee, ya que dentro de un instante ésta será la copia efectiva en todos los clientes sin disco. Para mis propósitos, he instalado, actualizado y copiado todas las configuraciones locales que quiero o necesito en mi red a mi host. Cualquier cosa que desee personalizar, hágalo ahora porque es más fácil prepararlo todo de una vez para siempre. Un ejemplo perfecto de esto es si necesita paquetes RPM de terceros instalados; instálelos en el host ya. El único paquete que se requiere en el host es busybox-anaconda.

# yum install busybox-anaconda

Una vez que tenga su instalación configurada de la manera que desea, vuelva al servidor NFS y copie mediante rsync la instalación al recurso compartido NFS. Si no desea examinar lo que se esté copiando, quite la opción -v.

# rsync -v -a -e ssh --exclude='/proc/*' --exclude='/sys/*' host_of_installation:/ /srv/diskless/i386/RHEL4S/root/
receiving file list...
&lt;snip buckets of output&gt;

Preparación de clientes sin disco

1. Configuración de Netboot

Diríjase nuevamente al servidor NFS. Si está accediendo remotamente al servidor mediante SSH, debe reexpedir X con la sesión.

# ssh -X nfs_server

Instale la herramienta de configuración de netboot si no está ya instalada en el sistema, y ejecute la herramienta. Hay diferencias entre 4.6 y 5.1 durante este paso. RHEL 5 no incluye system-config-netboot debido a problemas técnicos. Sin embargo, puede instalar el binario de Fedora Core 6 con un poco más de trabajo.

# yum install system-config-netboot
# system-config-netboot

Debe aparecer una ventana preguntándole qué desea hacer. La primera vez que corra esto, debe obtener la ventana emergente del asistente. Haga click en Sin disco para continuar. Los pasos de lo que usted necesita hacer están esquematizados. El paso de rsync ya ha sido completado. Haga click en Siguiente e ingrese un nombre y descripción de SO. La próxima pantalla es donde usted ingresa su información de NFS. En Dirección IP del servidor ingrese la dirección IP del servidor NFS. En la sección Directorio ingrese el primer recurso compartido de NFS, /srv/diskless/i386/RHEL4S. En la próxima pantalla, elija el núcleo que desea correr en sus clientes sin disco. Cuando esté completo, haga click en Aplicar y espere unos momentos mientras obra la magia. Esta herramienta automáticamente crea y configura un archivo de imagen y lo ubica en el directorio de arranque PXE.

2. Configuración de los hosts

Una vez que el ambiente de sistema operativo sin disco está preparado, usted puede crear y configurar un nuevo sistema host con la herramienta de configuración. Si necesita información específica sobre qué significan todos los parámetros, diríjase a la sección agregando hosts de la documentación de Red Hat. En la herramienta GUI, seleccione Nuevo para iniciar el proceso de creación de hosts.

La máquina que está agregando debe tener un IP o nombre de host válido en la red, lo cual no debe ser problema. En mi caso, tomé una PC existente de mi red, extraje el disco rígido, y la usé para arrancar sin disco. En el campo nombre de host, ingrese una máquina válida. Como solamente tiene un ambiente de sistema operativo por el momento, la única opción de SO será la que acaba de crear en el paso 1 de la configuración de netboot. Si tiene más de un SO, elija el que desee en el menú descolgable. Si deja en blanco el nombre de snapshot, automáticamente se llenará con el nombre de host que encuentre en su red. Recuerde que exportamos un punto de montado NFS para esto: /srv/diskless/i386/RHEL4S{D}/snapshot. Por fin, si desea que el host registre eventos remotamente, llene en el logger de su sistema que acepte logging remoto. Al terminar, haga click en OK para crear el host.

Si no desea lidiar con el nombre de host equivocado en una máquina nueva, borre todos los archivos sincronizados. Por ejemplo, creo una instalación de servidor porque quiero tenerla tan genérica como sea posible, y también quiero hacerla arrancar en múltiples máquinas. Si dejo la información en los archivos, entonces sacaré el nombre de host de la máquina donde fue creado el SO. Es una molestia menor. Si no le importa, ignórelo.

# vim /srv/diskless/i386/RHEL4S/root/etc/sysconfig/network-scripts/ifcfg-eth0{1,2,3} (la que sea su tarjeta)
HWADDR=  <--- Dejar en blanco
DHCPDHCP_HOSTNAME=  <--- Dejar en blanco

Ahora al arrancar el nuevo host sin disco, no protestará porque la dirección MAC sea diferente, y no tendrá un nombre de host. Deberá llamarse únicamente localhost. Obviamente, puede fijar el nombre de host a su gusto.

Esto es todo para agregar hosts. Puede repetir el proceso completo para cada tipo de ambiente de SO. No olvide que si crea un nuevo tipo de SO, entonces deseará agregar un nuevo directorio bajo NFS para ser exportado. Piénselo como si estuviera alojando diferentes sistemas operativos, así que los nombres deberán ser distinguibles. Para mi uso, yo creo la instalación ya mencionada para servidor y desktop. Sin embargo, usted puede usarla para lo que desee. Supongamos que queremos crear una instancia para una tarea muy específica, pero no tenemos un disco rígido para la máquina. Esto le permite crear una instancia en VMWare, o cualquier otro ambiente virtual, y copiar esa instalación sobre NFS. Ahora se la puede arrancar en cualquier máquina con una tarjeta de red PXE.

Arranque con PXE

Una nota sobre PXE, que es la sigla de Preboot Execution Environment (ambiente de ejecución pre-inicio). Haga una búsqueda en Wikipedia si realmente desea profundizar en su significado. Para ser breves, el firmware de la tarjeta de red busca una redirección PXE, que pasa esta información del servidor DHCP, el cual luego apunta a nuestro servidor NFS especificado. Luego se descarga mediante TFTP el archivo de arranque en memoria, y se procede a ejecutarlo. Finalmente, tenemos nuestro sistema operativo arancado desde la memoria.

Todas las tarjetas de red son diferentes, así que deberá consultar al fabricante de la tarjeta cuál es la manera de habilitar PXE en su sistema. La mayor parte de las tarjetas nuevas lo soportan directamente, y es sólo cuestión de habilitarlo en la BIOS (para el caso de las tarjetas on board), o accediendo a un menú de utilidades de la tarjeta. Nuevamente, todas las tarjetas son diferentes.

Una vez que tenga la NIC y el sistema listos para funcionar, enciéndalo y pruébelos. Arranque y vaya al menú de la NIC. Éste puede decir algo sobre la dirección MAC, o sobre carga de BOOTP. Debe pasar inmediatamente al servidor NFS, y luego arrancar la imagen Linux. Ya se pueden utilizar los discos de las PCs de la red.


2023-09-11 07:23