Version 19 (modified by 13 years ago) (diff) | ,
---|
Instalación y configuración de OpenGnSys paso a paso
El objetivo es describir la instalación y configuración de todo el sistema OpenGnSys partiendo de una instalación mínima y limpia del servidor.
Introducción a OpenGnSys
Tipos de servidor OpenGnSys
Un sistema OpenGnSys está formado por dos tipos de servidor, según los servicios que presta:
- Servidor de Administración: Único para cada sistema OpenGnSys, ofrece los servicios de administración a través de la consola web y ejecuta el demonio (ogAdmServer) que distribuye las tareas configuradas desde la consola web entre los diferentes servidores de repositorio.
- Servidor de Repositorio: Puede haber tantos como se desee. Ofrece los servicios de arranque por PXE, comparte por Samba los directorios necesarios para los clientes, almacena las imágenes de los discos de los clientes, recibe del servidor de administración las tareas que debe ejecutar los clientes y, en general, ofrece todos los servicios que utilizan directamente los clientes.
Descripción del proceso de instalación
Se realizan los siguientes procesos:
- Obtención de los parámetros básicos de la red.
- Comprobación de paquetes instalados.
- Descarga e instalación de las dependencias que faltan.
- Creación de la estructura básica de directorios de OpenGnSys.
- Descarga del repositorio de código en un directorio temporal (
/tmp/opengnsys_installer
). - Compilación e instalación de los servicios de OpenGnSys.
- Configuración básica de los servicios de red DHCP, PXE y Samba, a partir de los parámetros de conexión.
- Copiar ficheros complementarios de gestión del servidor.
- Creación de la base de datos y configuración del servidor web de OpenGNSys Web Admin Console.
- Copiar los ficheros de las páginas web de Web Console.
- Copiar la estructura de directorios de OpenGnSys Client.
- Descargar y configurar la imagen de arranque de OpenGnSys Client.
- Configuración básica de los servicios de OpenGnSys a partir de los parámetros de red.
- Arranque de los servicios de OpenGnSys.
Instalación de un sistema OpenGnSys
Servicios necesarios
Los siguientes servicios son necesarios para el funcionamiento del sistema OpenGnSys pero no tienen por que residir en los servidores dedicados al mismo, aunque el instalador nos dará la opción de instalarlos y configurarlos si así lo deseamos. Otros servicios también pueden estar alojados fuera, pero por simplificar la instalación se incluyen en el proceso de instalación del tipo de servidor que los utiliza.
- Servidor DHCP: Es necesario un servidor DHCP que redireccione el arranque de los clientes al servidor de repositorio de su zona. Puede instalarse el servicio DHCP a partir del siguiente paquete:
- En versiones de Ubuntu 10.10 y anteriores:
sudo aptitude install dhcp3-server
- En versiones de Ubuntu 11.04 y posteriores:
sudo aptitude install isc-dhcp-server
- En versiones de Ubuntu 10.10 y anteriores:
Un ejemplo de como podría quedar el archivo de configuración dhcpd.conf
para un servidor que da direcciones en el rango de 10.1.12.100 - 10.1.12.200 y cuyo servidor de repositorio tiene la dirección IP 10.1.12.1
ddns-update-style none; option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 10.1.12.0 netmask 255.255.252.0 { range 10.1.12.100 10.1.12.200; option domain-name-servers 192.168.0.10; option routers 10.1.12.1; option broadcast-address 10.1.12.255; default-lease-time 600; max-lease-time 7200; # Parametros para el PXE next-server 10.1.12.1; filename "grldr"; }
Información necesaria
Los datos que se deben conocer antes de instalar son lo siguientes:
- Si se instala un servidor de Administración:
- IP local y puerto donde debe escuchar el demonio ogAdmServer (puerto por defecto, 2008).
- Nombre del catálogo del servidor MySQL donde se creará la base de datos (por defecto ogBDAdmin).
- Si se instala un servidor de Repositorio:
- IP del servidor de Administración del que depende el repositorio.
- Puerto del servidor de Administración donde escucha el demonio ogAdmServer (por defecto 2008).
- Dirección de red y máscara de los ordenadores cliente (para exportar los directorios por NFS).
- Si se instala un servidor DHCP:
- Servidores DNS que utilizarán los clientes.
- Dirección de la subred de la que se darán las IPs.
- Rango de direcciones IP a utilizar dentro de la subred.
- Dirección de broadcast de la subred.
- Dirección del servidor de Respositorio para esa subred.
Instalando el sistema mínimo
Partimos del disco de instalación de Ubuntu Server, a partir de la versión 9.04, tanto para 32 como para 64 bits. Cuando presente la pantalla de instalación pulsamos F4 para elegir el tipo de instalación "Máquina virtual mínima". Cuando presente la lista de paquetes a instalar marcamos únicamente el OpenSSH Server.
Al reiniciar reconfiguramos la red, para utilizar dirección IP estática. Está IP será por la que habrá que sustituir en los ficheros de configuración cuando en estos ponga "IPLocal".
Instalación de los componentes comunes
Utilidades necesarias
- wget
sudo aptitude install wget
- Utilidades para la compilación de los servicios(se podría realizar en otra máquina con la misma arquitectura)
sudo aptitude install build-essential libmysqlclient15-dev
- Subversion: para la descarga del sistema desde el repositorio
aptitude install subversion
Descarga de los componentes del sistema
Descargamos en un directorio temporal (/tmp/opengnsys) la última versión de los componentes desde el repositorio:
svn co http://www.opengnsyss.es/svn/trunk /tmp/opengnsys
Creación de los directorios
Se crea el directorio del proyecto en /opt
mkdir /opt/opengnsys
y a continuación los directorios necesarios para los distintos componentes:
para los binarios del servidor
mkdir /opt/opengnsys/bin
para los archivos de configuracion creamos el directorio dentro del proyecto y lo enlazamos desde /etc/opengnsys
mkdir /opt/opengnsys/etc ln -s /opt/opengnsys/etc /etc/opengnsys
creamos el directorio donde estarán los componentes que se exportan por NFS a los clientes, aquí están los ejecutables con el motor de clonación y las utilidades asociadas.
mkdir -p /opt/opengnsys/client/lib/engine/bin mkdir /opt/opengnsys/client/cache mkdir -p /opt/opengnsys/client/etc/init mkdir /opt/opengnsys/client/etc/preinit mkdir /opt/opengnsys/client/etc/startpages
creamos el directorio para las librerias de las utilidades
mkdir /opt/opengnsys/lib
los directorios de logs y enlazamos desde /var/log/opengnsys
mkdir /opt/opengnsys/log mkdir /opt/opengnsys/log/client ln -s /opt/opengnsys/log /var/log/opengnsys
repositorio donde se almacenarán las imagenes de particiones y discos
mkdir /opt/opengnsys/images
Para la consola de administración web
mkdir /opt/opengnsys/www
Instalación de un servidor de Administración
Servicios
- Apache
aptitude install apache2
- PHP
aptitude install php5
- MySQL y conector php5-mysql
aptitude install mysql-server aptitude install php5-mysql
El instalador pide la contraseña de root para mysql. Si no lo hiciera, o para otras distribuciones, ejecutar como root o mediante el comando sudo,
/usr/bin/mysqladmin -u root password ''nuevaclave''
Crear la base de datos
Crear en el gestor de base de datos el usuario con el que se accederá desde el gestor web con todos los privilegios:
mysql -p <<<"CREATE DATABASE ogBDAdmin; GRANT ALL PRIVILEGES ON ogBDAdmin.* TO usuog@localhost IDENTIFIED BY 'passusuog'"
Volcar el contenido del fichero SQL de la base de datos y establecer los permisos de acceso para que coincidan con los ficheros del web.
mysql -u usuog -p ogBDAdmin < /tmp/opengnsys/trunk/admin/Database/ogBDAdmin.sql
Instalación de la consola web
Copiamos el directorio desde el repositorio:
cp -pr /tmp/opengnsys/trunk/admin/WebConsole/* /opt/opengnsys/www
renombramos el /var/www original por si acaso y creamos un enlace simbólico al del proyecto
mv /var/www /var/www.orig ln -s /opt/opengnsys/www /var/www
Modificamos el propietario del directorio por el usuario y grupo que lanza el servidor web
chown www-data:www-data /opt/opengnsys/www -R
Modificamos la configuración en el fichero /opt/opengnsys/www/includes/controlacceso.inc, sustituyendo "IPLocal" por la IP que le hayamos asignado al servidor donde se está instalando
$cnx="IPLocal;usuog;passusuog;ogBDAdmin;sqlserver"; // Cadena de conexión a la base de datos $ips="IPLocal"; // IP del servidor ogAdmServer $prt="2008"; // Puerto de comunicación con el servidor $wer="http://IPLocal/pagerror.php"; // Página de redireccionamiento de errores $wac="http://IPLocal/acceso.php"; // Página de login de la aplicación
Compilación e instalación del servidor ogAdmServer
Nos situamos dentro del repositorio en el directorio trunk/admin/ogAdmSources/ogAdmServer y creamos el ejecutable:
make
copiamos el ejecutable al directorio de binarios del servidor y el archivo de configuración al de configuraciones:
cp ogAdmServer /opt/opengnsys/bin/ cp ogAdmServer.cfg /opt/opengnsys/etc/
modificamos el archivo de configuración /opt/opengnsys/etc/ogAdmServer.cfg con los datos de nuestra configuración:
IPhidra=IPLocal Puerto=2008 AulaUp=0 Usuario=usuog PassWord=passusuog DataSource=IPLocal Catalog=ogBDAdmin
Instalación de un servidor de Repositorio
Antes de poder lanzar este proceso hay que dar de alta este repositorio en el gestor web, para que permita el acceso al demonio ogAdmRepo que recoge los datos de configuración y tareas de los clientes introducidos en la consola web.
NFS: Para exportar los directorios con las utilidades que utilizarán los clientes que arranquen utilizando este sistema.
aptitude install nfs-kernel-server
TFTP: Para servir las imagenes de arranque por PXE a los clientes.
aptitude install tftpd-hpa
udpcast: Distribución por multicast de las imagenes de las particiones a clonar.
aptitude install udpcast
bittorrent: Distribución por bittorrent de las imagenes de las particiones a clonar.
aptitude install bittorrent
Syslinux
aptitude install syslinux
Instalando los servicios opcionales
Servidor DHCP (Si es necesario): Para la asignación de direcciones y configuración de red.
aptitude install dhcp3-server (ignorar el mensaje de error, lo configuraremos más tarde)
Instalando las utilidades necesarias
Instalando las utilidades recomendadas
memtest86+
Compilación e instalación del servidor de repositorio ogAdmRepo
Nos situamos dentro del repositorio en el directorio trunk/admin/ogAdmSources/ogAdmRepo y creamos el ejecutable:
make
copiamos el ejecutable al directorio de binarios del servidor y el archivo de configuración al de configuraciones:
cp ogAdmRepo /opt/opengnsys/bin/ cp ogAdmRepo.cfg /opt/opengnsys/etc/
modificamos el archivo de configuración /opt/opengnsys/etc/ogAdmRepo.cfg con los datos de nuestra configuración:
IPlocal=10.2.0.12 IPhidra=10.2.0.12 Puerto=2008
Configuración NFS
Los clientes arrancan por red recibiendo un sistema operativo mínimo para reducir el tiempo de arranque, para poder realizar las tareas relacionadas con la clonación necesitan acceder además a tres directorios del servidor:
- /opt/opengnsys/client/ que contiene los ejecutables con el motor de clonación y las utilidades asociadas.
- /opt/opengnsys/images/ lugar de almacenamiento de las imagenes de las particiones y discos para crear/restaurar.
- /opt/opengnsys/log/clients donde se graban los logs con el resultado de la ejecución de las diferentes tareas.
para poder utilizar estos directorios hay que crear los directorios en el servidor y hacer que se exporten por NFS y, en el cliente, montarlos al inicio. La parte cliente la realiza el script loadenviron.sh que se ejecuta en el proceso de arranque del mismo.
Hay que modificar el fichero /etc/exports con las siguientes líneas:
/opt/opengnsys/client/ 10.2.1.0/255.255.255.0(ro,no_subtree_check,no_root_squash,sync) /opt/opengnsys/images/ 10.2.1.0/255.255.255.0(rw,no_subtree_check,no_root_squash,sync,crossmnt) /opt/opengnsys/log/client 10.2.1.0/255.255.255.0(rw,no_subtree_check,no_root_squash,sync)
y por último reiniciamos el demonio NFS para que recoja las modificaciones:
/etc/init.d/nfs-kernel-server restart
En este ejemplo los clientes reciben por DHCP direcciones ip pertenecientes a la subred 10.2.1.0, si hubiera más subredes habría que añadir estas tres líneas para cada una de ellas.
Configuración del sistema para los clientes
Arranque por PXE
Preparación del sistema de arranque por red para los ordenadores cliente:
Copiamos el fichero de arranque por PXE al directorio desde el que se lo descargarán los clientes, creamos el directorio donde se almacenan las diferentes opciones de arranque por cliente y copiamos del repositorio el fichero con la configuración de arranque por defecto.
cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ mkdir /var/lib/tftpboot/pxelinux.cfg cp trunk/server/PXE/pxelinux.cfg/default /var/lib/tftpboot/pxelinux.cfg/
OpenGNSys Client Boot
Copiamos desde el repositorio los scripts y ficheros, ejecutables directamente desde el servidor de OpenGNSys, y que son necesarios para configurar los procesos de arranque de los clientes:
- initrd-generator:Script de generación de los básicos de arranque del cliente(initrd y kernel).
- upgrade-clients-udeb.sh: Script de descarga de paquetes udeb, que serán incluidos en el directorio de librerías importadas por los clientes.
- udeblist.conf: Fichero de configuración que incluye la lista de paquetes udeb que deben ser descargados o eliminados.
cp trunk/client/boot/initrd-generator /opt/opengnsys/bin/ cp trunk/client/boot/upgrade-clients-udeb.sh /opt/opengnsys/bin/ cp trunk/client/boot/udeblist.conf /opt/opengnsys/etc/
Generamos los ficheros básicos de arranque del cliente y los colocamos para que los cojan los clientes PXE:
/opt/opengnsys/bin/initrd-generator mv linux /var/lib/tftpboot/ mv initrd.gz /var/lib/tftpboot/
Descarga de los paquetes udeb que se deben exportar a los clientes
/opt/opengnsys/bin/upgrade-clients-udeb.sh
Copiamos el motor de clonación desde el repositorio
cp trunk/client/engine/* /opt/opengnsys/client/lib/engine/bin/