v3.2.1

Release Date 3/23/2018

Important

Morpheus v3.2.0+ introduces Global Search, which requires an Elasticsearch upgrade. Upgrading from previous versions of Morpheus to a 3.2.0 or later requires you to upgrade ElasticSerach to 5.4.1 or 5.x. We do not support ElasticSearch 6.x at this time. This upgrade requires you to export and import your Morpheus ElasticSearch data if you want to retain logs, backup history, statistics, and check history of your instances. If you do not need to retain that data you can skip the ElasticSearch migration. Upgrading to 3.2.0+ will create a blank ElasticSearch node with no data. Your Morpheus layout configuration will determine how to migrate your ElasticSearch data: all-in-one, distributed high availability, or Morpheus clustered appliances.

Please refer to upgrade instructions below the release notes.

New Features

  • Instances: Last Deployment Name/Version added to Instance list & details sections
  • Library: Minimum Memory field added to Layouts. Only the service plan options meeting this requirement will be displayed during provisioning.
  • Load Balancers: F5- VIP Creation Validation added
  • Load Balancers: F5- Pool Creation Validation added
  • Load Balancers: F5- SSL Profile Option during VIP Creation added
  • Load Balancers: F5- SSL Remove Policies Option during VIP Creation added
  • Networks: Network filter added to Bluecat Service.
  • Virtual Images: Minimum Memory field add to Virtual Images. Only the service plan options meeting this requirement will be displayed during provisioning. Note this will override any memory requirement set on the virtual image.
  • VMware: Cores per Socket Added to VMware type Service Plans
  • VMware: Sync time optimizations & memory utilization improvements

Fixes

  • Fix for VMware MV inventory issue when VM’s exist with same name in different resource pools
  • Fix for setting custom group access on legacy subtenant role.
  • Fix for white labeling favicon resetting to default
  • Fix for Analytics filter issues when filtering by Cloud or Group
  • Fix for API & CLI groups list timeouts in high usage environments
  • Fix for Nutanix Cloudbase-init metadata
  • Fix for Instance Removal from CLI not recording user
  • Fix for Bare metal: Convert to Managed creating Docker type check
  • Fix for Cloud Delete: service plan foreign key constraint prevents deleting of service plans during cloud delete
  • Fix for the global search HA replica count being set to 0 instead of 1

Important

For upgrades to 3.2.0 please follow the 3.2.0 upgrade instructions below!

3.2.0+ Upgrades

Overview

Upgrading from previous versions of Morpheus to 3.2.0 or later requires upgrading ElasticSerach to 5.4.1 or 5.x. We do not support ElasticSearch 6.x at this time. This upgrade requires an export and import of Morpheus ElasticSearch data if you want to retain logs, backup history, statistics, and check history of your instances. If you do not need to retain that data you can skip the ElasticSearch migration. Upgrading to 3.2.0 will create a blank ElasticSearch node with no data. Your Morpheus layout configuration will determine how to migrate your ElasticSearch data: all-in-one or distributed high availability.

Morpheus All-In-One

This deployment configuration is the default mode for Morpheus and contains a single ElasticSearch instance on the appliance. The migration steps are as follows:

  1. Login to your appliance as a user that has sudo privileges and can switch to the root user sudo su -. You can run the following commands under sudo, but you will need to pass the PATH to the Morpheus embedded directory. Export the Morpheus embedded path to your environment by executing: export PATH=/opt/morpheus/sbin:/opt/morpheus/sbin:/opt/morpheus/embedded/sbin:/opt/morpheus/embedded/bin:$PATH
  2. Verify that you are using the Morpheus embedded gem by executing the command: which gem. You should see the path /opt/morpheus/embedded/bin/gem
  3. Install the elastic-util gem by executing: gem install elastic-util if you don’t want the documentation then execute gem install elastic-util --no-ri --no-rdoc
  4. Stop the Morpheus application by executing morpheus-ctl stop morpheus-ui, this will stop creating new documents in ElasticSearch.
  5. Create a backup of the ElasticSearch indices by executing: elastic-util backup http://localhost:9200 /root/es_backup, you can change the location of the backup to any file location. You can also pass the --force argument to overwrite the existing location if you are repeating the backup.
  6. Upgrade Morpheus as usual by executing the package upgrade command dpkg -i morpheus-appliance_3.2.0-1_amd64.deb or rpm -U morpheus-appliance-3.2.0-1.el7.x86_64.rpm, and run morpheus-ctl reconfigure to complete the upgrade process.
  7. You can start Morpheus at this point to bring up the Morpheus application by executing: morpheus-ctl start morpheus-ui.

Note

Make sure that Morpheus is fully started before moving on to the next step.

Once the application has started, a new ElasticSearch node is created with default data, to import your data from the backup execute: morpheus-ctl elastic-util restore http://localhost:9200 /root/es_backup, substitute the path you used during the backup if different from above.

Note

The restore may take several hours depending on the amount of data to restore. You can run this while running Morpheus.

Morpheus Distributed High Availability

This deployment configuration assumes that you manage an ElasticSearch cluster externally from Morpheus. The steps for upgrading ElasticSearch from 1.x to 5.x are located on the ElasticSearch website. Run the following from a “master” appliance, it has the required Ruby installed in the Morpheus full stack directory. Ensure that the appliance can reach at least one ElasticSearch node over port 9200 (http). Also, make sure thre is enough disk space to hold the exported data on the appliance.

  1. Login to the master appliance as a user that has sudo privileges and can switch to the root user sudo su -. You can run the following commands under sudo, but you will need to pass the PATH to the Morpheus embedded directory.

  2. Export the Morpheus embedded path to your environment by executing: export PATH=/opt/morpheus/sbin:/opt/morpheus/sbin:/opt/morpheus/embedded/sbin:/opt/morpheus/embedded/bin:$PATH

  3. Verify that you are using the Morpheus embedded gem by executing the command: which gem. You should see the path /opt/morpheus/embedded/bin/gem

  4. Install the elastic-util gem by executing: gem install elastic-util if you don’t want the documentation then execute gem install elastic-util --no-ri --no-rdoc

  5. Stop all the Morpheus application instances by executing morpheus-ctl stop morpheus-ui on each appliance node, this will stop creating new documents in ElasticSearch.

  6. Create a backup of the ElasticSearch indices by executing: elastic-util backup http://xxx.xxx.xxx.xxx:9200 /root/es_backup, you can change the location of the backup to any file location. You can also pass the --force argument to overwrite the existing location if you are repeating the backup.

    Note

    The next steps are done on the ElasticSearch node(s).

  7. Stop ElasticSearch on each node.

  8. Backup the ElasticSearch config directory for each node, normally located at /etc/elasticsearch/.

  9. Since the index data between 1.x and 5.x is incompatible, delete the data from the data directory normally located at /var/lib/elasticsearch. To prepare for future upgrades make sure that you delete the cluster name directory as well, ie morpheus.

  10. Upgrade ElasticSearch, use the method that best fits your situation ie pkg, tar, or zip.

  11. Remove unsupported configuration from the existing ElasticSearch configuration

    • index.number_of_shards
    • index.number_of_replicas
    • discovery.zen.ping.multicast
  12. Replace or update the package installed configuration with your existing configuration if it was overwritten.

    • Set network.host or network.bind_ip and network.publish_ip accordingly to your network configuration.
  13. Start ElasticSearch on each node and form a new cluster.

  14. Verify you have a good cluster by executing: curl http://xxx.xxx.xxx.xxx:9200/_cluster/health?pretty, check for the number of nodes and that you have a green status.

    Note

    The next steps are done on the Morpheus “master” node.

  15. Upgrade Morpheus as usual by executing the package upgrade command dpkg -i morpheus-appliance_3.2.0-1_amd64.deb or rpm -U morpheus-appliance-3.2.0-1.el7.x86_64.rpm, and run morpheus-ctl reconfigure to complete the upgrade process.

  16. You can start Morpheus on the master node only at this point to bring up the Morpheus application by executing: morpheus-ctl start morpheus-ui.

    Note

    Make sure that Morpheus is fully started before moving on to the next step.

  17. Once the application has started, a new ElasticSearch node is created with default data, to import your data from the backup execute: morpheus-ctl elastic-util restore http://xxx.xxx.xxx.xxx:9200 /root/es_backup, substitute the path you used during the backup if different from above.

    Note

    The restore may take several hours depending on the amount of data to restore. You can run this while running Morpheus.

  18. Move to the next Morpheus appliance and upgrade it by executing the package upgrade command dpkg -i morpheus-appliance_3.2.0-1_amd64.deb or rpm -U morpheus-appliance-3.2.0-1.el7.x86_64.rpm, and run morpheus-ctl reconfigure to complete the upgrade process.

  19. Start Morpheus by executing: morpheus-ctl start morpheus-ui.

  20. Upgrade the rest of the Morpheus appliances in your environment.