Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

This section describes how to upgrade from Abiquo 6.1.x to Abiquo 6.2.x. 
Please contact Abiquo Support for further information.

Warning

Major upgrade

The upgrade to Abiquo 6.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

Warning

This is a non-official upgrade document from which you can easily cut and paste the commands for each to prepare your own upgrade document.

  • The official upgrade document, that you must read and refer to for your upgrade is still Upgrade Abiquo

Abiquo YUM repositories are no longer open, please contact Abiquo Support to obtain your credentials

This upgrade process starts from Abiquo 6.1.0 or above. To upgrade from earlier versions, please see the appropriate page for your version.

Warning
  • The upgrade will overwrite lang_en_US_labels.json. If you have customized labels or translations, back them up before the upgrade and restore them afterwards accordingly.

  • The upgrade will overwrite the SAML login configuration for multiple IdPs. If you use SAML with multiple IdPs, back up the configuration files before the upgrade and add the multiple IdPs afterwards accordingly. See Restore SAML security beans after upgrade


1. Prevent cloud users from performing VM operations

...

Code Block
# Log in as root
sudo su -


# Check that the Abiquo RabbitMQ queues are empty (API or Datanode).
# The number of messages in all queues must be 0.
rabbitmqctl list_queues messages name


# Back up the UI
tar cvfz /var/www/html/ui.tgz UI
tar cvfz /var/www/html/ui.tgz-$(date +%Y%m%d_%H%M%S) /var/www/html/ui


# Copy the api.xml file to back up the database connection details
cp /opt/abiquo/tomcat/conf/Catalina/localhost/api.xml /opt/abiquo/api.xml-$(date +%Y%m%d_%H%M%S) /var/www/html/ui


# Back up the /opt/abiquo folder
tar cvfz /opt/abiquo.tgz-$(date +%Y%m%d_%H%M%S) /opt/abiquo

  
# Back up Redis
redis-cli save
cp -a /var/lib/redis /var/lib/redis-$(date +%Y%m%d_%H%M%S)


# On DB Server, back up the Abiquo MySQL DBs
mysqldump --routines --triggers kinton            > kinton.sql-$(date +%Y%m%d_%H%M%S)
mysqldump --routines --triggers kinton_accounting > kinton_accounting.sql-$(date +%Y%m%d_%H%M%S)


# IF you are using SAML with multiple IdPs, back up security beans files
cp /opt/abiquo/tomcat/webapps/api/WEB-INF/classes/springresources/security/saml/security-saml-generated-beans.xml /opt/abiquo/tomcat/webapps/api/WEB-INF/classes/springresources/security/saml/security-saml-generated-beans.xml-$(date
 +%Y%m%d_%H%M%S)


# Stop  services
systemctl stop httpd
systemctl stop abiquo-tomcat
systemctl stop rabbitmq-server
 

# Install latest yum release package for your target version using link
yum remove 'abiquo-release-*'
# Find the correct link at https://abiquo.atlassian.net/wiki/spaces/doc/pages/311363475/Abiquo-release-ee+packages+list
# For 6.2
yum localinstall https://user:passwd@mirror.abiquo.com/el7/6.2/os/x86_64/abiquo-release-ee-6.2.0-AAAAAAAAAAAAAAA.el7.noarch.rpm


# Prepare yum repository for your target version
yum-config-manager --enable abiquo-base
yum-config-manager --enable abiquo-updates

 
# Perform update
yum clean all && yum makecache

# 6.2.0: - If you have custom certificates added to your Java cacerts, you will have to check them makecache

# 6.2.0: - Check certificates for your environment and restore them after Java update.
# See Update certificates in your Abiquo environment 
keytool -v -list -cacerts | grep ${ENV_NAME}
#Enter keystore password:  
#Alias Name: abiquo-api-ui.lab.abiquo.com
#Alias Name: abiquo-remoteservices.lab.abiquo.com

yum update

# With the yum update you may noticeNote: MariaDB-server fails to update, you can ignore this step, we will get to this pointupdate it later

# 6.2.0: - Download and install the guestpasswordmigrator package
yum localinstall http://user:passwd@mirror.abiquo.com/el7/6.2/os/x86_64/abiquo-gpmigrator-6.2.0-20240202_110142.el7.noarch.rpm

# Run the tool to migrate the guest passwords of the current VMs to a new column that will be added in 6.2.0.
# The tool requires access to the kinton database and to the API Redis
cd /opt/abiquo/utilities/
java -jar gpmigrator.jar --jdbc-url="jdbc:mariadb://localhost:3306/kinton?user=root&password=root" --redis-host=localhost

# Save the guestpasswords.sql file and run it after you update the database with abiquo-db.


# 6.2.0: - On all database servers, upgrade MariaDB 
rpm --nodeps -ev MariaDB-server-10.4.10-1.el7.centos.x86_64
yum install MariaDB-server
service mariadb start
mysql_upgrade


# Upgrade the Abiquo databases
abiquo-db [-h DB hostname] [-P DB port] [-u user] [-p password] update


# IF the database upgrade fails because of checksums
abiquo-db [-h DB hostname] [-P DB port] [-u user] [-p password] clearCheckSums
abiquo-db [-h DB hostname] [-P DB port] [-u user] [-p password] update


# 6.2.0: - Run guestpasswords.sql file
mysql kinton < guestpasswords.sql


# Post-upgrade step for API
chown -R tomcat /opt/abiquo


# Run Redis database script
# These scripts can always be found on the Abiquo Server.
# On each Remote Services server (including Monolithic sever) or Datanode server you will have to run the Redis scripts too


cd /usr/share/doc/abiquo-redis/redis/
bash ./4.2.3/00-old-vsm-definitions.sh


# 6.2.0: - Edit the tomcat config file and update the database connector configuration 
# Edit /opt/abiquo/tomcat/conf/Catalina/localhost/api.xml
# If you have a Galera cluster, add the Galera configuration in the format:
    jdbc:mariadb:loadbalance://address=(host=dbmain)(port=3306)(type=master),
        address=(host=dbr1)(port=3306)(type=slave),
        address=(host=dbr2)(port=3306)(type=slave)/kinton
# 
# Restore your cacerts certificates
keytool -import -file ${CERTIFICATE_PATH} -cacerts -alias ${ENV_ALIAS}
# If your keytool command cannot be found now after Java update
# Use the following command to find the correct path to it
find / -name keytool
#/usr/java/jdk-21+35/bin/keytool

# On the API server add this path to your $PATH viariable with:
export PATH=$PATH:/usr/java/jdk-21+35/bin/

# Now run the keytool command once again and make sure your certificates are there
keytool -import -file ${CERTIFICATE_PATH} -cacerts -alias ${ENV_ALIAS}

Additional API and UI upgrade steps

...