sabato , agosto 18 2018
Ultime Notizie
Home / Linux / Installare Zammad su Debian 9

Installare Zammad su Debian 9

Ciao Ragazzi,

oggi torniamo alle origini, ovvero l’installazione di un software partendo dai sorgenti. Il software in questione si chiama Zammad ed è un sistema di Gestione Ticket open source.

Il sistema è basato su Ruby, e per funzionare correttamente deve interfacciarsi con Elasticsearch e un database a scelta tra Postgres e MySQL.

Il pacchetto scaricabile dal sito, installa solo la versione di Zammad e Postgres senza installare Elasticsearch che va installato a parte e poi configurato successivamente.

Ho fatto diverse prove e non mi sono trovato bene con i .deb per cui ho deciso di procedere come una volta installando i singoli componenti e poi Zammad dal .tar: in questo modo posso utilizzare MySQL (nel mio caso MariaDB)

Tutta la documentazione è facilmente reperibile sul sito, come anche questa procedura, diciamo che ho deciso di scriverla per semplificare la vita ed evitare errori a chi vuole provare ad utilizzare questo interessantissimo sistema di ticket.

Iniziamo.

Per prima cosa installiamo Elasticsearch.

Per Zammad 2.3.0 (ultima versione al momento di questo articolo) la versione di Elasticsearch compatibile è la 5.6.x (ho utilizzato la 5.6.8)

apt install curl dirmngr apt-transport-https
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list 
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - 
apt update 
apt install openjdk-8-jre elasticsearch 
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment 
systemctl restart elasticsearch 
systemctl enable elasticsearch

Fatte queste operazioni si può procedere con l’installazione dei pacchetti aggiuntivi per Zammad installando prima MariaDB:

 

apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
apt update
apt install mariadb-server
apt-get install git-core patch build-essential bison zlib1g-dev libssl-dev libxml2-dev libxml2-dev sqlite3 libsqlite3-dev autotools-dev libxslt1-dev libyaml-0-2 autoconf automake libreadline6-dev libyaml-dev libtool libgmp-dev libgdbm-dev libncurses5-dev pkg-config libffi-dev libmariadb-dev nginx gawk

Procediamo con la creazione dell’utente per Zammad:

useradd zammad -m -d /opt/zammad -s /bin/bash
echo "export RAILS_ENV=production" >> /opt/zammad/.bashrc

Scarichiamo e scompattiamo l’ultima versione di Zammad:

su zammad
cd ~
curl -O https://ftp.zammad.com/zammad-latest.tar.gz
tar -xzf zammad-latest.tar.gz
rm zammad-latest.tar.gz

Andiamo ad installare l’ambiente necessario per l’esecuzione del software:

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L https://get.rvm.io | bash -s stable
source /opt/zammad/.rvm/scripts/rvm
echo "source /opt/zammad/.rvm/scripts/rvm" >> /opt/zammad/.bashrc
echo "rvm --default use 2.4.2" >> /opt/zammad/.bashrc
rvm install 2.4.2
gem install bundler

Abbiamo quasi finito! Installiamo Zammad:

bundle install --without test development postgres
cp config/database.yml.pkgr config/database.yml

Nel file database.yml a causa di un bug nella versione attualmente in essere non basta configurare l’utente zammad con i vari privilegi come specificato nella guida originale, perchè comunque darà errori per cui utilizziamo come nome utente e password quelli specificati come root, mentre come adapter bisogna specificare mysql2

Configurata la parte DB procediamo con la creazione:

rake db:create
rake db:migrate
rake db:seed
rake assets:precompile

Configuriamo la parte finale di Elasticsearch:

rails r "Setting.set('es_url', 'http://localhost:9200')"
rake searchindex:rebuild

Facciamo partire il servizio:

rails s -p 3000 &>> log/zammad.log &
script/websocket-server.rb start &>> log/zammad.log &
script/scheduler.rb start &>> log/zammad.log &

Terminiamo con la configurazione di Nginx:

exit
cp /opt/zammad/contrib/nginx/zammad.conf /etc/nginx/sites-available/zammad.conf
 
ln -s /etc/nginx/sites-available/zammad.conf /etc/nginx/sites-enabled/zammad.conf
systemctl restart nginx

Se per caso volete che la macchina risponda non su localhost ma sul vostro IP basta modificare il file di conf di nginx sostituendo:

server {
listen 80;
# replace 'localhost' with your fqdn if you want to use zammad from remote
server_name xxx.xxx.xxx.xxx;

Enjoy!

Info Paolo Daniele

Ingegnere delle Telecomunicazioni, appassionato di informatica fin da piccolo ho trasformato la passione in lavoro. Con il PHP faccio tutto (o quasi...) ma non disprezzo altri linguaggi all'occorrenza. Se vi piace il mio sito, o vi è utile, o vi sto simpatico, offritemi una birra!

Ti potrebbe interessare

NodeJS e IoT

IoT: Internet of Things IoT ovvero Internet of Things (Internet delle cose ndr.) è un …

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *