Upgrading Unified Assurance on Linux 7 to Linux 8

Learn about upgrading Oracle Communications Unified Assurance on Oracle Linux 7 to Oracle Linux 8 as an in-place upgrade to your existing Linux system or a forklift upgrade onto a new Linux 8 system.

About Upgrading Unified Assurance on Linux 7 to Linux 8

When updating to Unified Assurance version 6.0.4, you can choose to remain on Linux 7 or upgrade to Linux 8. Upgrading to Linux 8 offers the following advantages:

You can upgrade to Linux 8 with the following methods:

Performing an In-Place Upgrade

This procedure uses the following placeholders, marked with angled brackets in the commands (<>):

Perform all commands in this procedure as the root user.

To perform an in-place upgrade:

  1. For each Unified Assurance server, back up the Assure1.conf file, located in the UA_home/etc directory, to a safe location.

  2. For each Unified Assurance server, remove the Unified Assurance RPM using the noscripts flag with the following command:

    sudo yum --setopt=tsflags=noscripts erase Assure1
    
  3. Upgrade your Linux 7 environment to Linux 8 using the Leapp utility as described in Oracle Linux 8 Upgrading Systems With Leapp.

  4. Confirm that Linux prerequisites are met for all servers. See Linux Prerequisites.

  5. On the primary presentation server:

    1. Reset the Unified Assurance packages to their base versions:

      a1mysql
      UPDATE Packages SET PackageVersion = '6.0.0.0.0.0';
      
    2. Download the latest Unified Assurance release package from Oracle Software Delivery Cloud:

      https://edelivery.oracle.com

      The package contains the Oracle-Communications-Unified-Assurance-6.X.X.X.X-el8.zip collection file for installation.

    3. Extract the collection file to the location on the Unified Assurance primary presentation server where the packages were placed during the initial Unified Assurance installation. This is typically /opt/install/.

      unzip -d <installation_file_directory> Oracle-Communications-Unified-Assurance-6.X.X.X.X-el8.zip
      
  6. Copy the Assure1-6.X.X.X.X-X.el8.x86_64.rpm file to each of your Unified Assurance servers.

  7. On each of your Unified Assurance servers, starting with the primary presentation server:

    1. Install the latest Unified Assurance RPM for Linux 8:

      sudo dnf -y install Assure1-6.X.X.X.X-X.el8.x86_64.rpm
      
    2. Restore the backup of the Assure1.conf file and place it in the UA_home/etc/ directory.

    3. Start the Unified Assurance Broker:

      sudo systemctl start assure1-broker
      
    4. Remove the Linux 7 Unified Assurance packages by removing the contents of the UA_home/distrib/packages directory:

      rm -f <UA_home>/distrib/packages/*
      
  8. Run Package update for each of your Unified Assurance servers:

    1. On the primary presentation server:

      <UA_home>/bin/Package update --depot <installation_file_directory>
      
    2. On all other servers:

      <UA_home>/bin/Package update
      

The in-place upgrade is complete.

Performing a Forklift Upgrade

Before starting this procedure, you must set up your Linux 8 servers and be ready to install the latest version of Unified Assurance on them. See Linux Prerequisites for information about preparing your Linux system for a Unified Assurance installation or upgrade.

The procedure uses the following placeholders, marked with angled brackets in the commands (<>):

To make the process easier, the procedure instructs you to create environment variables for these placeholder values at the appropriate point. For example:

export BASEDIR=/opt/assure1
export FILESDIR=/opt/install
export OL7FQDN=ol7.server.fqdn
export OL8FQDN=ol8.server.fqdn
export OL8WEBFQDN=ol8.server.webfqdn
export RPMVERSION=6.0.4.0.2

Run all commands in this procedure as the root user.

To perform a forklift upgrade, after installing Linux 8:

  1. For all Unified Assurance Linux 7 servers, starting with your primary presentation server, prepare for the upgrade by backing up your Unified Assurance home directory:

    1. On your original Linux 7 server, create an environment variable for UA_home, replacing UA_home with the appropriate value:

      export BASEDIR=<UA_home>
      
    2. Stop all services, the broker, the message bus, the web server, and the MySQL database:

      $BASEDIR/bin/BrokerControl --batch stopall
      systemctl stop assure1-broker
      systemctl stop assure1-bus
      systemctl stop assure1-web
      systemctl stop assure1-db
      
    3. Create a file called tar-excludes.txt that specifies what to exclude from the backup using the following command:

      cat <<EOF > tar-excludes.txt
      $BASEDIR/distrib/packages
      $BASEDIR/var/chartmuseum
      $BASEDIR/var/docker
      $BASEDIR/var/registry
      $BASEDIR/var/run/docker
      $BASEDIR/var/run/docker.pid
      $BASEDIR/vendor/docker
      $BASEDIR/vendor/helm
      $BASEDIR/vendor/kubernetes
      $BASEDIR/vendor/rke
      $BASEDIR/vendor/submariner
      EOF
      
    4. Back up the UA_home directory:

      tar --exclude-from=tar-excludes.txt -czf UAOL7-Backup.tgz $BASEDIR
      
  2. For all new Unified Assurance Linux 8 servers, starting with your primary presentation server, repeat the following steps:

    1. Create environment variables for UA_home, installation_file_directory, Linux_7_FQDN, Linux_8_FQDN and Linux_8_web_FQDN, replacing the placeholders with the appropriate values:

      export BASEDIR=<UA_home>
      export FILESDIR=<installation_file_directory>
      export OL7FQDN=<Linux_7_FQDN>
      export OL8FQDN=<Linux_8_FQDN>
      export OL8WEBFQDN=<Linux_8_web_FQDN>
      
    2. Copy the UAOL7-Backup.tgz tar backup file to the new Linux 8 server.

    3. Extract the UAOL7-Backup.tgz tar backup file:

      tar -xzf UAOL7-Backup.tgz -C /
      
    4. Replace the old server FQDN with the new FQDN:

      grep -rl --exclude-dir={etc,legal,lib,logs,tmp,var} "$OL7FQDN" $BASEDIR/* | xargs sed -i "s/$OL7FQDN/$OL8FQDN/g"
      grep -rl --exclude-dir={ssl,priv} "$OL7FQDN" $BASEDIR/etc/* | xargs sed -i "s/$OL7FQDN/$OL8FQDN/g"
      grep -rl "$OL7FQDN" $BASEDIR/var/checkouts/*/.svn/* | xargs sed -i "s/$OL7FQDN/$OL8FQDN/g"
      
    5. Remove the old SSL certificates:

      rm -f $BASEDIR/etc/ssl/priv/*.pem
      rm -f $BASEDIR/etc/ssl/priv/*.old
      > $BASEDIR/etc/ssl/priv/index.txt
      > $BASEDIR/etc/ssl/priv/index.txt.attr
      > $BASEDIR/etc/ssl/priv/serial
      cd $BASEDIR/etc/ssl && ls | grep -xv Assure1CA.crt | grep -xv priv | xargs rm -f
      rm -rf $BASEDIR/var/rabbitmq/mnesia/*
      
    6. Download the latest Unified Assurance release package for Linux 8 from Oracle Software Delivery Cloud:

      https://edelivery.oracle.com

      The package contains the Oracle-Communications-Unified-Assurance-6.X.X.X.X-el8.zip collection file for installation.

    7. Extract the collection file contents to installation_file_directory.

      unzip -d $FILESDIR Oracle-Communications-Unified-Assurance-6.X.X.X.X-el8.zip
      
    8. Install the latest Unified Assurance RPM for Linux 8:

      dnf -y install $FILESDIR/Assure1-6.X.X.X.X-X.el8.x86_64.rpm
      
    9. Make note of the RPM version, and create an environment variable containing that version number. Do not include the package number or el8, and replace each X with the appropriate number:

      export RPMVERSION=6.X.X.X.X
      

      For example: 6.0.4.0.2

    10. Add the Linux 8 host FQDN to the UA_home/etc/Assure1.conf file:

      sed -i "s/\"DBHost\": \"\"/\"DBHost\": \"$OL8FQDN\"/g" $BASEDIR/etc/Assure1.conf
      
    11. Generate new SSL certificates:

      $BASEDIR/bin/CreateSSLCertificate --Type SiteCA --Force
      $BASEDIR/bin/CreateSSLCertificate --Type Web -c $OL8WEBFQDN
      
    12. Copy the following Unified Assurance systemd scripts from the /etc/systemd/system/ directory on the original Linux 7 server to the /etc/systemd/system/ directory on the Linux 8 server:

      • assure1-db.service

      • assure1-bus.service

      • assure1-web.service

    13. Reload the systemctl daemon:

      systemctl daemon-reload
      
    14. On presentation servers and Event database servers, start the MySQL database:

      systemctl start assure1-db
      
    15. On presentation servers only, set the correct server FQDN in the database and reset Unified Assurance packages to their base 6.0.0.0.0 versions:

      $BASEDIR/vendor/mysql/bin/mysql --defaults-file=$BASEDIR/etc/my.cnf Assure1 -e "UPDATE Servers SET ServerHostFQDN='$OL8FQDN', WebFQDN='$OL8WEBFQDN', Version='$RPMVERSION' WHERE ServerID = 1"
      $BASEDIR/vendor/mysql/bin/mysql --defaults-file=$BASEDIR/etc/my.cnf Assure1 -e "UPDATE CoreDatabases SET DBHost = '$OL8FQDN'"
      $BASEDIR/vendor/mysql/bin/mysql --defaults-file=$BASEDIR/etc/my.cnf Assure1 -e "UPDATE Packages SET PackageVersion = '6.0.0.0.0.0'"
      
    16. On presentation servers only:

      1. Start RabbitMQ:

        systemctl start assure1-bus
        
      2. Create a new assure1 RabbitMQ user:

        source $BASEDIR/.assure1_bashrc
        $BASEDIR/bin/Package add-rabbit-user
        
    17. Remove old packages from the UA_home/distrib/packages directory:

      rm -f $BASEDIR/distrib/packages/*
      
    18. Start the Unified Assurance Broker:

      systemctl start assure1-broker
      
    19. Remove old Linux 7 SSL and libcrypto libraries:

      rm -f $BASEDIR/lib/libcrypto.s* $BASEDIR/lib/libssl.s*
      
    20. Install the latest versions of vendorJava-app, vendorOpenSSL-app, and assure1-app:

      source $BASEDIR/.assure1_bashrc
      $BASEDIR/bin/Package install vendorJava-app vendorOpenSSL-app assure1-app --depot $FILESDIR
      
    21. On presentation servers only, install vendorApache-app:

      source $BASEDIR/.assure1_bashrc
      $BASEDIR/bin/Package install vendorApache-app --depot $FILESDIR
      
    22. On presentation servers only, start the Unified Assurance web server:

      systemctl start assure1-web
      
    23. Run Package update:

      $BASEDIR/bin/Package update --depot $FILESDIR
      
    24. Remove the InstallIncomplete entry from the Assure1.conf file:

    sed -i '/InstallIncomplete/c\' $BASEDIR/etc/Assure1.conf
    
  3. Copy any custom Docker images on your Linux 7 servers to your Linux 8 servers using the docker save and docker load commands:

    1. On the Linux 7 server, run docker save:

      docker save -o /<docker_backup_directory>/<docker_image_name>.tgz  <docker_image_name>:<tag>
      

      In the command:

      • docker_backup_directory is the directory where you want to save the backup

      • docker_image_name is the name for the image

      • tag is the tag to use to refer to the image

    2. Copy image_name.tgz to your Linux 8 server.

    3. On the Linux 8 server, run docker load:

      docker load -i /<docker_backup_directory>/<docker_image_name>.tgz
      

      See the Docker documentation for full descriptions of these Docker CLI commands.

  4. Set up your microservice clusters as described in Microservice Cluster Setup in Unified Assurance Implementation Guide

The forklift upgrade is complete.