Changes between Version 17 and Version 18 of Version2/Instalacion
- Timestamp:
- Sep 7, 2011, 3:55:01 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Version2/Instalacion
v17 v18 4 4 == Nota importante == 5 5 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 == 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. 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 10 La manera más sencilla de hacerlo es descargar el instalador creado y ejecutarlo. Se puede descargar desde aquí: (TODO) 11 12 Una 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 18 Por último ejecutar: 19 {{{ 20 # /opt/opengnsys/server_installer.sh 21 }}} 22 23 A continuación debemos responder a las siguientes preguntas (TODO): 24 25 26 == Instalación para desarrolladores del servidor == 9 27 10 28 Como se puede leer en la introducción a Opengnsys en el servidor principal debe ejecutar dos servicios: … … 12 30 * El servicio que recoge de los resultados de los trabajos ejecutados por los clientes (job_receiver). 13 31 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 === 37 33 38 34 Es 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). … … 57 53 Más tarde procederemos a su configuración. 58 54 59 === Preparación del entorno===55 === Instalación del entorno virtual === 60 56 61 57 Para 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: … … 103 99 }}} 104 100 105 === Configuración === 106 107 ==== Instalación de entorno virtual ==== 101 Con todo lo necesario descargado e instalado procedemos a la configuración. 102 103 === Configuración de SQLAlquemy === 104 105 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í: 106 107 {{{ 108 #DB = 'sqlite:///database.sqlite' 109 DB = 'postgresql://opengnsys:opengnsys@localhost/opengnsys' 110 }}} 111 112 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]. 113 114 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: 115 116 {{{ 117 # /etc/init.d/postgresql start 118 }}} 119 120 121 Ahora 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 131 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. 132 133 {{{ 134 $ createuser -D -R -S -P opengnsys 135 }}} 136 137 Una 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 143 Con 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 {{{ 148 postgres cannot access the server configuration file "/var/lib/postgres/data/postgresql.conf": No such file or directory 149 }}} 150 151 Probad a ejecutar como usuario postgres: 152 153 {{{ 154 $ initdb -D /var/lib/postgres/data/ 155 }}} 156 157 Y volver a intentar arrancar el servicio de nuevo. 158 159 === Configuración de SQLite === 160 161 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: 162 163 {{{ 164 DB = 'sqlite:///database.sqlite' 165 #DB = 'postgresql://opengnsys:opengnsys@localhost/opengnsys' 166 }}} 167 168 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. 169 170 === Creación del entorno virtual === 108 171 109 172 Instalemos las dependencias python que tiene el servicio web a través de la herramienta VirtualEnv. Accedemos a el directorio server y ejecutamos: … … 136 199 Este comando sólo habrá que usarlo una vez ya que es un proceso de instalación y una vez hecho no habrá que repetirlo. 137 200 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 === 206 202 207 203 Simplemente accedemos al directorio "server/web/" y ejecutamos: … … 212 208 }}} 213 209 214 Esto generará las tablas necesarias en la base de datos. 215 216 === = Generación de traducciones ====210 Esto 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 === 217 213 218 214 Al igual que en el caso anterior vamos al directorio "server/web/" y ejecutamos lo siguiente: … … 229 225 === SSL Setup === 230 226 227 (TODO además de crear esta página en inglés, traducir esto al español) 228 231 229 OpenGnSys 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. 232 230 … … 235 233 == Arrancar el servidor == 236 234 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> 235 Para ejecutar la consola web: 236 237 {{{ 238 $ cd server/ 239 $ source env/bin/active 240 $ cd web/ 241 $ ./admin.py 242 }}} 243 244 El servicio web será lanzado en http://localhost:8080/. Si quieres modificar el puerto usado: 245 246 {{{ 247 $ ./admin.py <puerto> 247 248 }}} 248 249 249 250 Recordad que para un puerto menor que 1024 hace falta tener privilegios de superusuario. 250 251 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 == 252 El '''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 261 Hay 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 == 260 264 261 265 La 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: … … 267 271 268 272 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 275 Descargamos el código del repositorio aquí (TODO). 272 276 273 277 Al igual que en el servidor necesitamos poner los ficheros en el directorio /opt: … … 282 286 Continuaremos configurando los servicios externos ajenos a Opengnsys. 283 287 284 285 === Instalación para desarrolladores === 286 287 ==== DHCP y TFTP ==== 288 == Instalación para desarrolladores del repositorio == 289 290 Si 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 === 288 295 289 296 El 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: … … 308 315 Ademá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. 309 316 310 === = SAMBA ====317 === SAMBA === 311 318 312 319 Tanto 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. … … 341 348 }}} 342 349 343 === = NFS ====350 === NFS === 344 351 345 352 Si ya has instalado samba no es necesario instalar NFS. … … 364 371 El 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. 365 372 366 == Obtención de distro para los clientes == 373 === TCPD === 374 375 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. 376 377 == Obtención de la distro arranque para el repo == 378 379 (TODO) 367 380 368 381 Lo más sencillo es descargarse la distribución ya preparada para funcionar. Puedes descargarla desde aquí: http://opengnsys.es/downloads/26 … … 372 385 Para 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] 373 386 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) 377 390 378 391 == Instalación de los clientes ==