Página 1 de 1

Migración 1.3 -> 1.5 en Centos 7

Publicado: 30 de marzo de 2018 - 14:54
por CLAM
Buen día,

Seguí el procedimiento como se explica en la página https://www.wapt.fr/fr/doc/waptserver_u...entos.html pero encontré algunos errores durante el procedimiento.

En caso de que esto pueda ser útil para otros, aquí están los cambios que tuve que hacer para completar con éxito la migración:

Para desinstalar wapt 1.3:

Código: Seleccionar todo

yum remove tis-waptrepo tis-waptsetup tis-waptserver
systemctl stop apache2
systemctl disable apache2
se convierte en:

Código: Seleccionar todo

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


En la sección Actualizar el servidor CentOS / Red Hat :

Código: Seleccionar todo

yum install postgresql94-server postgresql94-contrib
se convierte en:

Código: Seleccionar todo

yum install postgresql94-server postgresql94-contrib mongodb
(MongoDB se divide en dos paquetes en CentOS: mongodb-server y mongodb. El paquete mongodb contiene mongoexport, que es utilizado por el script de migración).

También ejecuté el siguiente comando para que el script de migración pudiera verificar la presencia del archivo de bloqueo:

Código: Seleccionar todo

chmod 755 /var/lib/mongodb
Parcheé el archivo /opt/wapt/waptserver/waptserver_upgrade.py (solo usé (current_distrib != "centos linux" porque no tengo una máquina rhel7 a mano para probar si el script inicial también necesita modificaciones para funcionar):

Código: Seleccionar todo

--- /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)
También parcheé el archivo /opt/wapt/waptserver/scripts/postconf.py porque en CentOS el demonio no se llama mongodb sino mongod:

Código: Seleccionar todo

--- /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
Para retirar paquetes del repositorio, modifique los comandos especificados en la página https://www.wapt.fr/fr/doc/waptserver_u ... regenerar cambiando /var/www/wapt/... a /var/www/html/wapt/...

Código: Seleccionar todo

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