Page 1 sur 1

Migration 1.3 -> 1.5 sous Centos 7

Publié : 30 mars 2018 - 14:54
par CLAM
Bonjour,

J'ai suivi la procédure telle qu'expliquée à la page https://www.wapt.fr/fr/doc/waptserver_u ... entos.html mais j'ai rencontré quelques erreurs lors de la procédure.

Au cas à où cela puisse servir à d'autres, voici les modifications que j'ai du faire pour réussir la migration :

Pour la désinstallation de wapt 1.3 :

Code : Tout sélectionner

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

Code : Tout sélectionner

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


Dans la section Mettre à jour le serveur CentOS / RedHat :

Code : Tout sélectionner

yum install postgresql94-server postgresql94-contrib
devient :

Code : Tout sélectionner

yum install postgresql94-server postgresql94-contrib mongodb
(mongodb est scindé en deux paquets sous centos : mongodb-server et mongodb. Le paquet mongodb contient mongoexport utilisé par le script de migration)

J'ai également effectué la commande suivante afin que le script de migration puisse vérifier la présence du fichier de lock :

Code : Tout sélectionner

chmod 755 /var/lib/mongodb
J'ai patché le fichier /opt/wapt/waptserver/waptserver_upgrade.py (j'ai mis (current_distrib != "centos linux" uniquement car je n'ai pas de rhel7 sous la main pour tester si le script initial nécessite également une modification pour fonctionner) :

Code : Tout sélectionner

--- /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)
J'ai également patché le fichier /opt/wapt/waptserver/scripts/postconf.py car sous centos le daemon ne s'appelle pas mongodb mais mongod :

Code : Tout sélectionner

--- /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
Pour resigner les paquets du dépots, modifier les commandes spécifiées à la page https://www.wapt.fr/fr/doc/waptserver_u ... regenerate en changeant /var/www/wapt/... en /var/www/html/wapt/...

Code : Tout sélectionner

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