Pagina 1 di 1

Migrazione 1.3 -> 1.5 su Centos 7

Pubblicato: 30 marzo 2018 - 14:54
di CLAM
Buongiorno,

Ho seguito la procedura come spiegato a pagina https://www.wapt.fr/fr/doc/waptserver_u ... entos.html ma ho riscontrato alcuni errori durante la procedura.

Nel caso in cui possa essere utile ad altri, ecco le modifiche che ho dovuto apportare per completare con successo la migrazione:

Per disinstallare wapt 1.3:

Codice: Seleziona tutto

yum remove tis-waptrepo tis-waptsetup tis-waptserver
systemctl stop apache2
systemctl disable apache2
diventa:

Codice: Seleziona tutto

yum remove tis-waptrepo tis-waptsetup tis-waptserver
systemctl stop httpd
systemctl disable httpd


Nella sezione Aggiorna il server CentOS / Red Hat :

Codice: Seleziona tutto

yum install postgresql94-server postgresql94-contrib
diventa:

Codice: Seleziona tutto

yum install postgresql94-server postgresql94-contrib mongodb
(MongoDB è suddiviso in due pacchetti in CentOS: mongodb-server e mongodb. Il pacchetto mongodb contiene mongoexport, utilizzato dallo script di migrazione.)

Ho anche eseguito il seguente comando in modo che lo script di migrazione potesse verificare la presenza del file di blocco:

Codice: Seleziona tutto

chmod 755 /var/lib/mongodb
Ho corretto il file /opt/wapt/waptserver/waptserver_upgrade.py (ho usato solo (current_distrib != "centos linux" perché non ho a disposizione una macchina rhel7 per verificare se anche lo script iniziale necessita di modifiche per funzionare):

Codice: Seleziona tutto

--- /opt/wapt/waptserver/waptserver_upgrade.py.orig	2018-03-29 15:00:58.908069144 +0200
+++ /opt/wapt/waptserver/waptserver_upgrade.py	2018-03-29 15:12:00.480088326 +0200
@@ -67,7 +67,10 @@
     """Connect to a mongo instance and write all wapt.hosts collection as json into a file"""
     if platform.system()=='Linux':
         mongo_datadir = '/var/lib/mongodb/'
-        if 'dbpath' in subprocess.check_output('mongoexport --help',shell=True):
+	distrib_tuple = platform.linux_distribution()
+	current_distrib = distrib_tuple[0].lower()
+	print ('detected distrib : %s ' % current_distrib)
+        if ('dbpath' in subprocess.check_output('mongoexport --help',shell=True)) and (current_distrib != "centos linux"):
             data = subprocess.check_output('mongoexport -d wapt -c hosts --jsonArray --dbpath=%s' % mongo_datadir,shell=True)
         else:
             data = subprocess.check_output('mongoexport -c hosts --jsonArray --db wapt',shell=True)
Ho anche corretto il file /opt/wapt/waptserver/scripts/postconf.py perché su CentOS il demone non si chiama mongodb ma mongod:

Codice: Seleziona tutto

--- /opt/wapt/waptserver/scripts/postconf.py.orig	2018-03-29 15:51:46.261262372 +0200
+++ /opt/wapt/waptserver/scripts/postconf.py	2018-03-29 15:52:12.043380391 +0200
@@ -234,8 +234,12 @@
 def upgrade2postgres(configfilename):
     print ("mongodb process running, need to migrate")
     run_verbose('sudo -u wapt PYTHONPATH=/opt/wapt PYTHONHOME=/opt/wapt /opt/wapt/bin/python /opt/wapt/waptserver/waptserver_upgrade.py upgrade2postgres -c "%s"' % configfilename)
-    run_verbose("systemctl stop mongodb")
-    run_verbose("systemctl disable mongodb")
+    if type_redhat():
+        run_verbose("systemctl stop mongod")
+        run_verbose("systemctl disable mongod")
+    else:
+        run_verbose("systemctl stop mongodb")
+        run_verbose("systemctl disable mongodb")
 
 def nginx_set_worker_limit(nginx_conf):
     already_set=False
Per ritirare i pacchetti dal repository, modificare i comandi specificati nella pagina https://www.wapt.fr/fr/doc/waptserver_u ... rigenerare cambiando /var/www/wapt/... in /var/www/html/wapt/...

Codice: Seleziona tutto

PYTHONPATH=/opt/wapt PYTHONHOME=/opt/wapt python /opt/wapt/wapt-signpackages.py -i -s --message-digest=sha256,sha1 -c /root/wapt-private-20180312-1522.crt /var/www/html/wapt/*.wapt

PYTHONPATH=/opt/wapt PYTHONHOME=/opt/wapt python /opt/wapt/wapt-signpackages.py -i -s --message-digest=sha256,sha1 -c /root/wapt-private-20180312-1522.crt /var/www/html/wapt-host/*.wapt