Changes between Version 17 and Version 18 of Version2/Instalacion


Ignore:
Timestamp:
Sep 7, 2011, 5:55:01 PM (13 years ago)
Author:
adelcastillo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Version2/Instalacion

    v17 v18  
    44== Nota importante ==
    55
    6 Si no conoces como funciona Opengnsys, es muy recomendable leer la [[introducción a Opengnsys]] (TODO) donde se explican los conceptos principales y el funcionamiento básico útiles para proceder con la instalación.
    7 
    8 == Instalación del servidor ==
     6Si no conoces como funciona Opengnsys, es muy recomendable leer la [[introducción a Opengnsys]] (TODO) donde se explican los conceptos principales y el funcionamiento básico útiles para proceder con la instalación. Tanto el servidor como los repositorios pueden instalarse de dos maneras. Recomendamos la forma simple si quieres poner en producción un sistema Opengnsys o simplemente quieres probarlo. Si lo que quieres es colaborar con el proyecto o modificarlo, recomendamos la instalación para desarrolladores.
     7
     8== Instalación simple del servidor ==
     9
     10La manera más sencilla de hacerlo es descargar el instalador creado y ejecutarlo. Se puede descargar desde aquí: (TODO)
     11
     12Una vez descargado, hay descomprimir el archivo en directorio /opt con:
     13{{{
     14# mkdir /opt
     15# tar xvfj opengnsys_server.tar.bz2 -C /opt
     16}}}
     17
     18Por último ejecutar:
     19{{{
     20# /opt/opengnsys/server_installer.sh
     21}}}
     22
     23A continuación debemos responder a las siguientes preguntas (TODO):
     24
     25
     26== Instalación para desarrolladores del servidor ==
    927
    1028Como se puede leer en la introducción a Opengnsys en el servidor principal debe ejecutar dos servicios:
     
    1230* El servicio que recoge de los resultados de los trabajos ejecutados por los clientes (job_receiver).
    1331
    14 === La manera simple ===
    15 
    16 La manera más sencilla de hacerlo es descargar el instalador creado y ejecutarlo. Se puede descargar desde aquí: (TODO)
    17 
    18 Una vez descargado, hay descomprimir el archivo en directorio /opt con:
    19 {{{
    20 # mkdir /opt
    21 # tar xvfj opengnsys_server.tar.bz2 -C /opt
    22 }}}
    23 
    24 Por último ejecutar:
    25 {{{
    26 # /opt/opengnsys/server_installer.sh
    27 }}}
    28 
    29 A continuación debemos responder a las siguientes preguntas (TODO):
    30 
    31 
    32 === Para desarrolladores ===
    33 
    34 Procederemos a instalar las herramientas necesarias para poner en funcionamiento los dos servicios en el servidor.
    35 
    36 === Base de datos ===
     32=== Instalación de la base de datos ===
    3733
    3834Es imprescindible el uso de una base de datos donde se almacenará toda la información de nuestro sistema. Se puede instalar y configurar cualquiera de los que soporta sqlalchemy, (se pueden encontrar en http://www.sqlalchemy.org/features.html).
     
    5753Más tarde procederemos a su configuración.
    5854
    59 === Preparación del entorno ===
     55=== Instalación del entorno virtual ===
    6056
    6157Para preparar el entorno necesitamos la herramienta !VirtualEnv para python. Este herramienta instalará las dependencias necesarias para python de manera independiente a las del sistema protegiéndonos frente a posibles conflictos con los paquetes que distribuya nuestra distribución. Su instalación para las siguientes distribuciones sería:
     
    10399}}}
    104100
    105 === Configuración ===
    106 
    107 ==== Instalación de entorno virtual ====
     101Con todo lo necesario descargado e instalado procedemos a la configuración.
     102
     103=== Configuración de SQLAlquemy ===
     104
     105En el servidor es necesario que exista una base de datos que usarán los dos servicios. Por defecto es SQLAlquemy, pero se puede cambiar la configuración en el fichero server/web/config.py para que no sea así. Por defecto encontramos en este fichero algo así:
     106
     107{{{
     108#DB = 'sqlite:///database.sqlite'
     109DB = 'postgresql://opengnsys:opengnsys@localhost/opengnsys'
     110}}}
     111
     112Para saber como configurar la base de datos usando mySQL, PostgreSQL, Oracle o cualquier otra base de datos que soporta SQLAlchemy echar un vistazo a [http://www.sqlalchemy.org/docs/05/dbengine.html#create-engine-url-arguments].
     113
     114Vamos a configurar el SQLAlquemy para que funcione tal como viene por defecto en este fichero, aunque puede ser modificado para adaptarse a cualquier necesidad. Para ello hay que asegurarse de que el servicio está funcionando:
     115
     116{{{
     117# /etc/init.d/postgresql start
     118}}}
     119
     120
     121Ahora entramos como usuario postgres para realizar las operaciones, existen dos maneras según el sistema usado:
     122
     123{{{
     124$ sudo -i -u postgres
     125}}}
     126{{{
     127$ su root
     128$ su - postgres
     129}}}
     130
     131Nuestro prompt habrá cambiado para recordarnos que ahora somos el usuario postgres. Ahora procedemos a crear un usuario para la base de datos llamado "opengnsys". Cuando pregunte por la contraseña debemos poner también "opengnsys" para que funcione con la configuración por defecto.
     132
     133{{{
     134$ createuser -D -R -S -P opengnsys
     135}}}
     136
     137Una vez creado procedemos a crear una base de datos también llamada "opengnsys" y que pertenezca al usuario creado anteriormente:
     138
     139{{{
     140$ createdb -T template0 -E UTF8 opengnsys -O opengnsys
     141}}}
     142
     143Con esto ya tenemos configurado PostgreSQL.
     144
     145'''Nota importante:''' Si no arranca el servicio y en el fichero de log "/var/log/postgresql.log" aparece lo siguiente:
     146
     147{{{
     148postgres cannot access the server configuration file "/var/lib/postgres/data/postgresql.conf": No such file or directory
     149}}}
     150
     151Probad a ejecutar como usuario postgres:
     152
     153{{{
     154$ initdb -D /var/lib/postgres/data/
     155}}}
     156
     157Y volver a intentar arrancar el servicio de nuevo.
     158
     159=== Configuración de SQLite ===
     160
     161Si optamos por no usar PostreSQL y queremos una opción más sencilla (y mucho menos escalable) podemos utilizar SQLite. Si cambiamos el fichero "server/web/config.py" de esta manera:
     162
     163{{{
     164DB = 'sqlite:///database.sqlite'
     165#DB = 'postgresql://opengnsys:opengnsys@localhost/opengnsys'
     166}}}
     167
     168Usará una base de datos sqlite que no necesita configuración ni instalación adicional. Todos los datos se guardarán en el archivo "database.sqlite" que se generará automáticamente en el siguiente paso.
     169
     170=== Creación del entorno virtual ===
    108171
    109172Instalemos las dependencias python que tiene el servicio web a través de la herramienta VirtualEnv. Accedemos a el directorio server y ejecutamos:
     
    136199Este comando sólo habrá que usarlo una vez ya que es un proceso de instalación y una vez hecho no habrá que repetirlo.
    137200
    138 ==== Instalación de SQLAlquemy ====
    139 
    140 En el servidor es necesario que exista una base de datos que usarán los dos servicios. Por defecto es SQLAlquemy, pero se puede cambiar la configuración en el fichero server/web/config.py para que no sea así. Por defecto encontramos en este fichero algo así:
    141 
    142 {{{
    143 #DB = 'sqlite:///database.sqlite'
    144 DB = 'postgresql://opengnsys:opengnsys@localhost/opengnsys'
    145 }}}
    146 
    147 Para saber como configurar la base de datos usando mySQL, PostgreSQL, Oracle o cualquier otra base de datos que soporta SQLAlchemy echar un vistazo a [http://www.sqlalchemy.org/docs/05/dbengine.html#create-engine-url-arguments].
    148 
    149 Vamos a configurar el SQLAlquemy para que funcione tal como viene por defecto en este fichero, aunque puede ser modificado para adaptarse a cualquier necesidad. Para ello hay que asegurarse de que el servicio está funcionando:
    150 
    151 {{{
    152 # /etc/init.d/postgres start
    153 }}}
    154 
    155 
    156 Ahora entramos como usuario postgres para realizar las operaciones, existen dos maneras según el sistema usado:
    157 
    158 {{{
    159 $ sudo -i -u postgres
    160 }}}
    161 {{{
    162 $ su root
    163 $ su - postgres
    164 }}}
    165 
    166 Nuestro prompt habrá cambiado para recordarnos que ahora somos el usuario postgres. Ahora procedemos a crear un usuario para la base de datos llamado "opengnsys". Cuando pregunte por la contraseña debemos poner también "opengnsys" para que funcione con la configuración por defecto.
    167 
    168 {{{
    169 $ createuser -D -R -S -P opengnsys
    170 }}}
    171 
    172 Una vez creado procedemos a crear una base de datos también llamada "opengnsys" y que pertenezca al usuario creado anteriormente:
    173 
    174 {{{
    175 $ createdb -T template0 -E UTF8 opengnsys -O opengnsys
    176 }}}
    177 
    178 Con esto ya tenemos configurado PostgreSQL.
    179 
    180 Nota: Si no arranca el servicio y en el fichero de log "/var/log/postgresql.log" aparece lo siguiente:
    181 
    182 {{{
    183 postgres cannot access the server configuration file "/var/lib/postgres/data/postgresql.conf": No such file or directory
    184 }}}
    185 
    186 Probad a ejecutar como usuario postgres:
    187 
    188 {{{
    189 initdb -D /var/lib/postgres/data/
    190 }}}
    191 
    192 Y volver a intentar arrancar el servicio de nuevo.
    193 
    194 ==== Instalación de SQLite ====
    195 
    196 Si optamos por no usar PostreSQL y queremos una opción más sencilla (y mucho menos escalable) podemos utilizar SQLite. Si cambiamos el fichero "server/web/config.py" de esta manera:
    197 
    198 {{{
    199 DB = 'sqlite:///database.sqlite'
    200 #DB = 'postgresql://opengnsys:opengnsys@localhost/opengnsys'
    201 }}}
    202 
    203 Usará una base de datos sqlite que no necesita configuración ni instalación adicional. Todos los datos se guardarán en el archivo "database.sqlite" que se generará automáticamente en el siguiente paso.
    204 
    205 ==== Creación de la base de datos ====
     201=== Creación de la base de datos ===
    206202
    207203Simplemente accedemos al directorio "server/web/" y ejecutamos:
     
    212208}}}
    213209
    214 Esto generará las tablas necesarias en la base de datos.
    215 
    216 ==== Generación de traducciones ====
     210Esto generará las tablas necesarias en la base de datos. Nos mostrará el nombre de un usuario y contraseñas que debemos usar cuando comencemos a utilizar la consola web.
     211
     212=== Generación de traducciones ===
    217213
    218214Al igual que en el caso anterior vamos al directorio "server/web/" y ejecutamos lo siguiente:
     
    229225=== SSL Setup ===
    230226
     227(TODO además de crear esta página en inglés, traducir esto al español)
     228
    231229OpenGnSys uses secure connections among server, repositories and clients. This is done using SSL certificates certified by a CA (Certificate Authority). Note that it only checks that the certificate is valid and the certificate is trusted. You can see in [wiki:Version2/SSL_Certificate_Authority_Tutorial SSL Certificate Authority Tutorial] how to create your own CA, create certificates and sign them. Across all the Opengnsys platform, the SSL connections are always verified on both ends: both the client and the server.
    232230
     
    235233== Arrancar el servidor ==
    236234
    237 Para ejecutar la WebConsole:
    238 
    239 {{{
    240 ./admin.py
    241 }}}
    242 
    243 El servicio web será lanzado en http://localhost:8080. Si quieres modificar el puerto usado:
    244 
    245 {{{
    246 ./admin.py <puerto>
     235Para ejecutar la consola web:
     236
     237{{{
     238$ cd server/
     239$ source env/bin/active
     240$ cd web/
     241$ ./admin.py
     242}}}
     243
     244El servicio web será lanzado en http://localhost:8080/. Si quieres modificar el puerto usado:
     245
     246{{{
     247$ ./admin.py <puerto>
    247248}}}
    248249
    249250Recordad que para un puerto menor que 1024 hace falta tener privilegios de superusuario.
    250251
    251 == OGDaemon Server ==
    252 
    253 Este demonio trabaja por defecto el puerto 1101, pero puede ser modificado en el fichero config.py usando la variable '''server_daemon_port'''. Para ejecutarlo:
    254 
    255 {{{
    256 ./daemon.py
    257 }}}
    258 
    259 == Instalación del repositorio ==
     252El '''job_receiver''' también se encuentra en ''server/web/'' ya que utiliza la misma configuración que la consola web. Para ejecutarlo:
     253
     254{{{
     255$ cd server/
     256$ source env/bin/active
     257$ cd web/
     258$ ./daemon.py
     259}}}
     260
     261Hay que recordar que ambos servicios deben estar ejecutándose para que funcionen correctamente, arrancando primero la consola web y después el job_receiver.
     262
     263== Configuración de los servicios externos del repositorio ==
    260264
    261265La instalación de un repositorio es más complicada ya que tenemos que configurar también algunos servicios externos que nos permitan arrancar por red a los clientes. Los servicios necesarios son:
     
    267271
    268272
    269 === Instalación simple ===
    270 
    271 Descargamos el código del repositorio aquí (TODO). Si eres desarrollador y te descargaste el [[código por Subversion]] no hace falta que descargues nada más.
     273== Instalación simple del repositorio ==
     274
     275Descargamos el código del repositorio aquí (TODO).
    272276
    273277Al igual que en el servidor necesitamos poner los ficheros en el directorio /opt:
     
    282286Continuaremos configurando los servicios externos ajenos a Opengnsys.
    283287
    284 
    285 === Instalación para desarrolladores ===
    286 
    287 ==== DHCP y TFTP ====
     288== Instalación para desarrolladores del repositorio ==
     289
     290Si eres desarrollador y te descargaste el [[#Descargadelcódigo | código por Subversion]] no hace falta que descargues nada más.
     291
     292== Configuración de los servicios externos para el repositorio ==
     293
     294=== DHCP y TFTP ===
    288295
    289296El DHCP es un servicio para dar a los ordenadores de una red una IP de manera automática, lo que nos ayudará a configurar nuestra red y permitir que los ordenadores arranque a través de la red. El TFTP es un servicio de envío de ficheros también necesario para el arranque de los clientes. El programa dnsmasq puede realizar ambos simultáneamente de una manera sencilla. Para instalar podemos ejecutar:
     
    308315Además de la configuración de dnsmasq, podemos configurar el arranque en red de los clientes. La configuración se encuentra en el directorio /opt/opengnsys/tftpboot/pxelinux.cfg/. Por defecto encontramos el fichero default que será utilizado por todos los clientes para arrancar. Se puede encontrar más información en http://www.syslinux.org/wiki/index.php/PXELINUX. Para configurar el tiempo de arranque por defecto modifique la variable timeout que establece el tiempo en decimas de segundos, es decir, que si ponemos 100, habrá un timeout de 10 segundos.
    309316
    310 ==== SAMBA ====
     317=== SAMBA ===
    311318
    312319Tanto Samba como NFS son servicios que nos permiten compartir ficheros con nuestros ordenadores en red, por lo que solo es necesario instalar uno de los dos. Se recomienda usar Samba porque suele ser más eficiente que NFS.
     
    341348}}}
    342349
    343 ==== NFS ====
     350=== NFS ===
    344351
    345352Si ya has instalado samba no es necesario instalar NFS.
     
    364371El fichero de configuración de NFS es /etc/exportfs. Tenemos un fichero de ejemplo en repo/services_config/exportfs que se puede utilizar para configurar el servicio.
    365372
    366 == Obtención de distro para los clientes ==
     373=== TCPD ===
     374
     375En algunas distribuciones como !ArchLinux por defecto rechaza todas las conexiones de todos los servicios, no es el caso de Ubuntu y Debian. Para evitar este comportamiento abría que añadir unas líneas al fichero /etc/hosts.allow que permita las conexiones de los servicios necesarios. Un ejemplo de este fichero lo podemos encontrar en /opt/opengnsys/repo/services_config/hosts.allow.
     376
     377== Obtención de la distro arranque para el repo ==
     378
     379(TODO)
    367380
    368381Lo más sencillo es descargarse la distribución ya preparada para funcionar. Puedes descargarla desde aquí: http://opengnsys.es/downloads/26
     
    372385Para más información sobre la generación del cliente o como poder hacer pruebas por !VirtualBox puedes mirar la información de desarrollo de [wiki:Version2/Desarrollo/OGLive OGLive]
    373386
    374 ==== TCPD ====
    375 
    376 En algunas distribuciones como !ArchLinux por defecto rechaza todas las conexiones de todos los servicios, no es el caso de Ubuntu y Debian. Para evitar este comportamiento abría que añadir unas líneas al fichero /etc/hosts.allow que permita las conexiones de los servicios necesarios. Un ejemplo de este fichero lo podemos encontrar en /opt/opengnsys/repo/services_config/hosts.allow.
     387== Arrancar el repositorio ==
     388
     389(TODO)
    377390
    378391== Instalación de los clientes ==