Séneca FX "Server" - Instalación

Antes de instalar

Que plataformas están soportadas

Séneca FX se ejecuta en Linux. Actualmente, sólo Debian 8 (jessie) está soportado.

Requerimientos hardware

Los requerimientos hardware dependen en gran medida de la carga de trabajo que se espera del sistema (número de ingestas diarias, tamaño de los archivos de media, número medio/picos de conexión al servidor web, etc.).

Como mínimo, son necesarios 4 Cores, 8 GB RAM & 120 GB libres en el disco del sistema y un disco adicional para el almacenamiento de medios, backups, etc. para un número de usuarios pequeño (<100) y una o dos ingestas diarias.

Si el sistema va a tener una mayor demanda de trabajo, se aconsejan un servidor con 8/12 cores y 8/16 GB RAM.

Que gestores de BB.DD. están soportados

Séneca FX espera MySQL como gestor de BB.DD.
MySQL se instala por defecto durante la instalación de Séneca FX.

No se soportan otros gestores BB.DD.

Distribuciones

Existen dos distribuciones de Séneca FX Server, unstable y stable.

La distribución unstable contiene las últimas correcciones y nuevas funcionalidades que requieren un proceso de probación y feedback del usuario. Por su parte la distribución stable está más testeada y depurada pero tarda más en incorporar las correciones y nuevas funcionalidades. El ritmo de actualizaciones de la versión unstable es como mínimo de una vez a la semana mientras que la versión stable se actualiza como mínimo una vez al mes.

A medio plazo ambas distribuciones són equivalentes en cuanto a funcionalidad ya que la distribución stable se nutre de los cambios realizados a la distribución unstable una vez que han sido suficiente probados y con un feedback positivo.

Que distribución debo usar

Si se desea tener las últimas correcciones y nuevas funcionalidades lo antes posible escoger la versión unstable. Por otra parte, si no te importa esperar a que los cambios estén completamente testeados y aprobados, utiliza la versión stable.

Instalar Séneca FX Server

Abra una consola el el servidor (se necesita un usuario con capacidad sudo) y teclee:

$ wget -O ./senecafx-server-netinst.sh \ http://develop.spica.es/senecafx/scripts/senecafx-server-netinst.sh $ chmod +x ./senecafx-server-netinst.sh $ sudo ./senecafx-server-netinst.sh [--mysql]

donde puede ser stable o unstable (por defecto es unstable). Si se añade la opción --mysql el servidor MySQL se instalará siempre y cuando no se detecte una instalación previa.

Comprobaciones después de instalar

Una vez instalado Séneca FX Server, iniciar sesión en la consola del servidor con el usuario seneca (la password por defecto es seneca):

$ su seneca +------------------------------------------------------------------+ + Séneca FX runtime environment has been loaded + + Version 1.1.0 Build 8.9.6.4 33286 2018-09-06T11:12:23+02:00 + +------------------------------------------------------------------+

y aparecerá un banner indicando que se ha configurado el entorno de ejecución de Seneca FX, así como la versión.

Tenga en cuenta que todos y cada uno de los servicios de Séneca FX se deben ejecutar con el usuario seneca. No se debe intentar clonar la configuración de este usuario a otros usuarios.

Para obtener el directorio concreto donde se ha instalado Séneca FX (puede variar según la distribución que hayamos instalado),

$ printenv | grep seneca SENECA=/opt/spica/senecafx-SERVER

y que en cualquier caso es accesible mediante el enlace simbólico /opt/spica/seneca,

$ ls -l /opt/spica/seneca /opt/spica/seneca -> /opt/spica/senecafx-SERVER

Una vez obtenida la ubicación de la instalación de Séneca FX procedemos a verificar la ubicación de de los directorios de datos, logs y archivos temporales,

$ ls -l /opt/spica/seneca (la barra al final es necesaria) drwxrwxr-x seneca . drwxr-xr-x root .. drwxrwxr-x seneca anneo drwxrwxr-x seneca bundle drwxrwxr-x seneca cli drwxrwxr-x seneca conf drwxrwxr-x seneca lucio drwxrwxr-x seneca nginx -rw-r--r-- seneca rakefile drwxrwxr-x seneca rakelib drwxrwxr-x seneca redis drwxrwxr-x seneca rgloader drwxrwxr-x seneca ruby drwxrwxr-x seneca scripts drwxrwxr-x seneca seneca drwxrwxr-x seneca solr lrwxrwxrwx seneca data->/srv/seneca lrwxrwxrwx seneca logs->/var/seneca/logs lrwxrwxrwx seneca temp->/var/seneca/temp drwxrwxrwx seneca pids->/var/seneca/pids

donde se observa que mediante enlaces simbólicos Séneca FX espera la carpeta de datos en /srv/seneca, los logs en /var/seneca/logs y los archivos temporales en /var/seneca/temp.

Es importante asegurarse de que todas las carpetas y archivos tienen como propietario el usuario seneca.

La herramienta de consola (CLI)

En primer lugar comprobamos que la herramienta CLI de de Séneca FX está instalada y apunta a la carpeta de la instalación actual de Seneca FX,

$ seneca info Version : 1.1.0 (Build 8.10.2.1) Install Dir : /opt/spica/senecafx-SERVER (/dev/sda1, 5,1G) Logic Path Disk Path Filesystem Disk Free ------------- ----------------------------------- -------------------- ---------- conf /opt/spica/senecafx-SERVER/conf /dev/sda1 5,1G pids /var/seneca/pids /dev/sda1 5,1G logs /var/seneca/logs /dev/sda1 5,1G temp /var/seneca/temp /dev/sda1 5,1G data /srv/seneca /dev/sda1 5,1G Tenant Path Disk Path Filesystem Disk Free ------------- ----------------------------------- -------------------- ---------- definst $data/tenants/definst /dev/sda1 5,1G

que nos informa de los números de versión y compilación (build) y la fecha en que fue generada, así como de los directorios principales que está utilizando Seneca FX, el sistema de archivos (unidad de disco) que los soporta y el espacio libre.

Ayuda en línea del CLI

Para obtener ayuda en línea de todos los comandos disponibles en el CLI,

$ seneca help Seneca FX Version 1.1.0 Build 8.10.2.1 34087 2018-10-02T10:20:09+02:00 Usage: seneca COMMAND [ACTION] [ARGS] - Run COMMAND with optional ACTION & ARGS seneca COMMAND help - Prints COMMAND help Commands (Info): seneca version - Prints version seneca info - Prints environment info seneca help - Prints this help Commands (License management): seneca license [--print] - Prints license info seneca license --system-id - Prints license system ID seneca license --mac-addr - Prints system MAC Address seneca license --form - Prints license request form seneca license --check FILENAME - Check if FILENAME is a valid licencse Commands (Services management): seneca status [SERVICE] - Prints services status seneca start [SERVICE] - Start services (all services if none given) seneca stop [SERVICE] - Stop services (all services if none given) seneca restart [SERVICE] - Restart services (all services if none given) Commands (Logs management): seneca tlog [SERVICE] - View (tail) SERVICE logfile seneca tlog [FILENAME] - View (tail) $LOGS/FILENAME Type 'seneca COMMAND help' for help about ACTIONS & ARGS on COMMAND



y para obtener detalles (subcomandos y opciones) de un comando particular, ej. la orden 'start',

$ seneca server help start Seneca Command Line Interface, by SPICA S.L. (c) 2017 Usage: seneca server start [SERVICE] # Start service SERVICE (start all services if none is given) Options: [--silent], [--no-silent] # Do not print messages to STDOUT [--tail], [--no-tail]

Iniciar/Detener los servicios de Séneca FX Server

Para comprobar el estado de ejecuión de estos servicios procedemos con la orden status del CLI,

$ seneca server status Service Name Id Status ---------------------------------------- ---------- -------------------------- Séneca Web Server (aka 'Séneca') nginx Running (PIDs=>20775+2) Séneca Resque Pool (aka 'Anneo') resque Running (PIDs=>3587+9) Séneca Crawler Agent (aka 'Lucio') crawler Running (PIDs=>3254) Séneca Full Text Index Server (Solr) solr Running (PIDs=>4009) Séneca Queue Server (Redis) redis Running (PIDs=>3542) Séneca Scheduler cron Running

Para detener un servicio podemos utilizar la orden stop seguida del Id o el alias del servicio,

$ seneca server stop web

o bien

$ seneca server stop nginx

y para arrancalo la orden start,

$ seneca server stop nginx

Si lo que queremos es iniciar o parar todos los servicios, simplemente omitimos el nombre del servicio, así,

$ seneca server stop Service Name Id Status ---------------------------------------- ---------- ---------------------- Seneca Web Server (aka 'Seneca') nginx Stopping...

detiene todos los servicios de Séneca FX, mientras que para arrancar todos los servicios de Séneca FX procedemos con,

$ seneca server start Service Name Id Status ---------------------------------------- ---------- ---------------------- Seneca Web Server (aka 'Seneca') nginx Starting...

Inicio automático de los servicios con el arranque del sistema

Séneca FX instala un script para el auto arranque de todos los servicios instalados como parte de la distribución (se ubica en /etc/init.d/senecafx).

Gracias a este comando, Séneca FX se iniciará automaticamente durante el inicio del sistema y tambien manualmente gracias a la herramienta correspondiente de Linux, ej. sudo service seneca start o sudo service seneca status. Sin embargo, es necesario ser administrador o tener capacidad sudo para realizar estas operaciones.

La herramienta CLI de Séneca, permite permite relizar estas mismas operaciónes sin privilegios de usuario especiales, Se recomienda utilizar está opción para las operaciones manuales y dejar que el script de inicio se encargue del arranque automático.

Consultar los logs

Séneca FX mantiene todos los logs en la carpeta /opt/spica/seneca/logs que por defecto es un enlace simbólico a /var/seneca/logs.

Podemos utilizar el la utilizad tail para visualizarlos o bien el CLI de Séneca que nos evita conocer el nombre y ubicación del archivo log de cada servicio, así

$ seneca server tail web

mostrará el log del servidor web, mientras que

$ seneca server tail resque

mostrará el log del servidor de colas.

Ejemplo:

$ seneca server tail nginx (AppVers. => 1.1.0, BUILD 8.9.6.4 (published 2018-09-06T11:12:23+02:00) (AppLics. => Seneca FX (TBYB), SN 2018-03/4aaff3, unknown (61947e2341b94d80bacaecfb9896dbdc)) App 5317 stdout: (loading rails...) (loading bundle (application.rb) ...) (loading application...) App 5317 stdout: WARNING: Using default tenant 'definst'. App 5317 stdout: Can not update (migrate) database (definst) App 5317 stdout: (run_as => seneca (1001), seneca (1001)) (network#1=> 10.0.2.15/255.255.255.0 (eth0)) (network#2=> 192.168.0.156/255.255.255.0 (eth1)) (log => /opt/spica/senecafx-SERVER/logs/server.log (tail=no)) (i18n => es,es_la,eu,cat,gl,en,val) (cache => /var/seneca/temp/cache (ENABLED)) (mailer => alfred@seneca.tv (smtp://217.116.0.228) (bugreport=> bugreport@seneca.tv) (ldap => ONLINE (ldap://ldap.seneca.tv:389)) (scheduler=> ENABLED) (queues => 127.0.0.1:6379 (resque) (ONLINE)) (ftindex => 127.0.0.1:8983 (solr) (ONLINE)) (speechtxt=> DISABLED) (transcrpt=> ENABLED) (storage => definst:/default free size is 5.5 GiB) (proxy => MP4_H264_240p_Mono -> 'H264_240p_Mono' Video libx264, Audio aac) (proxy => MP4_H264_288p_Mono -> 'H264_288p_Mono' Video libx264, Audio aac) (proxy => MP4_H264_360p_Mono -> 'H264_360p_Mono' Video libx264, Audio aac) (proxy => MP4_H264_480p_Mono -> 'H264_480p_Mono' Video libx264, Audio aac) (proxy => MP4_H264_720p_Mono -> 'H264_720p_Mono' Video libx264, Audio aac) (proxy => MP3_Mono_64Kbs -> 'MP3_Mono_64Kbs' Audio mp3)

Para salir de la visualización de log tecleamos Ctrl-C.

Licencia

Seneca FX se instala con una licencia de prueba que permite funcionar al servidor con funciones limitadas, pero que nos permitirá hacer configurar el software, crear la base de datos, etc. hasta que proveamos de la licencia de usuario.

Para consultar la licencia utilizamos el CLI,

$ seneca license +===================================================================+ |SPICA SOFTWARE LICENSE UUID: D0500E35-7ABC-49F8-A139-D4A717C830| |===================================================================| |PRODUCT | |Name Séneca FX| |Version TBYB| |-------------------------------------------------------------------| |LICENSE | |Serial Number 2018-25/dc226b| |Generated 2018-09-06| |Expires (never)| |Organization unknown| |System ID 61947e2341b94d80bacaecfb9896dbdc| |MAC 08:00:27:8d:c0:4d| +===================================================================+

y en este caso, comprobamos que estamos usando la licencia de prueba la cual se identifica como TBYB.

La licencia de Seneca FX es única para cada equipo y para solicitarla debemos proporcionar el "System ID" que se muestra en la pantalla.

Primeros Pasos : Base de datos y configurarción básica de sitio web

Una vez hemos arrancado los servicios de Seneca FX, y en particular, el Servidor Web (NGINX), procedemos a probar la conexión HTTP en el puerto por defecto (8980).

Dado que aún no hemos realizado la personalización del sitio web, creado la base de datos obtendremos un advertencia del servidor de aún no está configurado,

web-no-tenants

Configurar el sitio web y crear la base de datos asociada

Séneca FX necesita saber cierta información básica para poder funcionar, como es el nombre de la base de datos y una descripción-título del sitio web. Además, hay que crear e inicializar la base de datos.

El primer paso es añadir una nueva instancia de Seneca FX. Para ello editamos el archivo /opt/spica/seneca/conf/tenants.yml (formato YAML) y añadimos las siguientes lineas al final,

prueba: <<: *defaults prefix : prueba database : senecafx_prueba domain : "senecafx.prueba.com" aliases : "*" title : "Seneca FX Prueba"



Guardamos los cambios y procedemos a crear la base de datos.

$ seneca database create prueba (AppVers. => 1.1.0, BUILD 8.9.10.7 (published 2018-09-10T13:19:26+02:00) (AppLics. => Seneca FX (Developer), SN 2018-49/512097, DEVELOPER (4300f403ca7dff84fefa8872533d468b)) (AppMode. => RAKE, Run_As user=seneca, eid=1000, gid=1000) MySQL pass for root: ********* (tenant => prueba) (db:create => senecafx_prueba (prueba)) Checking MySQL username 'seneca'@'localhost' ... MySQL user 'seneca'@'localhost' already exists! Checking MySQL database 'senecafx_prueba'@'localhost' ... Creating MySQL database 'senecafx_prueba'... (CREATE DATABASE IF NOT EXISTS senecafx_prueba CHARACTER SET utf8 COLLATE utf8_unicode_ci;) (ALTER DATABASE senecafx_prueba CHARACTER SET utf8 COLLATE utf8_unicode_ci;) Granting all privileges to 'seneca'@'localhost' ... (GRANT ALL ON senecafx_prueba.* TO 'seneca'@'localhost';FLUSH PRIVILEGES;) Loading schema to 'senecafx_prueba'@'localhost' ... (db:migrate (senecafx_prueba)) Seeding 'senecafx_prueba'@'localhost' ... (db:seed (senecafx_prueba)) Done!



Ya tenemos lo necesario para que el servidor web esté operativo así que reiniciamos el Servidor Web para que Séneca FX tenga en cuenta los cambios de configuración

seneca restart web



y volvemos a conectarnos con el navegador, que nos debe mostrar la página del 'home' de la Web de Seneca FX,

web-home-empty

Cambiar la clave del usuario admin

Por motivos de seguridad, la primera operación en la Web deberá ser cambiar la contraseña del usuario administrador de la Web, para lo cual utilizamos el boton ENTRAR e iniciamos sesión con el usuario admin y clave admin, para acceder a la zona restringida,

web-login-admin

web-menu-account

y en el menú seleccionamos el usuario actual (admin) y "Mi Cuenta" donde introduciremos la nueva contraseña, siendo los demás datos opcionales.

web-change-password-admin

[EOF]