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)
Fatte queste operazioni si può procedere con l’installazione dei pacchetti aggiuntivi per Zammad installando prima MariaDB: Procediamo con la creazione dell’utente per Zammad: Scarichiamo e scompattiamo l’ultima versione di Zammad: Andiamo ad installare l’ambiente necessario per l’esecuzione del software: Abbiamo quasi finito! Installiamo Zammad: 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: Configuriamo la parte finale di Elasticsearch: Facciamo partire il servizio: Terminiamo con la configurazione di 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: Enjoy!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
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
useradd zammad -m -d /opt/zammad -s /bin/bash
echo "export RAILS_ENV=production" >> /opt/zammad/.bashrc
su zammad
cd ~
curl -O https://ftp.zammad.com/zammad-latest.tar.gz
tar -xzf zammad-latest.tar.gz
rm zammad-latest.tar.gz
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
bundle install --without test development postgres
cp config/database.yml.pkgr config/database.yml
rake db:create
rake db:migrate
rake db:seed
rake assets:precompile
rails r "Setting.set('es_url', 'http://localhost:9200')"
rake searchindex:rebuild
rails s -p 3000 &>> log/zammad.log &
script/websocket-server.rb start &>> log/zammad.log &
script/scheduler.rb start &>> log/zammad.log &
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
server {
listen 80;
# replace 'localhost' with your fqdn if you want to use zammad from remote
server_name xxx.xxx.xxx.xxx;