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.
Un sistema OpenGnSys está formado por dos tipos de servidor, según los servicios que presta:
Se realizan los siguientes procesos:
/tmp/opengnsys_installer
).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.
sudo aptitude install dhcp3-server
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";
}
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.
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".
sudo aptitude install wget
sudo aptitude install build-essential libmysqlclient15-dev
sudo aptitude install subversion
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
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
aptitude install apache2
aptitude install php5
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 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
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
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
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
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)
memtest86+
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
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:
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.
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/
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/