Script per Solr + Jetty su Ubuntu 13.10

TL;DR per chi volesse la strada più semplice è lanciare da terminale sudo apt-get install solr-jetty. Di seguito invece trovate degli appunti su come mi sono trovato a fare la cosa manualmente.

Per prima cosa assicuratevi di avere jetty (v. 9) installato sulla vostra macchina: sudo apt-get install jetty oppure qui

Quindi scaricate l’ultima versione di solr (v. 4.6) ed estraetela da qualche parte. Quello che ci servirà concretamente è la cartella example.

Personalmente tengo la mia istanza di solr dentro la cartella /srv/ ma potreste metterla dove volete (es. /opt/).

$ cp -r example /srv/$ cd /srv/$ mv example solr

L’esempio contiene già una cartella multicore dove inserire i vari core. Ogni volta che andremo a creare un nuovo core, dovremo creare manualmente la cartella e i file di configurazione. Ad esempio date un’occhiata a /multicore/core0/conf/schema.xml e /multicore/core0/conf/solrconfig.xml.

Per assicurarvi che tutto sia ok, avviate solr lanciando dalla cartella: $ java -jar start.jar. Jetty si preoccuperà di avviare l’interfaccia di amministrazione di solr all’indirizzo http://localhost:8983/solr/.

Eseguire solr all’avvio

La cosa interessante è creare uno script per lanciare solr a piacimento. Ho usato questo suggerimento.

Per prima cosa creiamo uno script di avvio: $ sudo vim solr-start.sh che conterrà solo

#!/bin/bashjava -server -Xms128M -Xmx1024M  -Dsolr.solr.home=/srv/solr/multicore -Djetty.home=/srv/solr -jar /srv/solr/start.jar

allo stesso modo possiamo creare lo script $ sudo vim solr-stop.sh in cui inserire

#!/bin/bashpid=`ps aux | grep solr | awk '{print $2}'`kill -9 $pid

Rendiamoli entrambi eseguibili, quindi entriamo nella cartella /etc/init.d/ e creiamo lo script $ sudo vim solr, che conterrà

#!/bin/bash### BEGIN INIT INFO# Provides:          solr# Required-Start:    $remote_fs $syslog# Required-Stop:     $remote_fs $syslog# Default-Start:     2 3 4 5# Default-Stop:      0 1 6# Short-Description: Start daemon at boot time# Description:       Enable service provided by daemon.### END INIT INFOcase $1 in	start)        echo "Starting Solr"        /bin/bash /srv/solr/solr-start.sh    ;;    stop)        echo "Stopping solr"        /bin/bash /srv/solr/solr-stop.sh    ;;    restart)        echo "Restarting solr"        /bin/bash /srv/solr/solr-stop.sh        /bin/bash /srv/solr/solr-start.sh    ;;esacexit 0

Ovvero tutte le istruzioni necessarie ad avviare e chiudere solr. La prima parte del file l’ho presa dalla pagina che spiega come creare script d’avvio.

Alla fine possiamo aggiungere lo script all’avvio della macchina con il comando $ sudo update-rc.d solr defaults.

Aggiornamento

Dopo aver fatto quanto scritto qui sopra (nota: era più un promemoria che altro), apache non si avviava più. Ecco sapevatelo. Non sono riuscito a capire come mai e mi sono risolto a rimuovere l’avvio automatico di solr per ripristinare il funzionamento di apache.
Come al solito sono solo un niubbo (a.k.a. newbie).

Torna in alto