sábado, 14 de mayo de 2016

Como Instalar Odoo9-Con-Multiples-BasesDdatos-Dominios-SSL-MarcaBlanca


Como instalar Odoo 9 con:

* Múltiples bases de datos

* Múltiples sitios WEB en los puertos 80 y 443

* Múltiples dominios

* Multiples certificados SSL

* Addons para remover la marca Odoo de las bases de datos, Marca en Blanco (White Label, Debranding).

Bienvenidos, en este tutorial estaremos aprendiendo a instalar Odoo 9 y lograr que funcionen todos los ítems mencionados arriba.
El problema al instalar el módulo de Sitios web es que si creamos varias bases de datos con este módulo instalado, al ingresar el sistema no sabe cuál sitio web cargar.
Y si pensamos entrar a un sitio web con información tan importante como la que se genera con Odoo siempre es necesario asegurar el ingreso con HTTPS.

Para lograr todo esto es necesario:
* Instalar y configurar Postgres 9.4 localmente

* Configurar Nginx como reverse proxy

* Configurar Nginx con varios Host virtuales

* Configurar Odoo para escuchar sólo conexiones locales y así permitir a Nginx hacer todo el trabajo.

* Configurar Odoo para escoger las bases de datos en base al nombre de dominio.
Ej. Si el dominio es www.ejemplo.com entonces la base de datos debe llamarse ejemplo.com o www.ejemplo.com

* Agregar los Addons desarrollados por Yelizariev (Github) que permiten eliminar la marca Odoo de las bases de datos.

Como en todos los tutoriales de este Blog, vamos a utilizar un script que automatice la mayor parte del trabajo de configuración de Odoo 9, Nginx, Odoo Addons, Dependencias, etc.

Requisitos:
1.- Tener instalado Ubuntu server 14.04 LTS
(Ya me ha funcionado con otras versiones de Ubuntu como 15.10 o 16.04, pero el script principal está especialmente seteado para funcionar con Ubuntu server 14.04 LTS.)

Ver este post para mayor info sobre como instalar ubuntu server:
http://jp-kb.blogspot.com/2016/05/como-instalar-linux-ubuntu-1404-lts-en.html

2.- Obtener los certificados SSL para los sitios web
Ver este post para mayor info sobre como obterner certificados SSL de forma gratuita:
http://jp-kb.blogspot.com/2016/05/como-conseguir-certificados-ssl.html

Paso 1.- Descargar script y copiar Certificados

Iniciamos sesión en Ubuntu 14.04.
Ejecutamos el comando (Solo copiar el texto que se encuentra entre las líneas):
       
sudo wget https://raw.githubusercontent.com/jpvs1978/Instalar_odoo/Instalar-Odoo9-Nginx-SSL/Instalar-Odoo9-Nginx-SSL.sh
       

Este comando nos descarga una copia del archivo "Instalar-Odoo9-Nginx-SSL.sh" y lo guarda en el directorio donde se ejecutó el comando.
Podemos verificar la presencia del archivo ejecutando el comando "ls"

Antes de continuar siga los siguientes pasos para que se habiliten sus certificados.

Copie sus certificados en el directorio HOME del usuario con el que ejecuta el script.
Estos certificados serán utilizados para cargar el sitio web predeterminado
Parte pública provista por la entidad de certificación, cambiar el nombre a server.crt
Parte privada generada al crear la solicitud, cambiar el nombre a server.key
Si no tiene un certificado provisto por una entidad de certificación pública puede generar uno autofirmado con los comandos de abajo.
1.1.- solicita una clave, escriba cualquiera



openssl genrsa -des3 -out server.pkey 2048

1.2.- Con este comando eliminamos dicha clave, de otra forma tendríamos que escribir esa clave cada vez que se reinicie nginx



openssl rsa -in server.pkey -out server.key

1.3.- Con este comando creamos un archivo que contiene la solicitud del certificado y debemos proveer la info



openssl req -new -key server.key -out server.csr

1.4.- Finalmente  se firma el certificado y guardamos los archivos server.key y server.crt

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Paso 2.- Modificar variables del script

Utilizar el programa "nano" para editar el archivo descargado "Instalar-Odoo9-Nginx-SSL.sh"

sudo nano Instalar-Odoo9-Nginx-SSL.sh      

El comando de arriba nos va presentar el contenido del archivo descargado.

Para modificar el texto se trabaja de forma muy similar a Notepad de Windows.
Para salir del software "Nano" se debe presionar las teclas Ctrl + x, luego escribir "y" o "s" para aceptar los cambios y luego "Intro" para confirmar el nombre de archivo a guardar.

Entre las opciones que podemos cambiar están:
OE_USER="odoo"
Aquí podemos cambiar el texto odoo por cualquier nombre de usuario que queramos utilizar, se debe tomar muy en cuenta que el script utiliza este nombre de usuario para generar mucha información. Como por Ej. la ubicación de los archivos de instalación, la ubicacion de los addons, los Logs, el servicio de Odoo se va ejecutar en base a este nombre de usuario.
Si el usuario se llama ERP, entonces el servicio tendrá el nombre de "erp-server", por defecto el nombre del servicio sería "odoo-server"

INSTALL_WKHTMLTOPDF="True" 
Esta variable define si se va instalar o nó el software que nos permite exportar todos los informes en formato PDF.

OE_SUPERADMIN="admin" 
Esta variable define la contraseña que se va utilizar para realizar cambios a las bases de datos también se conoce como "Master Password" y permite copiar bases de datos, hacer Backup, eliminar, etc. Es muy importante recordar las opciones que escogemos y tomar debida nota.
No se recomienda modificar otras variables a menos que el usuario sepa muy bien lo que está haciendo.

Paso 3.- Permisos de ejecución y ejecución del script

Es necesario configurar los permisos del archivo Instalar-Odoo9-Nginx-SSL.sh para que sea ejecutable.

sudo chmod +x Instalar-Odoo9-Nginx-SSL.sh

Ejecutar el archivo ejecutable de la siguiente forma.

./Instalar-Odoo9-Nginx-SSL.sh       

El proceso de instalación es relativamente largo y realiza muchas conexiones y descargas desde internet, si usted cierra la sesión por algún motivo, el script se detendrá forzosamente.
Para poder ejecutar este script sin miedo a que se detenga le recomendamos leer la información adicional al final del documento.

Al finalizar el proceso se tendrá una copia funcional del software Odoo, a la cual podrá ingresar de las siguiente forma:
1.- Escribiendo el nombre de dominio Ej. www.midominio.com.bo
Esto cargará el sitio web por defecto con https (modo seguro) habilitado y le pedirá que cree la primer base de datos.
2.- Escribiendo la IP de la PC donde está ejecutando el script de instalación.
Ej. 192.168.0.1
Esto va generar un error de certificado y deberá ignorarlo para poder ingresar al sitio web predeterminado.
Este script está pensado para configurar el acceso a Odoo de forma segura con https:


Paso 4.- Acceder al administrador de bases de datos. (Crear, copiar, eliminar, etc.)

Hasta el momento hemos logrado:
Instalar Postgres 9.4 (mediante script)
Instalar Odoo 9 (mediante script)
Instalar Nginx (mediante script)
Crear la primer base de datos con el nombre igual a un dominio.
Acceder al sitio web predeterminado utilizando HTTPS

4.1 Ahora nos toca crear una nueva base de datos, para eso debemos entrar al sitio web predeterminado con la ruta adicional que nos lleva al administrador de las bases de datos.
Ej. https://www.midominio.com/web/database/manager  en la imagen de abajo se vé el dominio de una implementación de Odoo creada con el método descrito en este Tutorial.



Aquí podremos ver la primer base de datos creada, el nombre de la misma debería ser "www.midominio.com"
Como se puede ver en la imagen de arriba, tenemos varias opciones :
4.2 Backup (copia de seguridad).- Nos permite guardar el una copia de toda la base de datos y puede ser restaurada en el mismo sistema o también en otra instalación de Odoo que cumpla con todos los requisitos de Versión de Postgres, Versión de Odoo, Addons instalados y las versiones de los Addons.
4.3 Duplicate Copiar una base de datos, esto nos permite crear bases e datos idénticas, de esta forma podemos utilizar una como plantilla.
También podemos utilizar esta función para probar nuevos addons y cambios en la BD antes de ponerlos en produccion.
Etc.
4.4 Delete Eliminar la base de datos, sin posibilidad de recuperación si no hay Copia.
En los botones azules tenemos otras opciones:
4.5 Create Database  Esta opción nos permite crear una nueva base de datos sin ningún módulo instalado, debemos recordar que el nombre es muy importante puesto que el sistema nos va mostrar la base de datos que tenga el nombre del dominio.
Si deseamos cambiar este comportamiento debemos editar el archivo de configuración de Odoo, para ver como hacerlo ir al final del tutorial en la Información adicional / Cambiar el comportamiento del sistema Odoo para filtrar múltiples bases de datos.
4.5 Restore database  Esta opción nos permite restaurar el backup que realizamos más arriba
4.6 Set Master Password   Esta opción nos permite cambiar la contraseña que utilizamos para realizar modificaciones en el administrador de base de datos.

Paso 5.- Configurar Nginx con SSL para múltiples dominios.
5.1 Descargar el script

sudo wget https://raw.githubusercontent.com/jpvs1978/Instalar_odoo/Instalar-Odoo9-Nginx-SSL/AgregarVirtualHost.sh

5.2 Modificar y ejecutar el script

Modificar las variables del script y leer las indicaciones que se encuentran dentro del archivo.

sudo nano AgregarVirtualHost.sh

5.3 cambiar el permiso de ejecución y ejecutar el script

sudo chmod +x AgregarVirtualHost.sh
./AgregarVirtualHost.sh

Paso 6.- Acceder al nuevo dominio. 


Información adicional.-

* Comandos útiles



sudo nano /etc/odoo-server.conf
sudo service odoo-server restart -c /etc/odoo-server.conf
sudo service odoo-server stop
sudo service odoo-server start
sudo reboot
screen       

Tomar en cuenta que "odoo" es el usuario por defecto seleccionado en las variables del Script de instalación, si usted cambió dicho usuario debe modificar los comandos mencionados arriba acorde a su elección.
- El primer comando nos permite leer y modificar el archivo de configuración que controla el funcionamiento de la mayor parte de las funciones de odoo.
- El segundo comando nos permite reiniciar el servicio y actualizar cualquier modificación que se haya realizado al archivo de configuración.
- El tercer comando detiene el servicio
- El cuarto comando inicia el servicio
- El quinto comando reinicia el sistema operativo.
- El sexto comando nos permite ejecutar procesos en una pantalla diferente que se ejecuta en segundo plano y podemos desconectarnos de ella sin detener los procesos que se ejecutan.
Para manipular las pantallas despues del comando "screen" se utiliza la combinación de teclas "Ctrl+a"
luego de ctrl+a se puede escribir los caracteres de abajo para modificar el comportamiento.
? Muestra la ayuda y todas las opciones, ver abajo las más útiles.
c Crean una nueva consola virtual
n Cambia a la siguiente consola virtual disponible
p Cambia a la consola virtual anterior
" Lista todas las consolas virtuales disponibles con sus número asignados
1-9 permite traer la consola que corresponde a este número.
d se desconecta de la terminal actual y le muestra la línea de comandos normal de ubuntu
screen -r Permite volver a conectarse a las consolas virtuales de screen

* Cambiar el comportamiento del sistema Odoo para filtrar múltiples bases de datos.

Si deseamos cambiar el comportamiento configurado por nuestro script de forma predeterminada debemos editar el archivo de configuración de Odoo.
El script que utilizamos para instalar Odoo 9 ubica dicho archivo en /etc/odoo-server.conf
modificamos el archivo con el comando:

sudo nano /etc/odoo-server.conf   


En este archivo debemos buscar el valor dbfilter = ^%h$ y cambiarlo por dbfilter = .*
luego reiniciamos Odoo 9 y aplicamos los cambios con el comando:

sudo service restart odoo-server -c /etc/odoo-server.conf

Gracias a esta modificación el sistema nos va mostrar todas las bases de datos disponibles, el problema con esto es que si dos bases de datos tienen el módulo de sitio web instalado veremos muchos errores de cookies, errores de inicio de sesión y muchos problemas debido a que los navegadores no saben cómo lidiar con varios sitios web almacenados con la misma url.
Una vez terminemos de modificar las bases de datos podemos volver a la configuración con el filtro ^%h$


Este tutorial está basado en el trabajo de Aschenkels, Yenthe666, Yelizariev, Bassn en github
Si este Artículo ha sido útil por favor visite las páginas de nuestros auspiciadores.












No hay comentarios:

Publicar un comentario