Migrating UForge from 3.7 to 3.8ΒΆ

Before you start upgrading from UForge AppCenter version 3.7 to version 3.8, please note that the UForge root user password is now subject to restrictions. The UForge root user password must be 8 characters or more, contain at least 1 upper case letter, 1 lower case letter and 1 number. Characters - and _ are also allowed.

If your current UForge root user password matches those requirements, you do not need to make any changes. If your current UForge root user password does not match these requirements, you will have to change it in your UForge 3.7 AppCenter before starting migration.

A separate set of scripts and associated README.txt file is available on the UShareSoft repository.

  1. Deploy UForge 3.8 with the same topology as the original UForge 3.7 one to migrate, using the CentOS 7 UForge in a box ISO

    • Deploy without any OS and format
    • Use the same organisation name (UFORGE_DEFAULT_ORG_NAME info) as the one defined in /etc/UShareSoft/auth.conf on the <source_db>
    • Use the same admin password (UFORGE_DB_ADMIN_PASSWORD info) as the one defined in /etc/UShareSoft/auth.conf on the <source_db>
  2. Upgrade your UForge to the latest 3.8 patch, for each node of the platform (if multi-node the following order should be respected: compute notes, db nodes, web service and UI nodes).

    # yum update -y uforge-common
    # yum update -y uforge-gen uforge uforge-cli uforge-client
    
  3. To upgrade from UForge 3.8 to a 3.8.fpx, you have to do the following on each node composing the topology. The following order should be respected: compute notes, db nodes, web service and UI nodes:

    1. Edit /etc/yum.repos.d/uforge-ee-centos.repo and update baseurl info replacing stable/3.8/official/centos/releases/$releasever/$basearch/ by stable/latest/official/centos/releases/$releasever/$basearch/.
    2. Run the following command on each node:
    # yum update -y uforge-common
    # yum update -y uforge-gen uforge uforge-cli uforge-client
    
  4. The source UForge DB server has to be upgraded to the last 3.7 version. On the <source_db> run the following commands:

    # yum update -y uforge-common
    # yum update -y uforge-gen uforge uforge-cli uforge-client
    
  5. The source UForge Web Service server has to be upgraded to the last 3.7 version. On the <source_ws> run the following commands:

    # yum update -y uforge-common
    # yum update -y uforge-gen uforge uforge-cli uforge-client
    # service tomcat stop
    
  6. Once both platforms are ready, on <source_db> run the following commands:

    # service oar-server stop
    # service OpenDJ  stop
    # cd /tmp/USER_DATA
    # source /etc/UShareSoft/auth.conf
    # mysqldump -u${UFORGE_DB_ADMIN_LOGIN} -p${UFORGE_DB_ADMIN_PASSWORD} --routines --triggers --databases oar syncope uauthdb usharedb > db_backup_3.7.sql
    # /opt/OpenDJ/bin/export-ldif -l uforge-export.ldif -n userRoot
    # rsync  -avl -H -F --progress /tmp/USER_DATA/ root@<target_db>:/tmp/USER_DATA/
    
  7. Once the previous rsync command has finished oar-server and opendj services have to be stopped. On <target_db > run the following commands:

    # systemctl stop oar-server
    # service opendj stop
    
  8. Once oar-server and opendj are stoppen you need to stop Tomcat. On <target_ws> run the following command:

    # service tomcat stop
    
  9. The DB on <target_db> server has to be reset. Tun the following commands:

    # source /etc/UShareSoft/auth.conf
    # echo "DROP DATABASE usharedb;" | mysql -u${UFORGE_DB_ADMIN_LOGIN} -p${UFORGE_DB_ADMIN_PASSWORD}
    # echo "DROP DATABASE oar;" | mysql -u${UFORGE_DB_ADMIN_LOGIN} -p${UFORGE_DB_ADMIN_PASSWORD}
    # echo "DROP DATABASE syncope;" | mysql -u${UFORGE_DB_ADMIN_LOGIN} -p${UFORGE_DB_ADMIN_PASSWORD}
    # echo "DROP DATABASE uauthdb;" | mysql -u${UFORGE_DB_ADMIN_LOGIN} -p${UFORGE_DB_ADMIN_PASSWORD}
    # cd /tmp/USER_DATA
    # mysql -u${UFORGE_DB_ADMIN_LOGIN} -p${UFORGE_DB_ADMIN_PASSWORD} < db_backup_3.7.sql
    # service mysql restart
    # oar-database --setup (answer y to the question)
    # /opt/opendj/bin/import-ldif -l uforge-export.ldif -n userRoot
    # systemctl start oar-server
    # service opendj start
    if ( <target_db> != <target_ws> )
            # /opt/UShareSoft/uforge/tools/update_scripts/uforge_update.sh 2>&1 | tee -a /tmp/USER_DATA/uforge_update_db_3.8.log
    fi
    
  10. Once the DB is reset, Tomcat has to be started. On <target_ws> run the following commands:

    # service tomcat start
    # /opt/UShareSoft/uforge/tools/update_scripts/uforge_update.sh 2>&1 | tee -a /tmp/USER_DATA/uforge_update_ws_3.8.log
    # rm /tmp/USER_DATA/db_backup_3.7.sql
    # rm /tmp/USER_DATA/uforge-export.ldif
    
  11. If you have customized the UI you will need to follow these additional steps before migration to 3.8. This step applies to all the customization files in /var/opt/UShareSoft/uforge-client/gwt/uforge/templates (as decribed in), as well as config.xml, forge-config.xml, and css directory (in case of css customisation). Do the following on <target_ui>:

    1. rsync the customised files from the UI node of the source UForge AppCenter to the UI node of the target AppCenter.

    2. Edit file forge-config.xml, line

      <c:uForgeUrl>http://10.2.1.11:8080/ufws/</c:uForgeUrl>
      
    3. Replace the old web service node IP address with the IP address of the new web service node.

    4. Launch the command

      /opt/UShareSoft/uforge-client/bin/uforge_ui_update.sh
      
  12. If you detect an issue, please contact support@usharesoft.com with the following files:

    • The standard output of the command
    • The result of running the ifconfig command
    • The /etc/hosts file
    • The name of the current node