Versions Compared

Key

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


Table of Contents


Info

These instructions are still being updated for the Abiquo 6.2 upgrade

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

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

For 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

  1. In the UI in the Infrastructure view, select each physical machine and click Disable

  2. Using the API, set the state of each physical machine to DISABLED

...

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


# Stop Back upservices
thesystemctl UIstop tarhttpd
cvfz /systemctl stop abiquo-tomcat
# (API or Datanode)
systemctl stop rabbitmq-server


# Back up the 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)


# 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)


# StopInstall latest servicesyum systemctlrelease stoppackage httpdfor systemctlyour stoptarget abiquo-tomcat
systemctl stop rabbitmq-server
 

# Install latest yum release package for your target version 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-AAAAAAAAAAAAAAAAAAAAAAA_BBBBBB.el7.noarch.rpm


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


 # Perform update
yum clean all && yum makecache

yum update
# 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
# Note: MariaDB-server fails to update, we will update 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.Note: MariaDB-server requires a manual update after running the gpmigrator in the next steps


# 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-20240205_155724.el7.noarch.rpm

# Run the tool to prepare 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 to run after you update the Abiquo database

# 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
# OR for datanode: galera_new_cluster

mysql_upgrade

# Update 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


# 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 withEdit the tomcat configuration file and update the database connector configuration 
# Edit /opt/abiquo/tomcat/conf/Catalina/localhost/api.xml
# The latest version of the file should contain new options
# Update the file and/or variables marked with ${} for your environment
<Context>
    <Resource 
        name="jdbc/abiquoDB" 
        auth="Container" 
        type="javax.sql.DataSource" 
        factory="com.zaxxer.hikari.HikariJNDIFactory"
        dataSourceClassName="org.mariadb.jdbc.MariaDbDataSource"
        connectionTimeout="120000"
        maximumPoolSize="100"
        username="${server.database.username}"
        password="${server.database.password}"
        dataSource.url="jdbc:mariadb://${server.database.host}:${server.database.port}/kinton"
        />
</Context>
# For a DB cluster, change the datasource.url to point to your Galera cluster
# This will not affect the multi-master configuration of the cluster
    dataSource.url="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"
        

# Add the Java keytool path to your $PATH variable:
export PATH=$PATH:/usr/java/jdk-21+35/bin/

# Check Nowyour runcacerts thecertificates
keytool command once again and make sure -v -list -cacerts | grep ${ENV_NAME}

# If necessary, restore your certificates arefollowing therethe keytoolinstructions
-import# -file ${CERTIFICATE_PATH} -cacerts -alias ${ENV_ALIAS}See https://abiquo.atlassian.net/wiki/spaces/doc/pages/609648729/Update+certificates+in+your+Abiquo+environment

Additional API and UI upgrade steps

...

Code Block
# Log in as root
sudo su -
 
 
# On V2V servers, check for active conversions
# ps aux | grep v2v
# ps aux | grep mechadora
 

# Back up the /opt/abiquo folder
tar cvfz /opt/abiquo.tgz-$(date +%Y%m%d_%H%M%S) /opt/abiquo
# If you are using remote services with #TLS, Backback up the connector
cp /opt/abiquo folder
tar cvfz/tomcat/conf/server.xml /opt/abiquo/server.tgzxml--$(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)


# Stop services
systemctl stop abiquo-tomcat


# Check if there is an NFS If you have multiple NARS remote services in your datacenter, check for a results-nars or similar shared folder for
the# NARSas resultsdefined (relatedby tothe system property abiquo.nars.async.fileresults.path):
mount | grep -i "nfs\|results" | grep -v sunrpc
10.60.37.87:/abq-pro-nfs on /opt/abiquo/results-nars type nfs4 (rw,nosuid,nodev,noexec,relatime,sync,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.60.37.77,local_lock=none,addr=10.60.37.87,user)
# 
#UnmountUnmount the previous shared folder if you have it mounted
umount /opt/abiquo/results-nars


# Install latest yum release package for your target version using link
yum remove 'abiquo-release-*' link
yum remove 'abiquo-release-*'

# Remove docker
rpm -e --nodeps docker
rpm -e --nodeps docker-client
rpm -e --nodeps docker-common

# Find the correct link at https://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-AAAAAAAAAAA.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 may have to check them 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

# Remount the shared folder for NARS (and any other folders you have unmounted)
mount -a


# Post upgrade steps for RS
chown -R tomcat /opt/abiquo
chown -R tomcat /opt/vm_repository
chmod -R a+r /opt/vm_repository


# Refresh VM definitions
cd /usr/share/doc/abiquo-redis/redis/
bash ./4.2.3/00-old-vsm-definitions.sh
-AAAAAAAA_BBBBBB.el7.noarch.rpm

# Prepare yum repository for your target version with yum-utils
# yum install yum-utils if you do not have it yet
yum-config-manager --enable abiquo-base
yum-config-manager --enable abiquo-updates
  

# Perform update
yum clean all && yum makecache

yum update

# If you have a NARS shared folder, remount it (note this will also mount any other folders you have unmounted)
mount -a


# Post upgrade steps for RS
chown -R tomcat /opt/abiquo
chown -R tomcat /opt/vm_repository
chmod -R a+r /opt/vm_repository


# If your remote services use TLS, restore the connection data server.xml 
# See https://abiquo.atlassian.net/wiki/spaces/doc/pages/311377433/Configure+Abiquo+Tomcat+with+HTTPS+for+Remote+RS


# Add the Java keytool path to your $PATH variable:
export PATH=$PATH:/usr/java/jdk-21+35/bin/

# Check certificates in your Java key store
keytool -v -list -keystore /opt/abiquo/tomcat/conf/${KEYSTORE_NAME}.jks.jks

# If necessary, restore your certificates following the instructions
# See https://abiquo.atlassian.net/wiki/spaces/doc/pages/609648729/Update+certificates+in+your+Abiquo+environment

Additional RS upgrade steps

...

Code Block
# Log in as root and stop services
sudo su -
systemctl stop abiquo-emmett
systemctl stop abiquo-delorean
systemctl stop kairosdb
systemctl stop cassandra
 

# Really kill Cassandra by getting its process number (e.g. XXXXX) and killing it
ps auwx | grep cassandra
kill -9 XXXXX


# Install latest yum release package for your target version using link
yum remove 'abiquo-release-*'
# Find the correct link at https://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-AAAAAAAAAAAAAAAAAAAA_BBBBBB.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
yum update


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

-server-10.4.10-1.el7.centos.x86_64
yum install MariaDB-server
service mariadb start
mysql_upgrade

# Clear the checksums of watchtower database
watchtower-db [-h DB hostname] [-P DB port] [-u user] [-p password] clearCheckSums
# Update watchtower database
watchtower-db [-h DB hostname] [-P DB port] [-u user] [-p password] update


# 6.2.0: - Edit the emmett.conf and delorean.conf files at:
/etc/abiquo/watchtower/delorean.conf
/etc/abiquo/watchtower/emmett.conf
# Check thatReplace "jdbc:mysql" has been replaced with "jdbc:mariadb"
# And Addthe GaleraIP configuration,address as for Abiquo server, if your monitoring DBdatabase isserver inor a cluster


...


5. Start Abiquo server and services

Start all servers in the correct order.

Code Block
# On API or datanode 
systemctl start rabbitmq-server


# On API Server
service httpd restart
service abiquo-tomcat start
 

# On Remote Services including V2V
service abiquo-tomcat start
 

# On the Monitoring Server, start the Cassandra service
sudo service cassandra start
 

# WAIT about 5 minutes until Cassandra is up and running
# Start the KairosDB service
sudo service kairosdb start
 

# Start the other services in this order
sudo service abiquo-emmett start
sudo service abiquo-delorean start


6. In Abiquo UI

  1. Re-enable the physical machines

  2. In Abiquo 6.2.0, to activate Cost usage reports, regenerate billing

...

In Abiquo 6.2.0 the Reporting feature has been removed. If you are using on-premise billing, you can retire the Reporting server.

8. Guacamole server

For the update from Abiquo <6.1.2, we recommend that you Upgrade Guacamole server.