3-Node HA CentOS / RHEL Upgrade

The following covers upgrading the Morpheus App nodes in 3 Node HA configurations to v5.3.2.

Warning

As a best practice, always backup your database prior to any upgrade.

Important

The following is only for “3 Node HA” Architecture configurations.

Morpheus Packages

Morpheus Release Package urls can be obtained from https://morpheushub.com

4.2.0+ -> v5.3.2 Upgrade

Warning

Rolling upgrades are not supported for 4.2.x -> 5.x upgrades

Important

Due to Database schema changes in v5.3.2 it is important to stop the morpheus-ui service on all app nodes prior to upgrade. Failure to do so may result in errors or database corruption.

Warning

Morpheus v5.3.2 contain new node and vm node packages that require 3.5GB of storage. It is safe to run sudo rm -Rf /var/opt/morpheus/package-repos/* after v5.3.2 package installation and before reconfigure to clean old node and vm node packages from the package-repo when room is needed.

  1. Starting with Node 3, on All App Nodes, stop the morpheus-ui services via morpheus-ctl stop morpheus-ui. If you receive a timeout, run morpheus-ctl graceful-kill morpheus-ui.

    [[email protected] ~]# morpheus-ctl stop morpheus-ui
    
    [[email protected] ~]# morpheus-ctl stop morpheus-ui
    
    [[email protected] ~]# morpheus-ctl stop morpheus-ui
    
  2. Upgrade the RPM package on Node 1, then run a Reconfigure on Node 1

    [[email protected] ~]# sudo wget https://packageUrl.morpheus-appliance-x.x.x-x.x86_64.rpm
    [[email protected] ~]# sudo rpm -Uhv morpheus-appliance-x.x.x-x.x86_64.rpm
    [[email protected] ~]# sudo morpheus-ctl reconfigure
    

    Note

    All services will automatically stopped and started during the reconfigure process. After the reconfigure has succeeded, tail the ui service to watch ui startup logs with morpheus-ctl tail morpheus-ui.

  3. Once Node 1 upgrade has completed and the u is available, upgrade the RPM package on Node 2, then run a Reconfigure on Node 2.

    [[email protected] ~]# sudo wget https://packageUrl.morpheus-appliance-x.x.x-x.x86_64.rpm
    [[email protected] ~]# sudo rpm -Uhv morpheus-appliance-x.x.x-x.x86_64.rpm
    [[email protected] ~]# sudo morpheus-ctl reconfigure
    
  4. Then upgrade the RPM package on Node 3, then run a Reconfigure on Node 3

    [[email protected] ~]# sudo wget https://packageUrl.morpheus-appliance-x.x.x-x.x86_64.rpm
    [[email protected] ~]# sudo rpm -Uhv morpheus-appliance-x.x.x-x.x86_64.rpm
    [[email protected] ~]# sudo morpheus-ctl reconfigure
    
  5. The upgrade is complete and the Morpheus-ui services should be running with clustered Elasticsearch and RabbitMQ services across the 3 nodes.

Important

If reconfigure after a rpm package uprade stalls or hangs on starting a service (mysql, rabbitmq, elasticsearch …) it is possible the morpheus-runsvdir service did not start or a process it was managing was manually shutdown or killed. To resolve, run systemctl stop morpheus-runsvdir then systemctl start morpheus-runsvdir, then run reconfigure again, morpheus-ctl reconfigure.


5.0.0+ -> v5.3.2 Upgrade

Note

Rolling upgrades are supported for 5.x -> v5.3.2 upgrades

Warning

Morpheus v5.3.2 contain new node and vm node packages that require 3.5GB of storage. It is safe to run sudo rm -Rf /var/opt/morpheus/package-repos/* after v5.3.2 package installation and before reconfigure to clean old node and vm node packages from the package-repo when room is needed.

  1. Upgrade the RPM package on Node 1, then run a Reconfigure on Node 1

    [[email protected] ~]# sudo wget https://packageUrl.morpheus-appliance-x.x.x-x.x86_64.rpm
    [[email protected] ~]# sudo rpm -Uhv morpheus-appliance-x.x.x-x.x86_64.rpm
    [[email protected] ~]# sudo morpheus-ctl stop morpheus-ui
    [[email protected] ~]# sudo morpheus-ctl reconfigure
    [[email protected] ~]# sudo morpheus-ctl start morpheus-ui
    

    After the reconfigure has succeeded, tail the ui service to watch ui startup logs with morpheus-ctl tail morpheus-ui. Once morpheus-ui is started, proceed to the next node.

  2. Once Node 1 upgrade has completed and the u is available, upgrade the RPM package on Node 2, then run a Reconfigure on Node 2.

    [[email protected] ~]# sudo wget https://packageUrl.morpheus-appliance-x.x.x-x.x86_64.rpm
    [[email protected] ~]# sudo rpm -Uhv morpheus-appliance-x.x.x-x.x86_64.rpm
    [[email protected] ~]# sudo morpheus-ctl stop morpheus-ui
    [[email protected] ~]# sudo morpheus-ctl reconfigure
    [[email protected] ~]# sudo morpheus-ctl start morpheus-ui
    

    After the reconfigure has succeeded, tail the ui service to watch ui startup logs with morpheus-ctl tail morpheus-ui. Once morpheus-ui is started, proceed to the next node.

  3. Then upgrade the RPM package on Node 3, then run a Reconfigure on Node 3

    [[email protected] ~]# sudo wget https://packageUrl.morpheus-appliance-x.x.x-x.x86_64.rpm
    [[email protected] ~]# sudo rpm -Uhv morpheus-appliance-x.x.x-x.x86_64.rpm
    [[email protected] ~]# sudo morpheus-ctl stop morpheus-ui
    [[email protected] ~]# sudo morpheus-ctl reconfigure
    [[email protected] ~]# sudo morpheus-ctl start morpheus-ui
    

    After the reconfigure has succeeded, tail the ui service to watch ui startup logs with morpheus-ctl tail morpheus-ui. Once morpheus-ui is started, proceed to the next node.

  4. The upgrade is complete and the Morpheus-ui services should be running with clustered Elasticsearch and RabbitMQ services across the 3 nodes.

Important

If reconfigure after a rpm package uprade stalls or hangs on starting a service (mysql, rabbitmq, elasticsearch …) it is possible the morpheus-runsvdir service did not start or a process it was managing was manually shutdown or killed. To resolve, run systemctl stop morpheus-runsvdir then systemctl start morpheus-runsvdir, then run reconfigure again, morpheus-ctl reconfigure.