Versions Compared

Key

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

...

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-$(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)


# Stop  services
systemctl stop httpd
systemctl stop abiquo-tomcat
# (API or Datanode)
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-AAAAAAAAAAAAAAA20240205_155724.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
# Note: MariaDB-server requires failsa tomanual update, and 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 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 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
#? or galera_new_cluster

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
# ForThe alatest singleversion DBof server,the remove jdbc:mysql://dbhost and replace with jdbc:mariadb:${DBHOST}
# For a DB cluster, change the connector (to replace jdbc:mysql://dbhost...) with the Galera cluster
    jdbc:mariadb:loadbalance://address=(host=dbmain)(port=3306)(type=master),file should contain new options
# Update the file and/or variables marked with ${} for your environment
<Context>
    <Resource 
        name="jdbc/abiquoDB" 
        address=(host=dbr1)(port=3306)(type=slave),auth="Container" 
        address=(host=dbr2)(port=3306)(type=slave)/kintontype="javax.sql.DataSource" 
   # On the API server add this path to your $PATH viariable with:
export PATH=$PATH:/usr/java/jdk-21+35/bin/


# Restore your cacerts certificates
keytool -import -file ${CERTIFICATE_PATH} -cacerts -alias ${ENV_ALIAS}

Additional API and UI upgrade steps

...

Add translations for new UI labels to lang_xx_XX_custom.json. See Abiquo UI client language configuration

...

Optionally add new configuration to client-config-custom.json. See Configure Abiquo UI

In your UI configuration, check that the API endpoint is pointing to your Abiquo API server:

Code Block
{
    "config.endpoint": "http://<API_IP_ADDRESS>/api"
}

...

Add new API properties to the abiquo.properties file found in the /opt/abiquo/config/ folder. See Changes to Abiquo Configuration properties

3. Remote services servers

On each remote services server do these 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

  
# 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 shared folder for the NARS results (related to 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)


#Unmount 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-*'
# 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 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
    "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 your cacerts certificates
keytool -v -list -cacerts | grep

# 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 API and UI upgrade steps

  1. Add translations for new UI labels to lang_xx_XX_custom.json. See Abiquo UI client language configuration

  2. Optionally add new configuration to client-config-custom.json. See Configure Abiquo UI

  3. In your UI configuration, check that the API endpoint is pointing to your Abiquo API server:

    Code Block
    {
        "config.endpoint": "http://<API_IP_ADDRESS>/api"
    }

  4. Add new API properties to the abiquo.properties file found in the /opt/abiquo/config/ folder. See Changes to Abiquo Configuration properties


3. Remote services servers

On each remote services server do these 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

  
# 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 shared folder for the NARS results (related to 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)


# Unmount 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-*'
# 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-20240205_155724.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

# 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.sh


# 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

# 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-AAAAAAAAAAAA20240205_155724.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 all 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


# 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 that "jdbc:mysql" hasmust beenbe replaced with "jdbc:mariadb"
# Add Galera configuration, as for Abiquo server, if your monitoringother DBdatabase isservers, inincluding a clusterclusters


...


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

...