Cloud con Redhat OpenShift Flex
This page is a tutorial to explain how to install Dolibarr ERP-CRM on the Redhat OpenShift Flex Platform www.openshift.com
click twice on image to enlarge
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 se 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 y los costos de la aplicación en las diferentes etapas.
15 páginas / segundo Cientos de artículos ~ 50k visitantes por mes 3 pequeños engranajes 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 poner en marcha Dolibarr.
1.- Como desarrolladores, nos da la posibilidad de extender o crear nuestros propios módulos.
2.- Como empresarios, nos da la posibilidad de 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 de escala permite que 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
Rellenamos nuestros datos, para crear una cuenta. Click en Sign Up
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.
Click en Create your first application now
Elija un cartucho de programación web
1. Busque el tipo de aplicación
2. Configure la aplicación.
Es importante, definir bien el nombre de dominio, para este tutorial, hemos usado sdme. El domino, no se puede cambiar más a menos que, borremos todas nuestras aplicaciones y empecemos nuevamente de cero y eso es algo que a 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.
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.
HAProxy en Acción.
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.
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.
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
Para que genere de nuestra key, debemos mover el puntero del ratón, constantemente en el espacio en blanco del programa.
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.
Pegamos el código en Paste the contents of your public key file (.pub) y click en Save.
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?.
Copiamos el código ssh 53641a41e0b8cdf5ec000b76@startdolibarr-sdme.rhcloud.com
Abrimos nuestro WinSCP.
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.
En Private key file: seleccionamos nuestra clave privada rsa.ppk, click en OK, click en guardar y click en Login.
Cuando nos salga esta agradable ventanita click en Yes.
Aquí colocamos nuestra passphrase y click en OK.
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
Bajamos la versión genérica de Doibarr.
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.
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
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.
Copiamos los credenciales de acceso a MySQL. Los usaremos más adelante, para acceder a nuestra base de datos.
Una vez que ha terminado el upload de dolibarr, descrito en la imagen 23. Editamos el file index.php.
Lo abrimos 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");
?>
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.
- RewriteEngine on
- RewriteCond %{HTTP:X-Forwarded-Proto} !https
- RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Guardar con el hombre de .htaccess justo al lado de nuestro folder dolibarr y del index.php
Como se muestra en la siguiente imagen.
We see the SSL certificate is accepted by the browser.
Run Dolibarr install Wizard
We start the Dolibarr setup.
We select from the drop down, Default language to use (language code):, the appropriate language and click Next step.
Click in start.
We review the image 26, when we created the MySQL Cartridge.
And we focus on the lines.
- Root User: adminCRERXju
- Root Password: tccRTZ8-xCnK
- Database Name: startdolibarr
- Connection URL: mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/
To create the connection to the database, OpenShift gives us some environment variables. For dolibarr can connect to the database, we need to know the value of these variables, so back to WinSCP and the .env/mysql folder find these variables, as shown in the picture above.
Click the right mouse button on OPENSHIFT_MYSQL_DB_HOST, click on edit and show us the value of the variable, copy and paste into the Server field as shown in the image below. We do the same for OPENSHIFT_MYSQL_DB_PORT variable and paste its value in the Port field.
Note.- When you will these follow steps for the host and port for your particular installation, should be different than shown in this example.
Note2. - In this step, we also could create a different data base and a different owner, because be have the superuser credentials of MySQL, but this step does not touch it here today.
Click Next Step and displays the following window.
This screen basically tells us that the connection to the database has been established and this information is saved in the configuration file conf.php of dolibarr.
Click Next Step and start creating tables in the database, necessary for the work of Dolibarr.
This screen reports that have completed the creation of the tables.
Click in Next step.
We fill the fields with the username and password, which will be the administrator, for this example I used admin/admin. For the real case should be a stronger password.
Click in Next step.
Click in Go to Dolibarr (setup area).
Insert the username and password of the administrator, as defined above and Viola. We are within Dolibarr.
Appendix: Connection remote MySQL
As a final step, we will see the connection from a local client database, to our remote MySQL.
For this example I will use HeidiSQL, which serves both MySQL or PostgreSQL database and is Free.
Open HeidiSQL.
The first thing to do is select MySQL (SSH tunnel) Network type drop down, in so doing, HeidiSQL adds a new tab called SSH tunnel, as shown in the image below.
Note that, in the plink.exe location: field must specify the path PuTTY.exe, in the Password field entered the passphrase and Local Port field should always be in 3307.
We return to the Settings tab.
We fill the fields with the credentials of the database, select the database, click in Save and click in Open to test the connection.
And with that we end this tutorial.