Primero debemos de verificar si PostgreSQL ya está instalado (debemos recordar que algunas distribuciones, sobretodo 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 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 ser accesada, además, esta basado en la tecnología Servlet 3.0 y JSP 1.3, ambas son tecnologías 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 y jsp, es decir, es el motor que utiliza Forseti para ejecutar sus servlets y páginas jsp que permiten interactuar entre el motor PostgreSQL y el navegador del usuario. Además, Forseti 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 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 7, Tomcat 7 y la aplicación web Forseti. 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 7...
$ sudo apt-get install openjdk-7-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 tomcat7
Por último, vamos a instalar la aplicación web Forseti, é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/archivo/estable/forseti.tar.gz
$ tar -xzvf forseti.tar.gz
NOTA 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 4.0.19, entonces nuestro comando wget debe introducirse de la manera siguiente:
$ wget https://s3-us-west-2.amazonaws.com/forseti.org.mx/descargas/archivo/estable/forseti-4.0.19.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 bajo el directorio /usr/local/forseti. Este directorio y todo su contenido hay que protegerlo para que pertenezca al proceso tomcat7 y este pueda trabajar sobre el. Para esto usaremos el comando chown y chgrp de la siguiente manera:
$ sudo chown tomcat7 -R forseti
$ sudo chgrp tomcat7 -R forseti
$ sudo chmod 700 -R forseti
Ahora, debemos copiar la aplicacion web al directorio de aplicaciones del servicio Tomcat, hacer limpieza de archivos, delegar algunos permisos y reiniciar el servidor.
$ sudo cp forseti/ROOT.war /var/lib/tomcat7/webapps
$ sudo chown tomcat7 /var/lib/tomcat7/webapps/ROOT.war
$ sudo chgrp tomcat7 /var/lib/tomcat7/webapps/ROOT.war
$ sudo rm -r /var/lib/tomcat7/webapps/ROOT
$ sudo rm forseti/ROOT.war
$ sudo service tomcat7 restart
Si todo salió bien, ya tenemos todos los elementos instalados, ahora delegamos unos permisos indispensables al proceso tomcat:
$ sudo visudo
Esto abrirá el archivo de texto sudoers al cual debemos agregarle la siguiente linea justo después de la linea "root ALL=(ALL:ALL) ALL".
tomcat7 ALL = NOPASSWD: /usr/bin/openssl, /bin/cp
Guardamos y listo, ya esta todo instalado. Ahora debemos proceder a la configuración.