Error al iniciar nueva instancia de schooltool

Asked by Enzo L. Castro on 2015-09-17

Estimados, buenas!

Tengo un error al intentar iniciar mi nueva instancia de schooltool llamada "schoolA"

root@server:~# /etc/init.d/schooltool-schoolA status
● schooltool-schoolA.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
root@server:~#
root@academico:~#
root@academico:~#
root@academico:~# /etc/init.d/schooltool-schoolA start
[....] Starting schooltool-schoolA (via systemctl): schooltool-schoolA.serviceFailed to start schooltool-schoolA.service: Unit schooltool-schoolA.service failed to load: No such file or directory.
 failed!
root@academico:~#

He editado todos y cada uno de los archivos que indica el tutorial: http://book.schooltool.org/multiple-schooltools.html

Gracias !!!

Atte.-
Enzo

Question information

Language:
Spanish Edit question
Status:
Solved
For:
SchoolTool Edit question
Assignee:
No assignee Edit question
Solved by:
Douglas Cerna
Solved:
2015-09-21
Last query:
2015-09-21
Last reply:
2015-09-19
Enzo L. Castro (enzo-l-castro) said : #1

Ademas los logs para mi nueva instancia no son creados...

root@server:~# ls -l /var/log/schooltool/
total 580
-rw-r--r-- 1 schooltool schooltool 26330 sep 10 19:51 celery_report.log
-rw-r--r-- 1 schooltool schooltool 113275 sep 14 21:12 error.log
-rw-r--r-- 1 schooltool schooltool 172474 sep 8 19:33 paste.log
-rw-r--r-- 1 schooltool schooltool 180800 sep 17 19:23 redis.log
-rw-r--r-- 1 schooltool schooltool 50611 sep 10 19:49 supervisord.log
-rw-r--r-- 1 schooltool schooltool 0 sep 3 22:21 web-access.log
-rw-r--r-- 1 schooltool schooltool 13500 sep 10 19:51 zeo.log

Douglas Cerna (replaceafill) said : #2

Hola Enzo.

Está usando Ubuntu 14.04?

Enzo L. Castro (enzo-l-castro) said : #3

Hola Douglas, no estoy aun en una versión más nueva... 15.04

Enzo L. Castro (enzo-l-castro) said : #4

le edite el source list para que obstenga schooltool 2.8.x del ppa.

Douglas Cerna (replaceafill) said : #5

Y la instancia por defecto (/etc/schooltool/standard) funciona correctamente? En lo personal no he probado SchoolTool en versiones superiores a 14.04.

Enzo L. Castro (enzo-l-castro) said : #6

Si si funciona perfecto. Le faltan algunas traducciones de items adentro como por ejemplo no se.. el Add por Agregar entre otras o las leyendas de los exports que eso me gustaría saber si se puede pasar full full al español con algún archivo que aun no esta en el ppa o algo... pero anda bien la isntancia standard. Yo use esta versión porque en la web oficial dice que el equipo de desarrollo recomienda la versión más reciente de Ubuntu.

Podrá ser algun archivo mal editado, ya que en la documentación en ingles porque en español esta parte está incompleta. veo que en el archivo /etc/schooltool/another/supervisord.conf

no pide editar las ultimas líneas sino que aparentemente se dejan como en la instancia standard reserían las líneas:

;[program:celery_import]
;environment=SCHOOLTOOL_CONF=/etc/schooltool/standard/schooltool.conf,REDIS_HOST=127.0.0.1,REDIS_PORT=7079
;stdout_logfile=/var/log/schooltool/celery_import.log

como no pide editarlas la documentación no lo hice, ademas tienen el ";" adelante de cada línea creo que no sería el problema puntualmente.

Alguna idea?

Douglas Cerna (replaceafill) said : #7

OK. Le recomiendo probar lo siguiente (es lo que yo hago cuando necesito crear instancias nuevas). Harto de tener que hacer tantos cambios en tantos archivos, hice este script:

http://bazaar.launchpad.net/~schooltool-owners/+junk/instance_copier/view/head:/copy_instance.py

el cual toma la instancia por defecto y crea una nueva con la configuración correcta. También necesita dos puertos para la nueva configuración (uno para el archivo paste.ini y otro para el archivo redis.conf). Tiene otras opciones para crear el archivo init (-i) o iniciar el servicio (-s).

Se ejecuta así:

$ sudo ./copy_instance.py -i /etc/schooltool/standard/ /etc/schooltool/nueva 6080 6079

Quiere probarlo?

Enzo L. Castro (enzo-l-castro) said : #8

Si por supuesto es una solución más que óptima en caso de estar haciendolo manualmente, voy a ejecutarlo ahora mismo primero voy a borrar mi instancia defectuosa. Te comento en breves Douglas.

Enzo L. Castro (enzo-l-castro) said : #9

Salida:

root@server:/etc/schooltool# ./copy_instance.py -i /etc/schooltool/standard/ /etc/schooltool/schoolA 8010 7078
insserv: script schooltool-schoolA: service schooltool already provided!
insserv: exiting now!
update-rc.d: error: insserv rejected the script header

root@server:/etc/schooltool#
root@server:/etc/schooltool#
root@server:/etc/schooltool# ls -l
total 16
-rwxr----- 1 root root 7569 sep 17 20:18 copy_instance.py
drwxr-xr-x 4 root root 4096 sep 17 20:21 schoolA
drwxr-xr-x 4 root root 4096 sep 8 19:47 standard
root@server:/etc/schooltool#
root@server:/etc/schooltool#
root@server:/etc/schooltool# ls -l schoolA/
total 52
drwxr-xr-x 2 root root 4096 sep 4 19:58 custom-css
-rw-r--r-- 1 root root 313 sep 17 20:21 paste.ini
drwxr-xr-x 2 root root 4096 oct 17 2014 plugins
-rw-r--r-- 1 root root 14161 sep 17 20:21 redis.conf
-rw-r--r-- 1 root root 202 oct 16 2014 report-server.zcml
-rw-r--r-- 1 root root 172 oct 16 2014 result-server.zcml
-rw-r--r-- 1 root root 3333 sep 17 20:21 schooltool.conf
-rw-r--r-- 1 root root 304 oct 16 2014 site.zcml
-rw-r--r-- 1 root root 3399 sep 17 20:21 supervisord.conf
-rw-r--r-- 1 root root 608 sep 17 20:21 zeo.conf
root@server:/etc/schooltool#
root@server:/etc/schooltool#

No obstante:

root@server:/etc/schooltool# /etc/init.d/schooltool-schoolA start
[....] Starting schooltool-schoolA (via systemctl): schooltool-schoolA.serviceFailed to start schooltool-schoolA.service: Unit schooltool-schoolA.service failed to load: No such file or directory.
 failed!
root@server:/etc/schooltool#
root@server:/etc/schooltool#
root@server:/etc/schooltool# /etc/init.d/schooltool-schoolA status
● schooltool-schoolA.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
root@server:/etc/schooltool#

Estoy bajando Ubuntu 14.04 LTS oficial desde Canonical. Voya a instalarlo en otra Oracle VM Box y te comento si anda, ni bien instale schooltool por default sin ninguna modificación voy a volver a correr tu script .py y te comento si funcionó. Y daremos por resuelto que el soporte del instancia está para esta versión de Ubuntu concretamente, la versión de ST será 2.8.4 del repo.

Douglas mira este enlace https://answers.launchpad.net/schooltool/+question/242669

está en ingles pero hay una persona que tiene un problema con esto de las instancias y Gediminas le dice "You have following instructions from the book, that describe a setup for 2.4 or older schooltool. Since version 2.6, there are now more files and more ports to be changed." Que las instrucciones son para schooltool 2.4 o antes yo estoy usando la versión 2.8.4 y al parecer en vez de cambiar los path el file namber se cambia el path y no el file namber me explico.

Por ejemplo en zeo.conf:

address /var/run/schooltool-nueva/zeo.sock

Pero la documentación que yo segui y tu script hacen así:

address /var/run/schooltool/nueva-zeo.sock

Me explico la diferencia?

Creo que los pasos para la versión 2.8.4 no están correctos. O estoy equivocado segun los que Gediminas dice?

Estare muy atento a tus comentarios.
Gracias!!!!!!!

Corrijo el "file namber" es "file name". Autocorrección

Douglas Cerna (replaceafill) said : #14

Hola Enzo.

El error en su comentario #10 es la máquina virtual en Ubuntu 14.04? O pasa en su primera instalación?

Con respecto a su pregunta en el comentario #12, mi script y la documentación ocupan el directorio estándar /var/lib/schooltool. Lo único que cambia son los prefijos de los archivos que se crean (por ejemplo /var/lib/schooltool/nueva-Data.fs, etc).

Hola Douglas,

Estoy trabajando esto en Ubuntu 15.04 en una Virtual Machine. Lo que voy a hacer es crear una nueva VM pero esta vez instalare Ubuntu 14.04 LTS y del PPA SchoolTool 2.8.4 y probare correr su script, cuando lo haga le comento si funciona o sigo con problemas.

Gracias!
Saludos!

Douglas, estimado!

Hoy instale Ubuntu 14.04.3 LTS y de inmediato note la direfencia en SchoolTool 2.8.4 si bien la versión es la misma que yo tenía en mi Ubuntu 15.04 de inmediato note cambios en la app. El status devuelve una salida diferente más simple incluso y tu script python funciona a la perfección.

De esta manera he logrado crear una nueva instancia en el mismo servidor claro está que el rendimiento en 512MB de RAM se nota bastante. Ya que la segunda instancia tardo unos 6 minutos en subir.

Todo esto son pruebas pilotos.

Tengo una gran duda con respecto a los puertos, hay algun rango mínimo para empezar o máximo teniendo en cuenta el standard (7080 y 7079)

Porque mi idea es poner el standard port en (8000 y el redis ir bajandolo de a uno 7078, 7077,7076... etc)

Lo cual tendría muchas instancias supongamos 10.

iria en los ports incrementando el standard para cada nueva instancia y decrementando el redis para cada nueva instancia.

Muy amable y espero haberme explicado en el fin.

Gracias!
Enzo

Douglas Cerna (replaceafill) said : #17

Hola Enzo.

Me alegra saber que logró su objetivo.

Con respecto a los puertos, como SchoolTool se ejecuta bajo un usuario (schooltool) con permisos limitados deben usarse puertos mayores a 1024 (http://debianhackers.net/de-puertos-y-firewalls-basico/) y obviamente que no tengan conflicto con otros servicios que se ejecuten en el mismo servidor.

Saludos.

Si eso estáclaro, no debería tener nada corriendo en los puerto para SchoolTool, ya voy a armar una planilla con los puertos que usará SchooTool.

Douglas, sabe usted como puedo lograr tener toda la app traducida al español ya que si agrego el LANG es no traduce todo, hay leyendas en ingles y botones como "Add" en Personas que siguen en ingles y son muy necesarios.

Gracias por toda la ayuda!

Douglas Cerna (replaceafill) said : #19

Sí, las traducciones lamentablemente aún son un problema ya que los archivos con traducciones no se actualizan desde hace mucho tiempo. Y luego existen otros problemas que aún tenemos que investigar como que el script que extrae las traducciones no funciona sobre un tipo de plantilla determinado.

Lo único que le puedo recomendar por el momento es esto:

http://book.schooltool.org/translations.html#translating-schooltool

Puede descargar directamente los archivos con las últimas actualizaciones y ponerlos en su servidor como indica esa sección. Esto debe hacerse para cada plugin (schooltool.gradebook, schooltool.lyceum.journal, etc). No resolverá del todo su problema pero debe mejorar las traducciones.

Bien gracias voy a leer y a ejecutarlo.

Douglas realmente muy agradecido por toda la ayuda!

Atte.-
Enzo

Estimado,

Sabes desde que estoy probando las dos instancias en paralelo noto algo que comparten... el custom.css si toco el de standard ambos se modifican parece que quedo en algun path apuntando a el custom.css de standard y yo quiero uno para cada instancia.

¿Sabrías decirme dónde se encuentra esto? (Debe ser un path o algo sencillo).

Gracias!
Enzo

¿Será de acá?

root@servidor:/# grep -H -r "custom.css" /usr/lib/python2.7/
/usr/lib/python2.7/dist-packages/schooltool-2.8.4.egg-info/SOURCES.txt:src/schooltool/skin/flourish/custom/custom.css
/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/configure.zcml: source="/etc/schooltool/standard/custom-css"
/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/configure.zcml: name="custom_css"
Coincidencia en el archivo binario /usr/lib/python2.7/dist-packages/schooltool/skin/flourish/page.pyc
/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/page.py: tal:attributes="href context/++resource++schooltool.flourish.custom/custom.css" />
root@servidor:/#

/usr/lib/python2.7/dist-packages/schooltool/skin/flourish/configure.zcml: source="/etc/schooltool/standard/custom-css"

Best Douglas Cerna (replaceafill) said : #23

Ah! Muy buen punto.

En las instancias secundarias necesita hacer lo siguiente:

1. En el archivo site.zcml de la instancia secundaria (por ejemplo: /etc/schooltool/secundaria/site.zcml) agregue esta línea:

<includeOverrides file="overrides.zcml" />

antes de la línea </configure>.

2. Luego junto al archivo site.zcml, cree un archivo overrides.zcml (puede ser cualquier otro nombre con extensión zcml) con el siguiente contenido:

<?xml version="1.0"?>
<configure xmlns="http://namespaces.zope.org/zope"
           i18n_domain="schooltool">

  <resourceLibrary
      name="schooltool.flourish.custom"
      require=""
      layer="schooltool.skin.flourish.IFlourishLayer">
    <directory
        source="/etc/schooltool/secundaria/custom-css"
        />
  </resourceLibrary>

</configure>

Esto le dice a la instancia que registre un nuevo directorio para esa librería usando el mismo nombre.

3. Haga los cambios necesarios en /etc/schooltool/secundaria/custom-css/custom.css y reinicie la instancia secundaria.

Los cambios en ambas hojas de estilo deberían ahora ser independientes.

Thanks Douglas Cerna, that solved my question.