Cloud con Redhat OpenShift Flex

Esta página es un tutorial para explicar cómo instalar Dolibarr ERP-CRM en la plataforma Redhat OpenShift Flex www.openshift.com

haga clic dos veces sobre la imagen que desea agrandar

Image 1
Url openshift.JPG


Un poco sobre OpenShift

OpenShift plataforma como servicio

OpenShift es Plataforma como Servicio (PaaS) de Red Hat, que permite a los desarrolladores crear rápidamente aplicaciones escalables host, en un entorno de nube. Con OpenShift tienes elección de ofertas, en línea, en la premisa, y las opciones de proyectos de código abierto.

OpenShift brinda ayuda para construir y desplegar aplicaciones web, backends móviles, arquitecturas orientadas a servicios, y recibe sus servicios favoritos.

Openshfit trabaja con Gears y Cartridges, que son términos, con los que tendremos que familiarizarnos.


Que es un Gear?
Un gear es un contenedor de recursos limitados que ejecuta una o más pilas de software especificados por el usuario, también conocidas como cartridges. Cada gear tiene una cantidad limitada de memoria RAM y espacio en disco. Si una aplicación necesita más recursos, puede ser configurado para utilizar automáticamente más gears.


¿Cómo trabajan los Gears?
Echemos un vistazo a una aplicación de ejemplo basada en Drupal que se ejecuta en OpenShift. Podemos estimar las necesidades de la aplicación en las diferentes etapas.

  • 15 páginas / segundo
  • Cientos de artículos
  • ~ 50k visitantes por mes
  • 3 pequeños Gears
  • Plan Libre

Como vemos, un plan libre, puede ser suficiente, para una Empresa pequeña o mediana. Para empresas más grandes, se puede cambiar al plan siguiente.


En OpenShift, tenemos dos posibilidades claras, para Dolibarr, desde la puesta en marcha, hasta la puesta en producción.

1.- Extender o crear nuestros propios módulos.
2.- Poner en producción nuestro DoliBarr.


Ventajas que nos ofrece OpenShift

Es un sitio seguro, al cual se accede a través de SSH.

Es escalable
Aplicación escalable, permite a la aplicación reaccionar a los cambios en el tráfico y automáticamente asignar los recursos necesarios para manejar su demanda actual. La infraestructura OpenShift monitorea el tráfico de Internet entrante y automáticamente trae copias de su cartucho de Web en línea para manejar las peticiones.

Nos da control total, sobre nuestra base de datos, para conectarnos remotamente a través de un cliente GUI como HeidySQL.

En caso de decantarnos por MySql, tenemos a disposición, el motor InnoDB, imprescindible para transacciones.

Nos da la posibilidad, de compartir Certificados SSL de RedHat o personalizar nuestro propio SSL, en caso de tenerlo. Imprescindible, para enviar nuestros datos, tanto de logín o de transferencias bancarias, encriptadas y seguras.

Dicho todo esto, comencemos, la puesta en marcha de nuestra aplicación DoliBarr.

Create an account

Click en SIGN UP

Image 2
 

Rellenamos nuestros datos, para crear una cuenta. Click en Sign Up


Image 3
 

Nos enviaran, un email, a nuestra cuenta de correo, para confirmar.

Cree una instancia

Parte 1 - Creando una instancia

Click en LOG IN nuevamente y nos mostrara el aspecto inicial de nuestra Consola de Aplicaciones.

Image 4
 

Click en Create your first application now


Elija un Cartridge de programación web

Image 5
 

1. Busque el tipo de aplicación


Image 6
 

2. Configure la aplicación.

Es importante, definir bien el nombre de dominio, para este tutorial, hemos usado sdme. El dominio, no se puede cambiar más a menos que, borremos todas nuestras aplicaciones y empecemos nuevamente de cero y eso es algo que nadie quiere.

También, tendremos que informar, si tenemos un repositorio externo Git, con nuestro código.


Aquí viene lo divertido.

En scaling cambiaremos a Scale with web traffic.

La creación de esta aplicación, usara un Gear de los 3 que disponemos, lo indica justamente, al lado del botón Create Application.

Click en Create Application.

Image 7
 

Cuando la aplicación es escalable, no se puede añadir más Cartridges, al Gear. Por ejemplo sí queremos usar MySql, deberá ir aparte, en otro Gear.

En la imagen, de arriba, vemos que a nuestro Gear, se ha añadido el balanceador de carga, que hará nuestra aplicación escalable.

Arriba en el extremo derecho, existe también un botón, por si necesitamos reiniciar el Gear.

Nota.- Con PuTTY, podríamos solventar necesidades más explicitas, para controlar nuestros Gears, con línea de comandos.


Click en el enlace Web load Balancer.

Image 8
 

HAProxy en Acción.

Image 9
 

Si vemos nuestra url startdolibarr-sdme.rhcloud.com este es el aspecto inicial, que tiene.


Parte 2 - Configuración de Herramientas de administración

Hasta aquí todo bien. Ahora, pasemos a la segunda parte, de nuestro tutorial.

Para esta parte, que será la referida a la administración de nuestra aplicación, existen dos caminos, el primero es por CLI (línea de comandos basado en Ruby) y el segundo, de forma más declarativa, por consola y con SSH.

Para este tutorial, he elegido la forma más fácil he intuitiva, que es la segunda opción.


Manos a la obra.

Necesitamos un cliente SSH/FTP como WinSCP y PuTTY.

Los Bajamos y los instalamos.

Image 10
 

Dentro la carpeta donde se instaló WinSCP, encontraremos la carpeta PuTTY y dentro de esta carpeta, el programa puttygen.exe, este programa es importante, ya que, es el que nos ayudara a generar nuestro acceso SSH, para conectarnos a nuestro Gear.


Doble Click en puttygen.

image 11
 

Dejamos los valores por defecto, SSH-2 RSA y el número de bits en 2048.

Con estos valores ya tendremos una key, fuertemente encriptada.

Click en Generate

Image 12
 

Para que genere de nuestra key, debemos mover el puntero del ratón, constantemente en el espacio en blanco del programa.


Image 13
 

Una vez que ha finalizado la generación de nuestra key, tendremos que poner una passphrase.

Click en Save public key, para guardar nuestra key publica, le damos el nombre de rsa.pub, hacemos lo mismo con Save private key, y le damos el nombre de rsa.ppk.

Una key pública, es como la cerradura de una puerta y la key privada es como la llave que abre esa cerradura.

Marcamos el código generado en el área de texto y lo copiamos, luego nos vamos a nuestra consola de OpenShift.


Image 14
 

Pegamos el código en Paste the contents of your public key file (.pub) y click en Save.


Image 15
 

Perfecto ahora OpenShift, tiene nuestra cerradura, y nosotros la llave.

Ahora vamos al tab Applications en nuestra consola de OpenShift


Click sobre nuestra aplicación startdolibarr.

Click en Want to log in to your application?.

Image 16
 

Copiamos el código ssh 53641a41e0b8cdf5ec000b76@startdolibarr-sdme.rhcloud.com


Abrimos nuestro WinSCP.

Image 17
 

Ponemos la primera parte, 53641a41e0b8cdf5ec000b76 antes de la @ en el campo User name, y la segunda parte, startdolibarr-sdme.rhcloud.com después de la @ en el campo Host name.

Es aconsejable no colocar el password/passphrasse, en este punto, por motivos de seguridad. La usaremos más adelante.

Click en Advanced.


Image 18
 

En Private key file: seleccionamos nuestra clave privada rsa.ppk, click en OK, click en guardar y click en Login.


Image 19
 

Cuando nos salga esta agradable ventanita click en Yes.


Image 20
 

Aquí colocamos nuestra passphrase y click en OK.


Image 21
 

Viola tenemos acceso vía SSH a nuestro Gear.

En la parte izquierda esta nuestro espacio local y a la derecha el remoto.


Enviar archivos de Dolibarr

Image 22
 

Bajamos la versión genérica de Doibarr.


Image 23
 

En la parte remota seleccionamos la ruta /var/lib/openshift/53641a41e0b8cdf5ec000b76/app-root/runtime/repo

Transferimos la carpeta dolibarr, de nuestra máquina local a Openshift, presionando F5. Este proceso, puede tardar varios minutos, así que mientras esperamos, nos dedicaremos a crear nuestro Gear, para la base de datos.


Image 24
 

Volvemos a la consola de OpenShift y con nuestra aplicación seleccionada, hacemos click en la parte inferior, del apartado Databases y seleccionamos Add MySQL 5.5


Image 25
 

Click en add Cartridge.

Nota.- En una aplicación normal sin Scale activado, el Cartridge Mysql se añadiría al Gear actual, pero en nuestro caso, openShift nos informa que se ocupará un nuevo Gear para MySQL.


Image 26
 

Copiamos los credenciales de acceso a MySQL. Los usaremos más adelante, para acceder a nuestra base de datos.


Image 27
 

Una vez que ha terminado el upload de dolibarr, descrito en la imagen 23. Editamos el file index.php.

Lo abrimos en nuestro editor de texto favorito y reemplazamos con el siguiente código.

<?php
header("Location: dolibarr/htdocs");
?>

Hacemos una copia del index.php en la carpeta dolibarr y volvemos a editarlo y quitamos dolibarr/.

<?php
header("Location: htdocs");
?>


Image 28
 

Lo que acabamos de hacer, sirve, para que no se muestre la estructura de nuestros folders y files de dolibarr en el navegador web, con el index.php obligamos a que se redirija al inicio de DoliBarr.

Por último y antes de empezar con la configuración de dolibarr, conviene usar SSL (protocolo criptográfico), que nos proporciona seguridad a la hora de enviar nuestros datos desde el Navegador web al servidor. El uso de SSL es para dar un plus extra a las medidas de seguridad propias de dolibarr, que ya son buenas.

Abrimos nuestro editor de textos una vez más y añadimos lo siguiente.

Guardar con el hombre de .htaccess justo al lado de nuestro folder dolibarr y del index.php

Como se muestra en la siguiente imagen.


Image 29
 

 


Image 30
 

Image 31
 

Vemos como el certificado SSL es aceptado por el navegador.


Ejecutar el asistente de instalación Dolibarr

Comenzamos con la configuración de DoliBarr.

Seleccionamos del desplegable, Default language to use (language code): , el idioma correspondiente y click en Next step.


Image 32
 

Click en start.


Image 33
 

Revisamos la imagen 26, cuando creamos el Cartridge MySQL.

Y nos enfocamos en las líneas.

  • Root User: adminCRERXju
  • Root Password: tccRTZ8-xCnK
  • Database Name: startdolibarr
  • Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/


Para crear la conexión con la base de datos, OpenShift nos proporciona unas variables de entorno. Para que dolibarr pueda conectarse a la base de datos, necesitamos saber el valor, de estas variables, así que volvamos a WinSCP y en la carpeta .env/mysql encontraremos dichas variables, como se muestra en la imagen de arriba.

Click con el botón derecho sobre OPENSHIFT_MYSQL_DB_HOST, click en edit y nos mostrara el valor que tiene la variable, copiamos y pegamos en el campo Server como se muestra en la imagen de abajo. Hacemos lo mismo para la variable OPENSHIFT_MYSQL_DB_PORT y pegamos su valor en el campo Port.


Image 34
 

Nota.- Para cuando sigan estos pasos, el host y el puerto, para su instalación particular, debería ser diferente, al mostrado en este ejemplo.

Nota2.- En este pasó, también podríamos crear una Base de datos diferente y un propietario diferente, ya que poseemos las credenciales de súper usuario de MySQL, pero este paso no lo tocaremos aquí hoy.

Click en Next Step y nos muestra la siguiente ventana.


Image 35
 

Esta pantalla, básicamente nos informa que, la conexión a la base de datos se ha establecido y que se ha guardado esta información, en el file de configuración de dolibarr conf.php.

Click en Next Step y comenzará la creación de las tablas en la base de datos, necesarias para el trabajo de DoliBarr.


Image 36
 

Esta pantalla informa que, ha terminado la creación de las tablas.

Click en Next step.


Image 37
 

Llenamos los campos con el username y password, del que será el administrador, para este ejemplo he usado admin/admin. Para el caso real debería ser un password más fuerte.

Click en Next step.


Image 38
 

Click en Go to Dolibarr (setup area).


Image 39
 

Introducimos el username y password del administrador, definido anteriormente y Viola. Estamos dentro de DoliBarr.


Apéndice: MySQL conexión remota

Como paso final, veremos la conexión, desde un cliente local de Base de datos, hasta nuestro MySQL remoto.

Para este ejemplo usare HeidiSQL, que sirve tanto para base de datos MySQL o PostgreSQL y es Gratuito.

Abrimos HeidiSQL.

Lo primero que debemos hacer es seleccionar MySQL (SSH tunnel) del desplegable Network type, al hacer esto, HeidiSQL añade un nuevo tab llamado SSH tunnel, como se muestra en la imagen de abajo.


Image 41
 

Tenga en cuenta que, en el campo plink.exe location: de deberá especificar la ruta de PuTTY.exe, en el campo Password introducidos la passphrase y el campo Local Port debe estar siempre en 3307.

Volvemos al tab Settings.


Image 42
 

Obtenemos el hostname y el port, de MySQL, para conectar DoliBarr a la Base de datos. Arriba en la imagen 33. Llenamos los campos, con las credenciales de la base de datos, seleccionamos la base de datos y click en guardar y en Open para probar la conexión.

Image 43
 


Adición

Conexión al Gear MySQL

Recordaréis cuando obtuvimos el hostname y el port, de MySQL, para conectar DoliBarr a la Base de datos. Arriba en la imagen 33.

Image 44
 

La primera parte del Host name: es también el User name: 5364c670e0b8cd09f500036d-sdme.rhcloud.com damos click en Advanced y verificamos, que todo este como en la imagen 18.

Click en Save y click en Login.

Con WinSCP abierto, vamos al menú Options --> preferences --> Integration --> Applications como se muestra en la imagen de abajo.

En el campo PuTTY/terminal client path: seleccionamos la ruta, donde tenemos el putty.exe y marcamos los tres CheckBoxes.


Image45
 


Cada vez que iniciemos sesión con WinSCP también se iniciará sesión en PuTTY. Como vemos en la imagen de abajo.

Image 46
 

Tener PuTTY abierto y conectado a la misma sesión, nos permitirá ejecutar sentencias de línea de comandos, para parar o arrancar el Gear o el servidor MySQL.

Nota.- También en la parte remota de WinSCP, podemos navegar hacia carpetas como /var/lib/openshift/5364c670e0b8cd09f500036d/mysql/data/startdolibarr donde esta físicamente nuestra base de datos o podemos ir a /var/lib/openshift/5364c670e0b8cd09f500036d/app-root/logs para ver los logs de MySQL.

Si escribimos help, en la ventana de PuTTY, nos mostrará algunos comandos importantes.

Entre los comandos más comunes están:

ctl_app
Controle su aplicación (MySQL)

  • ctl_app start
  • ctl_app stop
  • ctl_app restart
  • ctl_app status


ctl_all
Similar a ctl_app pero podemos controlar todo el Gear.

  • ctl_all start
  • ctl_all stop
  • ctl_all restart
  • ctl_all status

Citados aquí www.openshift.com/developers/remote-access donde encontraremos más comandos útiles.

Y con esto terminamos este tutorial.