Instalación

Preparando el servidor


Forseti ERP trabaja bajo el sistema operativo Linux y como la documentación esta diseñada para gente que apenas está empezando a conocer Linux, la instalación y configuración que se muestran en esta documentación están soportadas únicamente para la familia de distribuciones basadas en Ubuntu (Ubuntu, Ubuntu Server, Kubuntu, Xubuntu, Lubuntu, Linux Mint, etc.) ya que desde nuestro punto de vista es la que creemos el mejor punto de inicio hacia el salto a Linux. Estas distribuciones las puedes descargar totalmente gratuitas desde sus sitios web. La distribución Ubuntu la puedes descargar desde http://www.ubuntu.com en el cual te explica paso a paso como descargarlo e instalarlo. Usuarios con cierta experiencia en Linux podrán instalar en cualquier otra distribución con solo adecuar los comandos y las configuraciones a la distribución deseada.

Para los que no conocen Linux, este es un sistema operativo sumamente seguro y poderoso además de ser gratuito. El equipo Forseti ERP sugiere amplia-mente a la gente a dar el salto a utilizar Linux y los proyectos de software libre. Existen varias distribuciones como Red-Hat, Suse, Gentoo, Fedora, Debian, Ubuntu, etc. en versiones para servidor o escritorio, todas ellas basadas en el mismo kernel (el corazón del sistema operativo). Como en Linux mucho del trabajo administrativo enfocado a servicios como Forseti ERP (Forseti ERP es un servicio web) es realizado en la consola de comandos, las versiones de servidor, a diferencia de Windows, se instalan sin una interfaz gráfica. Si deseas aprender sobre Linux y su funcionamiento antes de la instalación, puedes revisar los miles de documentos disponibles en Internet. Ya que tengamos instalada la distribución en nuestro ordenador podemos empezar con nuestra instalación del servidor Forseti ERP, solo recuerda que debemos tener conexión a Internet para poder realizarla.

Los siguientes son los pre-requisitos necesarios para la instalación y configuración de Forseti ERP y para seguir paso a paso esta documentación:

Una vez estando en la linea de comandos (para sistemas linux de escritorio con interfaz gráfica se puede utilizar una terminal que regularmente se encuentra en el menú de accesorios o herramientas del sistema) lo primero que debemos de hacer es actualizar nuestro sistema operativo introduciendo los siguientes comandos:

sudo apt-get update
sudo apt-get upgrade

Al ejecutar este comando se te pedirá tu contraseña ya que la instalación de paquetes solo puede ser ejecutada por un usuario con privilegios de super usuario. El comando sudo se utiliza para delegar privilegios de super usuario (el usuario con todos los privilegios) a un usuario administrativo común que debería ser tu caso. Si no se antepone el comando sudo a apt-get, marcará un error de permisos denegados para la actualización e instalación de paquetes. Esto nos actualizará todo nuestro sistema operativo. Es conveniente actualizar una vez por semana ya que en linux las actualizaciones incluyen paquetes de seguridad, paquetes de nuevas versiones de aplicaciones y parches para nuestro sistema operativo, y todo esto absolutamente gratuito.

Lo siguiente es instalar el idioma español y establecer la fecha ya que en algunas instalaciones como las de instancias en la nube quedan por defecto instaladas con el idioma ingles y la fecha UTC. Si instalaste directo en tu ordenador a través del instalador, seguramente ya esté instalado el idioma español y el área de tu zona horaria, en estos casos puedes saltarte los siguientes pasos e ir directo a la instalación de Forseti ERP, de lo contrario, proseguimos:

sudo apt-get install language-pack-es
sudo apt-get install aspell-es
sudo apt-get install myspell-es
sudo dpkg-reconfigure locales

Agregamos es_MX.UTF-8 en las pantallas de la configuración y aceptamos. Ahora proseguimos con la configuración de la zona horaria con tzdata y establecemos la fecha y hora de nuestra zona ejecutando el siguiente comando:

sudo dpkg-reconfigure tzdata

Debemos seleccionar nuestra zona y finalmente, re iniciamos el sistema:

sudo reboot

Instalando el servidor Forseti ERP


Primero debemos de verificar si PostgreSQL ya está instalado, recordemos que algunas distribuciones de versión para servidores pueden instalarlo desde el momento en que se instaló el sistema operativo:

dpkg -s postgresql

Si PostgreSQL ya esta instalado, esta debe ser la versión 9.3 o superior, de lo contrario se tendrá que actualizar o reinstalar PostgreSQL con esta versión. La forma de hacerlo está fuera del alcance de esta documentación. Si es una versión correcta, entonces puedes dar el salto a la instalación del servidor Forseti ERP en la siguiente sección.

Si PostgreSQL no esta instalado aún, vamos a instalarlo:

sudo apt-get install postgresql-client
sudo apt-get install postgresql postgresql-contrib

Si todo va bien, te pedirá la confirmación de instalación de los paquetes postgresql los cuales instalarán el servidor de base de datos PostgreSQL 9.3 o superior en el sistema.

Forseti es una aplicación web, lo que significa que utiliza un servicio web para poder accesar, además, esta basado en la tecnología Servlet 3.0 que es una tecnología de programas Java que se ejecutan en un servidor y construyen páginas web a partir de datos dinámicos. Apache Tomcat es el contenedor de servlets, es decir, es el motor que utiliza Forseti ERP para ejecutar los servlets programados en el que permiten la conexión entre el motor de base de datos PostgreSQL y el navegador del usuario. Además, Forseti ERP se apoya en la tecnología JSSE para construir certificados y llaves para que toda la información pueda viajar cifrada. Por último, pero de suma importancia, Forseti ERP utiliza una aplicación llamada RSYNC para poder soportar tareas de respaldo y otras tareas de almacenamiento de datos alternas al servicio de base de datos que brinda PostgreSQL.

En resumen, los siguientes elementos se deben instalar para que el servidor Forseti pueda funcionar:

  • OpenSSL,
  • RSYNC,
  • Java OpenJDK 8 o superior
  • Tomcat 8 o superior
  • La aplicación web Forseti ERP.

Empezaremos por la instalación del servicio OpenSSL. Ya que OpenSSL se utiliza para muchos procesos del sistema, lo mas probable es que ya se encuentre instalado. De todas formas, se pudiera verificar antes de la instalación de la siguiente manera:

dpkg -s openssl

Si no está instalado, lo instalamos:

sudo apt-get install openssl

Ahora continuamos con el servicio RSYNC

sudo apt-get install rsync

Ahora instalamos la implementación Java OpenJDK 8…

sudo apt-get install openjdk-8-jre

Si todo va bien, se instalará la maquina virtual de java y sus herramientas. Ahora podemos seguir con nuestro siguiente servicio que va a ser Tomcat.

sudo apt-get install tomcat9

Por último, vamos a instalar la aplicación web Forseti ERP, ésta se instala de una manera distinta a los demás, primero la descargamos con el comando wget y desempaquetamos el archivo comprimido descargado:

wget https://s3.us-west-2.amazonaws.com/forseti.org.mx/descargas/distribucion/forseti.tar.gz
tar -xzvf forseti.tar.gz
IMPORTANTE: En situaciones donde intentamos recuperar todo un servidor desde un respaldo, debemos forzosamente instalar el servidor con la versión de nuestro respaldo. Para ello, debemos sustituir el archivo "forseti.tar.gz" por el archivo de nuestra versión "forseti-[version].tar.gz" por ejemplo, si la versión del respaldo es la 5.1.10, entonces nuestro comando wget debe introducirse de la manera siguiente: $ wget https://s3.us-west-2.amazonaws.com/forseti.org.mx/descargas/distribucion/forseti-5.1.10.tar.gz
Para mayor información sobre la restauración de servidores revisa la sección SAF / Administración / Servidor y Empresas de esta documentación. También es importante revisar las rutas oficiales de descargas para localizar la versión de tu servidor en caso de que no fuera una versión estable. Estas se encuentran en la sección SOF / Anexos / Rutas de descargas.

Ahora copiamos el directorio forseti dentro del directorio de sistema /usr/local, y nos posicionamos en el.

sudo cp -R forseti /usr/local
cd /usr/local

Hasta el momento, obtenemos el servidor Forseti ERP bajo el directorio /usr/local/forseti. Este directorio y todo su contenido hay que protegerlo para que pertenezca al proceso tomcat y este pueda trabajar sobre el. Para esto usaremos el comando chown y chmod de la siguiente manera:

sudo chown tomcat:tomcat -R forseti
sudo chmod 700 -R forseti

Ahora debemos mover la aplicación web al directorio de aplicaciones del servicio tomcat delegándole el permiso necesario para desplegarla:

sudo mv forseti/forseti.war /var/lib/tomcat9/webapps
sudo chmod 755 /var/lib/tomcat9/webapps/forseti.war

Si todo salió bien, ya tenemos todos los elementos instalados, ahora delegamos unos permisos indispensables al proceso tomcat. Primero daremos acceso de escritura y lectura al directorio forseti. Para ello, ubicamos el archivo tomcat9.service con:

sudo find /etc -name tomcat9.service

En este caso se encuentra en la ruta /etc/systemd/system/multi-user.target.wants/tomcat9.service y abrimos con nano:

sudo nano /etc/systemd/system/multi-user.target.wants/tomcat9.service

Esta abrirá el archivo tomcat9.service al cual debemos agregar el permiso con ReadWritePaths=/usr/local/forseti/ y ReadWritePaths=/var/lib/tomcat9/conf/ al final de la sección de #Security:

............
............
# Security
User=tomcat
Group=tomcat
PrivateTmp=yes
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
CacheDirectory=tomcat9
CacheDirectoryMode=750
ProtectSystem=strict
ReadWritePaths=/etc/tomcat9/Catalina/
ReadWritePaths=/var/lib/tomcat9/webapps/
ReadWritePaths=/var/log/tomcat9/
ReadWritePaths=/var/lib/tomcat9/conf/
ReadWritePaths=/usr/local/forseti/

[Install]
WantedBy=multi-user.target
.......
.......

Ahora debemos permitir algunos procesos de tomcat que pueda ejecutar con sudo:

sudo visudo

Esto abrirá el archivo de texto sudoers al cual debemos agregarle la linea tomcat ALL = NOPASSWD: /usr/bin/openssl, /bin/cp linea justo después de la linea root ALL=(ALL:ALL) ALL.

root ALL=(ALL:ALL) ALL
tomcat ALL = NOPASSWD: /usr/bin/openssl, /bin/cp, /bin/chmod

Guardamos el archivo y recargamos el servicio tomcat con:

sudo systemctl daemon-reload
sudo service tomcat9 restart

¡Listo!, ya esta todo instalado. Ahora debemos proceder a configurar nuestra instalación.