wiki:InstalacionManual
Last modified 5 years ago Last modified on 06/13/12 11:32:48

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

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
    sudo 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/

Compilación e instalación del cliente ogAdmClient

Compilación e instalación del browser