Upgrade Abiquo Monolithic to v5.2.x
Major upgrade
The upgrade to Abiquo 5.2.0 is a major upgrade with upgrades of third-party software packages that are critical platform dependencies
You must make snapshots of ALL servers before you start the upgrade
Abiquo YUM repositories are no longer open, please contact Abiquo Support to obtain your credentials
This upgrade process starts from Abiquo 4.7 or above. To upgrade from earlier versions, please contact Abiquo Support
Prepare branding
If you are upgrading from Abiquo 4.7.x, the new UI in Abiquo 5.0 requires new branding. See Abiquo branding guide
Prevent cloud users from performing VM operations
In the UI in the Infrastructure view, select each physical machine and click Disable
Using the API, set the state of each physical machine to DISABLED
Check for operations in progress on the platform
Before you shut down the platform servers you should check that no operations are in progress on the platform.
Check that the Abiquo RabbitMQ queues are empty on the Abiquo Monolithic Server, Abiquo Server or Datanode server
The number of messages in all queues must be 0.
# rabbitmqctl list_queues messages name
# rabbitmqctl list_queues messages name Listing queues ... 0 abiquo.am.notifications 0 abiquo.bpm.notifications 0 abiquo.datacenter.requests.ADatacenter.bpm 0 abiquo.datacenter.requests.ADatacenter.virtualfactory 0 abiquo.ha.tasks 0 abiquo.nodecollector.notifications 0 abiquo.pcrsync.messages 0 abiquo.pcrsync.parking-expect-no-consumers 0 abiquo.scheduler.fast.requests 0 abiquo.scheduler.requests 0 abiquo.scheduler.slow.requests 0 abiquo.tracer.traces 0 abiquo.virtualfactory.notifications 0 abiquo.virtualmachines.definitionsyncs 0 abiquo.vsm.eventsynk ...done.
On the V2V Server, check for any active conversions by checking for the V2V or Mechadora processes
$ ps aux | grep v2v $ ps aux | grep mechadora
When user VM operations are blocked and all of the above checks show that no tasks are running, it is safe to halt the platform.
Disable old billing dashboards and delete last bills
In Abiquo 5.2, the billing dashboard feature is now in the core Abiquo platform.
If you are using the billing dashboard scripts from previous versions, disable them and delete last bills before you continue with the upgrade.
On the server where you were running the billing packages, remove the Cron jobs to run the billing scripts.
Delete the last bills from the previous version of the billing dashboards (from the kinton.billing_consolidation and kinton.billing_register tables), see commands below. Remove the bills for Azure and Amazon providers, for the number of months covered by the abiquo.enterprise.property.billing.monthoffset system property, which has a default value of 2 months. Later the new billing dashboards feature will regenerate these bills:
Back up the main platform elements
To perform a basic backup of the platform, run the following backups:
Before you begin, stop platform services, and check you have enough space on your destination systems.
Stop platform services
This section describes how to stop platform services on all servers.
To stop platform services:
Stop the API on the API server or Monolithic server
Stop the UI on the API server or Monolithic server or dedicated UI server
Stop Remote services server
Stop the database on the Monolithic server or Database server or Datanode server.
For a datanode configuration, you will also need to stop the Galera cluster. For more details, see Stop and start HA configuration
Stop RabbitMQ (on the monolithic server or API Server or Datanode)
V2V server -
You do not need to stop anything because the BPM remote service is run on-demand onlyStop monitoring server
On the monitoring server, check if Cassandra is really dead
Get the process number for Cassandra (the first number in the output of the previous command), and kill it. In this example, Cassandra is process
12345
.
All processes on platform servers should now be halted.
Make snapshots and backups of all platform servers
The upgrade to Abiquo 5.2.x is a major upgrade with upgrades of third-party software packages that are critical platform dependencies
You MUST make snapshots of all servers in your platform before you upgrade to Abiquo 5.2.x.
Prepare yum repositories on all servers
First, check that you have the repository URL and credentials.
To upgrade to a version with a patch number of zero, for example, version 5.2.0
OR To upgrade to a version with patch number that is not zero, for example, version 5.2.1, enable both repositories:
Optionally add your username and password to the Abiquo repos
Don't forget to use a backslash to escape any shell special characters. For more details, see Learning the bash Shell, Second Edition
Clean yum and make cache
If you did not make snapshots of all servers already, then do this now
Upgrade monolithic server
These steps are for a Monolithic Abiquo Server, with API and Remote Services on a single server.
Abiquo will upgrade to new versions of RabbitMQ and MySQL that require a manual upgrade path of dependencies.
Remove the Erlang and Galera packages.
Install new RabbitMQ and MariaDB server
Before you confirm, check that the packages will be installed from the abiquo-base repository
rabbitmq-server: 3.8.2.1
MariaDB-server: 10.4.10.1
Upgrade Abiquo to 5.2.x
Before you confirm, check the following packages will be installed from the abiquo-base repository:
jdk: 11.0.6u10
redis: 5.0.7.1
After the update, check versions
Check that the symbolic link to the latest version of Java points to Java 11 on Monolithic Server or Datanode
Check that the correct Tomcat version will be used on the Monolithic Server
On the Monolithic Server in the JDK folder, check certificate migration for AM download. The API Server certificate should be listed for Java 11 with its FQDN. You may need to enter the storepass option to supply the password and you can use the alias option to search for the hostname or FQDN of your server
For example
Enable and start the new services
Upgrade MySQL (you might need to specifiy the user and password in the command line):
The mysql_upgrade step may detect errors that trigger messages such as the following:
These messages are expected and this same mysql_upgrade process will automatically fix these errors in its next stages.
Check that the mysql_upgrade process completes correctly.
Check that your hostname is in your DNS or in your /etc/hosts file
Upgrade the Abiquo API databases
If the liquibase update fails with a message similar to the following:
Do the following steps
Clear the database checksums
Retry the above abiquo-db update command.
On the monolithic server, change file owners to tomcat user
On the monolithic server running Remote Services that mount the NFS repository (AM, V2V), change file owners to tomcat user
Upgrade monitoring server
This step is for Watchtower monitoring servers in all installations.
To continue using Java 8 (for Cassandra), remove the JDK through the package manager. If you use yum, it will be delete all the dependencies and you will have to reinstall them
Check the jdk to install is version 8
Check that Java is correctly installed:
If you execute this command and get that error, please execute the command from the next bullet:
Fix it by executing this command, then selecting the option "java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre/bin/java)":
As for the Abiquo DB steps, remove Galera, which will also remove MariaDB
Clean yum and make cache
Install MariaDB
Update Abiquo
Check that the Java package is now "javajdk" to use Java 1.8.0u144 with Cassandra:
If you have a HA datanode that runs the watchtower database, skip directly to Step 10 to update watchtower database
Enable and start the services that were reinstalled
Upgrade MySQL
The mysql_upgrade step may detect errors that trigger messages such as the following message (note: this example is from the Abiquo database server).
These messages are expected and this same mysql_upgrade process will automatically fix these errors in its next stages.
Check that the mysql_upgrade process completes correctly.
Update the Abiquo Watchtower database
Upgrade steps from 4.7.x to 5.0.x
Start with your original version and perform the steps to the final version.
Upgrade steps from 5.0.x to 5.1.x
Start with your original version and perform the steps to the final version.
Upgrade steps from 5.1.x to 5.2.x
Start with your original version and perform the steps to the final version.
When upgrading from 5.1.0 or 5.1.1 to 5.1.2 or above, follow the steps from the Upgrade steps from 5.0.x to 5.1.x block.
Upgrade steps for 5.2 versions
These steps apply to upgrades starting from version 5.2.0 and above.
Configure Abiquo after the upgrade
Before you start the Abiquo tomcat server, add Abiquo configuration properties to the abiquo.properties file.
By default the abiquo.properties file is found in the /opt/abiquo/config/ folder.
See Changes to Abiquo configuration propertiesConfigure the user interface. The default UI location is /var/www/html/ui.
Optional: Add custom labels and translations in the lang_xx_XX_custom.json files in the lang folder
Add custom configuration to client-config-custom.json. See Configure Abiquo UI
If your API is not in the same domain as the UI, set the API endpoint pointing to your Abiquo API server:Reporting changes: To upgrade the Abiquo Reports database for the upgrade to Abiquo 4.7.x+, contact Abiquo Support for the file and procedure.
Start Abiquo servers and services
To start the Abiquo platform servers and services, do these steps:
On the Abiquo server, restart the HTTP daemon to refresh the user interface files, and bring up the Tomcat server.
On the Remote services server, start the Tomcat server
On the Monitoring server do these steps.
Edit the file
/opt/kairosdb/conf/kairosdb.properties
to update the name of the following variable and to remove the port from it:Replace the line
kairosdb.datastore.cassandra.host_list=192.168.888.999:9160
.With this line
kairosdb.datastore.cassandra.cql_host_list=192.168.888.999
. Please note the newcql_
prefix forhost_list
.
Edit the file
/etc/cassandra/conf/cassandra.yml
OR/etc/cassandra/default.conf/cassandra.yaml
(whichever exists) to remove a variable:Remove the line starting with
kairosdb.datastore.cassandra.datapoint_ttl
and save and close the file.
Edit the file
/opt/kairosdb/conf/kairosdb.properties
to add a new variable (ref: Internal JIRA SUP-333):Add
kairosdb.datastore.cassandra.datapoint_ttl = 15768000
On the Monitoring server, start the Cassandra service
WAIT about 5 minutes until the service is up and running
Start the KairosDB service
Start the other services in this order
On the V2V server: restart the Tomcat server:
In Abiquo, re-enable the physical machines!
Clear your browser cache to prevent glitches in the UI
Copyright © 2006-2024, Abiquo Holdings SL. All rights reserved