Wiki

Clone wiki

igroove / upgrading

#Aggiornare dalla versione v3 alla v4 su Debian 8

Nota: questo è un promemoria su come effettuare la migrazione dalla versione v3 alla versione v4.

Non sono previsti tutti i casi.

0. Backup

Fare il backup del database e dei file di configurazione /var/www/igroove/app/config/*.yml

mkdir /root/backup-igroove
cp /var/www/igroove/app/config/*.yml /root/backup-igroove
cp /var/www/igroove/token*.* /root/backup-igroove
mysqldump -u root -p igroove > /root/backup-igroove/dump.sql

1. Aggiornare i pacchetti e le dipendenze

echo "deb http://www.rabbitmq.com/debian/ testing main" >> /etc/apt/sources.list.d/rabbitmq-server.list
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
apt-key add rabbitmq-signing-key-public.asc


apt-get update -y
apt-get install php5-intl php5 php5-mysql php5-ldap php5-curl ldap-utils \
mysql-server php-pear rsync git-core curl acl freeradius-ldap \
freeradius-mysql libmail-pop3client-perl libio-socket-ssl-perl \
libnet-ssleay-perl python-setuptools  rabbitmq-server -y
rabbitmq-plugins enable rabbitmq_management rabbitmq_tracing  rabbitmq_federation
service rabbitmq-server restart
mkdir /var/log/supervisor
apt-get remove python-meld3 supervisor -y
apt-get install python-pip -y
pip install supervisor
cp -r /var/www/igroove/linuxConfiguration/etc/supervisor/* /etc/supervisor
cp  /var/www/igroove/linuxConfiguration/etc/supervisord.conf /etc
cp  /var/www/igroove/linuxConfiguration/init.d/supervisor* /etc/init.d
systemctl daemon-reload

2. Rimuovere il precedente crontab

Dato:

crontab -e

Rimuovere (commentare) tutte le righe di igroove.

3. Scaricare il file sorgente e sostituire i file presenti

cd /tmp
wget http://www.icnos.net/igroove/igroove.tar.gz -O /tmp/igroove.tar.gz
gunzip /tmp/igroove.tar.gz
rm -rf /var/www/igroove
mkdir /var/www/igroove
cd /var/www/igroove
tar -xf /tmp/igroove.tar --strip=1 --exclude="app/config/parameters.yml"  --exclude="app/config/igroove.yml"

4. Ripristinare i file di configurazione precedenti

cp /root/backup-igroove/igroove.yml /var/www/igroove/app/config/
cp /root/backup-igroove/parameters.yml /var/www/igroove/app/config/
cp /root/backup-igroove/token*.* /var/www/igroove/
mv /var/www/igroove/web/app_dev.php /var/www/igroove/
mv /tmp/backup_igroove_vendor /var/www/igroove/vendor
mkdir /var/www/igroove/app/cache
mkdir /var/www/igroove/app/log
HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
cd /var/www
chown -R $HTTPDUSER:$HTTPDUSER igroove
chmod -R 777 /var/www/igroove/app/log*
chmod -R 777 /var/www/igroove/app/cache
cd /var/www/igroove

5. Aggiornamento componenti e librerie"

composer self-update
composer install

6. Cancellazione cache"

rm -rf /var/www/igroove/app/cache/*
cd /var/www
chown -R $HTTPDUSER:$HTTPDUSER igroove
chmod -R 777 /var/www/igroove/app/log*
chmod -R 777 /var/www/igroove/app/cache
cd /var/www/igroove

7. Aggiornamento delle tabelle

# php /var/www/igroove/app/console doctrine:database:drop --force
# php /var/www/igroove/app/console doctrine:database:create
php /var/www/igroove/app/console doctrine:schema:update --force

8. Installazione servizi MQ consumer

cp /var/www/igroove/linuxConfiguration//etc/rabbitmq/rabbitmq.config /etc/rabbitmq/rabbitmq.config
service rabbitmq-server restart

Verificare il funzionamento delle code:

php app/console rabbitmq:consumer ldap_service -m 1
php app/console rabbitmq:consumer mikrotik_service -m 1
php app/console rabbitmq:consumer google_apps_service -m 1
php app/console rabbitmq:consumer version_service -m 1

se tutto ok far partire i servizi:

cp -r /var/www/igroove/linuxConfiguration/etc/supervisor/* /etc/supervisor
service supervisor restart

9. Nuovo crontab

L'impostazione dei cron va fatta solo se tutto funziona. Provare prima ogni singola riga del cron direttamente nella shell.

crontab -e

Inserire:

*/2 * * * * /usr/bin/php /var/www/igroove/app/console internet
02 02 * * * /usr/bin/php /var/www/igroove/app/console cron
*/33 * * * /usr/bin/php /var/www/igroove/app/console sync --from="ldap" --to="DB" --useMQ
*/3 * * * * /usr/bin/php /var/www/igroove/app/console getConsegne  
23 23 * * * /usr/bin/php /var/www/igroove/app/console backup 

10. Altre impostazioni

Poi procedere con la configurazione di:

  • (script di riavvio)[istruzioniRadius]
  • (script di riavvio antenne)[istruzioniUnifi]
  • (certificati AD)[risoluzioneProblemi]

Flusso che deriva dai crontab

1. -> alle 01 01 di ogni giorno viene chiesta la sincronizzazione con i dati esterni -> la sincronizzazione può anche avvenire con il bottone sincronizza ora

-> la sincronizzazione presuppone che il db di igroove contenga una copia di Ldap

4. -> ogni 3 minuti vengono verificate nuove consegne

  1. -> alle 23.23 viene fatto il backup su dropbox

#MEMO supervisor

mkdir /var/log/supervisor
apt-get remove python-meld3 supervisor -y
apt-get install python-pip -y
apt-get autoremove -y
pip install supervisor
mkdir /etc/supervisor
cp -r /var/www/igroove/linuxConfiguration/etc/supervisor/* /etc/supervisor
cp  /var/www/igroove/linuxConfiguration/etc/supervisord.conf /etc
cp  /var/www/igroove/linuxConfiguration/init.d/supervisor* /etc/init.d
chmod -R 777 /etc/supervisor*
systemctl daemon-reload
service supervisor restart
service supervisor status

Updated