Abiquo Documentation Cookies Policy

Our Documentation website uses cookies to improve your experience. Please visit our Cookie Policy page for more information about cookies and how we use them.


Abiquo 4.6

Skip to end of metadata
Go to start of metadata

This section describes how to upgrade from any Abiquo version to the current Abiquo version. Please contact Abiquo Support for further information.

 

  • In Abiquo 4.6 the "__EOF" label is mandatory at the end of each language file, otherwise the UI will not load correctly
  • Abiquo 4.5+ versions do not support CentOS 6
  • If you are using ESXi hypervisors, after the upgrade, log in to Abiquo and edit each hypervisor to enter the vCenter credential
  • The upgrade will overwrite lang_en_US.json. If you have customized labels or translations, back them up before the upgrade and restore them afterwards accordingly.

  • The upgrade to Abiquo 4.0.4 requires you to run a tool to encrypt VNC passwords

1. Prepare branding upgrade

See Changes to branding for instructions on how to upgrade branding for the following versions:

  • 4.0
  • 4.2
  • 4.4
  • 4.5
  • 4.6
  • 4.6.1

2. Before the upgrade

Before you begin, remember to:

  • Stop services
  • Check for queued jobs or conversions 
  • Perform a full backup

See Prepare to Upgrade Abiquo for further details.

3. Upgrade packages on ALL servers

  1. If you are upgrading to a newer major version, remove the previous version Abiquo release packages.

    yum remove 'abiquo-release-*'
  2. If you are upgrading to a newer major version, locate the corresponding abiquo-release-ee package and install it. For example, for Abiquo 4.6 use the command below:

    yum localinstall http://mirror.abiquo.com/el7/4.6/os/x86_64/abiquo-release-ee-4.6.0-4345.el7.noarch.rpm
  3. Update Abiquo packages:

    yum clean all && yum makecache && yum update 'abiquo-*'
  4. The Abiquo services must run as the tomcat user (not root), so set the required permissions and enforce the use of the package configuration files.
    If you have a MONOLITHIC SERVER do all of the following steps on the Monolithic server


    1. On Abiquo Server and Remote Services

      chown -R tomcat /opt/abiquo
    2. On the Remote Services with Appliance Manager and the V2V Server (i.e. servers that mount the NFS repository)

      chown -R tomcat /opt/vm_repository
      chmod -R a+r /opt/vm_repository
    3. On the V2V server, check the /etc/sysconfig/abiquo/ec2-api-tools file exists.
      The file must contain the following configuration. If the file does not exist, create it and add this configuration.

      For CentOS 7
      EC2_HOME=/opt/aws

      For older versions running on CentOS 6 servers, use the following configuration instead.

      For CentOS 6
      export EC2_HOME=/opt/aws

4. Update the Abiquo databases

  1. Ensure your hostname is in your DNS or in your /etc/hosts file
  2. To upgrade the Abiquo API databases, run the command below on the Server appliance:

    abiquo-db [-h DB hostname] [-P DB port] [-u user] [-p password] update

    If the liquibase update fails with a message similar to the following: 

    Liquibase update Failed: Validation Failed:
    1 change sets check sum
    src/X.X.X-XX/kinton-X.X.X.xml::ABICLOUDPREMIUM-XXXX-XxxxxxxxXXxXxxxxxxXxxxxx::XXXXXXXXX is now: 7:ee2fa6e058ec76c7abf801567898917d
    For more information, use the --logLevel flag

    Do the following steps

    1. Clear the database checksums

      abiquo-db clearCheckSums
    2. Retry the above abiquo-db update command.
  3. To upgrade the Abiquo Watchtower database, run the command below on the monitoring appliance:

    watchtower-db [-h DB hostname] [-P DB port] [-u user] [-p password] update

5. Upgrade additional elements

Start with your original version and perform the steps to the final version.


By default, you will find the upgrade scripts (e.g. for Redis definitions) on the Abiquo Server under the folder: /usr/share/doc/abiquo-redis/redis/

 Click here to show/hide upgrades from 3.x and to 3.x versions...
  • If you are upgrading to 3.x versions, the default base location is: /usr/share/doc/abiquo-server/redis and /usr/share/doc/abiquo-remote-services/redis/ change to this folder and the appropriate subfolder to run the scripts
  • The Abiquo 4.0 update will create and configure new tomcat and websockify users to run the corresponding services. You will need to manually change ownership of files on the relevant filesystems as part of the upgrade.


 Start here if you are upgrading from Abiquo 3.0

In 3.1 we introduced credentials encryption.

Install the new encryption libraries for Java 8

Upgrade from Abiquo 3.1.x to 3.2.x#UpdateJCEencryptionlibraries

Upgrade from Abiquo 3.1.x to 3.2.x#UpdateJCEencryptionlibrariesTo cypher your current credentials, please follow these instructions:

Upgrade from Abiquo 3.0.1 to 3.1#Encryptcurrentcredentials

Now continue with the sections for the following 3.x versions

 Start here if you are upgrading from Abiquo 3.1

If you starting your upgrade from 3.1, Abiquo 3.2 requires a new Java Cryptography Extension (JCE) libraries for Java 8 so you will need to install the new encryption libraries.

Upgrade from Abiquo 3.1.x to 3.2.x#UpdateJCEencryptionlibraries

Upgrade redis schema

Execute the Redis delta script on each Abiquo Server running Redis (Abiquo Server and Abiquo Remote Services nodes) to update the schema to the 3.2 version.

 python /usr/share/doc/abiquo-model/database/src/redis/3.2.0/redis-delta-3.0_to_3.2.py

Note that in some previous versions these scripts were found in different locations on the Abiquo Server and Abiquo Remote Services nodes respectively but in any case they are the same scripts.

python /usr/share/doc/abiquo-server/redis/3.2.0/redis-delta-3.0_to_3.2.py
python /usr/share/doc/abiquo-remote-services/redis/3.2.0/redis-delta-3.0_to_3.2.py

Now continue with the sections for the following 3.x versions

 Start here if you are upgrading from Abiquo 3.2

Execute this script on the Abiquo Management Server:

bash ./3.4.0/00-failed-templates.sh

And this other script on the Abiquo Remote Services:

bash ./3.4.0/01-old-vsm-definitions.sh

Now continue with the sections for the following 3.x versions

 Start here if you are upgrading from Abiquo 3.4

Execute this script on the Abiquo Management Server:

yum -y install python-redis
python ./3.6.0/02-null-creation-timestamp.py

And this other script on the Abiquo Remote Services:

yum -y install python-redis
bash ./3.6.0/00-old-vsm-definitions.sh
python ./3.6.0/01-vdc-provider-id.py

Now continue with the sections for the following 3.x versions

 Start here if you are upgrading from Abiquo 3.6

Execute these scripts on the Abiquo Remote Services:

python ./3.6.2/00-digitalocean-v2.py
bash ./3.6.4/00-old-vsm-definitions.sh

Upgrade monitoring server

Upgrade monitoring server

  1. On the monitoring server
    1. Install abiquo-release
      See #Upgrade packages on ALL servers
      • Note that there are no old abiquo-release packages on the monitoring server
    2. Install new modules

      yum install abiquo-delorean
      yum install abiquo-emmett
    3. Edit /etc/abiquo/watchtower/delorean.conf and /etc/abiquo/watchtower/emmett.conf configuration files and enter server details.
      The following excerpt shows key properties in the configuration of BOTH configuration files: details of MySQL, KairosDB and RabbitMQ servers.  

      // ADDRESS WHERE MYSQL IS RUNNING - BY DEFAULT THE ABIQUO SERVER
      database {
       	url : "jdbc:mysql://dbserver.example.com:3306/watchtower", 
          username : "root",
          password : ""
      },
       
      // DETAILS OF KAIROSDB HOST
      kairosdb {
          host : "kdbserver.example.com", 
          port : 8080
      },
      
      // ADDRESS OF RABBITMQ (BY DEFAULT ABIQUO-SERVER)
      amqp.rabbitmq {
          # The known broker host
          host : "rabbitmq.example.com",  
              
          # The known broker port
          port : 5672,
              
          # User name to use when connecting to the broker
          username : "abiquo",
              
          # Password to use when connecting to the broker
          password : "abiquo",
      // MODIFY OTHER VALUES AS REQUIRED FOR YOUR SYSTEM
  2. On the Abiquo database server, import watchtower DB schema, which can be found on the monitoring server. Database watchtower must be created before importing it:

    mysql -e "CREATE DATABASE watchtower"
    mysql watchtower < /usr/share/doc/abiquo-watchtower/database/watchtower_schema.sql

    (In Abiquo 3.8.x: /usr/share/doc/abiquo-watchtower/database/src/watchtower-1.0.0.sql)

  3. On the Abiquo API and Remote Services servers, edit /opt/abiquo/config/abiquo.properties to:
    1. Enable monitoring and set watchtower properties to point to watchtower server and port.

      abiquo.monitoring.enabled = true
      abiquo.watchtower.port = 36638
      abiquo.watchtower.host = IP address where watchtower modules (delorean + emmett) are installed
    2. Comment out or delete KairosDB properties:

      # KairosDB configuration
      #abiquo.kairosdb.host = 10.60.11.24
      #abiquo.kairosdb.port = 9999

Upgrade MariaDB

The required version of MariaDB has changed in Abiquo 3.8. Perform the upgrade manually with the following steps.

(minus) Before you begin, create a full database backup.

# rpm --nodeps -ev MariaDB-server
# yum install MariaDB-server
# service mysql start
# mysql_upgrade

Configure upgraded core packages

On the Abiquo Server, after the upgrade of the abiquo-core package to use Tomcat 8, the new server.xml file is saved on the filesystem as server.xml.rpmnew in the directory /opt/abiquo/tomcat/conf by default.

-rw-r--r--. 1 root root   2744 Jan 26 15:16 server.xml
-rw-r--r--. 1 root root   2384 Feb 16 10:34 server.xml.rpmnew

Overwrite the old server.xml file so that the tomcat will start

mv server.xml.rpmnew server.xml

Set updated RabbitMQ credentials

On the Abiquo Server, the new version of RabbitMQ does not allow default user guest to connect from hosts other than localhost. When upgrading, you need to either grant the guest user permissions to connect from every host or create a specific user in RabbitMQ (needs administrator privileges) for Abiquo. In the latter case, you need to adjust properties in every Abiquo host abiquo.properties file. See Abiquo Configuration Properties#rabbitmq

After the upgrade, manually start RabbitMQ service

service rabbitmq-server start

 

Check configuration of noVNC

In Abiquo 3.8+, noVNC is now the integrated package for remote access (replacing TightVNC). Add the client configuration properties described in the post-upgrade configuration.

Run Redis database script

On Remote services server:

# bash ./3.8.0/00-old-vsm-definitions.sh
 Additional step for upgrading from 3.8.0 or 3.8.1 with Watchtower

If you are upgrading from Abiquo 3.8.0 or Abiquo 3.8.1 and you have a monitoring server (Watchtower), do these steps:

  1. Contact Abiquo Support to obtain migration tool
  2. Check that Abiquo and Watchtower are stopped
  3. Note the properties described in the following table for use in the next step

    PropertyDescription
    kinton.url

    Kinton MySQL jdbcURL, something like jdbc:mysql://abiquo.example.com:3306/kinton

    kinton.userMySQL username for kinton DB
    kinton.passMySQL password for kinton DB
    wt.urlWatchtower MySQL jdbcURL, something like jdbc:mysql://abiquo.example.com:3306/kinton
    wt.userMySQL username for watchtower DB
    wt.passMySQL password for watchtower DB
  4. Run the Abiquo Watchtower migration jar

    java [properties] -jar index_wt_alarms-1.0.0.jar

    For example:

    java -Dkinton.url=jdbc:mysql://abiquo.example.com:3306/kinton -Dkinton.user=root -Dkinton.pass=rPassword -jar -Dwt.url=jdbc:mysql://abiquo.example.com:3306/watchtower -Dwt.user=root -Dwt.pass=rPassword -jar  index_wt_alarms-1.0.0.jar
 Start here if you are upgrading from version 3.8.3

Replace DBuser and DBpassword with the DB credentials for your environment.

If you are upgrading to Abiquo 4.x or higher, execute this command first:

sed -i s/bc.period/bc.subtype/ /usr/share/doc/abiquo-model/database/src/3.8.5/00-update-policy-def-from-metedata-ii.py

Run the following script to migrate backup metadata

python 3.8.4/00-update-policy-def-from-metedata.py DBuser DBpassword
python 3.8.5/00-update-policy-def-from-metedata-ii.py DBuser DBpassword
 Start here if you are upgrading from 3.10 versions

 Upgrade to Abiquo 4.0

  1. Run the Python delta to move backup results from metadata to the Abiquo database

    python /usr/share/doc/abiquo-model/database/src/4.0.0/00-move-backup-results-from-metadata.py
  2. If you are not using ROW format in your DB replication configuration, apply it with the following commands

    echo "binlog_format = ROW" >>/etc/my.cnf.d/replication.cnf
    service mysql restart
  3. Run Redis database script

    On Remote services server:

    # bash ./3.8.0/00-old-vsm-definitions.sh


 Only customers using Azure ARM: Upgrade Azure ARM to Abiquo 4.0.1

Only for customers using Azure ARM.

Run the upgrade process for the Azure ARM feature to upgrade to Abiquo 4.0.1.

Please contact Abiquo Support for more information.

 Upgrade to Abiquo 4.0.2 and later 4.0.x versions

Upgrade to Abiquo 4.0.2

On the Abiquo server change the RabbitMQ configuration

  1. Delete all queues

    rabbitmqctl stop_app
    rabbitmqctl reset
    rabbitmqctl start_app
  2. Recreate the RabbitMQ user that you previously registered in Abiquo properties, for example, for the user abiquo:abiquo

    rabbitmqctl add_user abiquo abiquo
    rabbitmqctl set_user_tags abiquo administrator
    rabbitmqctl set_permissions -p / abiquo ".*" ".*" ".*"

In the abiquo.properties, configure the following properties

abiquo.rabbitmq.addresses=myfirst.rabbitmq.host:rabbitport,another.rabbitmq.host:rabbitport2

And remove the following properties

abiquo.rabbitmq.host=my.rabbit.host
abiquo.rabbitmq.port=rabbitport

On the Watchtower server, modify the RabbitMQ configuration for both modules.

Edit the delorean.conf AND emmet.conf to add the RabbitMQ addresses as a comma separated list of "host:port" addresses.

Here is a 3-line extract from a configuration file showing the new addresses property.

amqp.rabbitmq {
    # The rabbitmq addresses
    addresses : ["rabbitmq.example.com:5672"],

Set a unique identifier for each instance of the "M" Outbound API module (including for each member of the same cluster of M nodes),

abiquo.m.instanceid=MInstanceID

 

Run Redis database script

On Remote services server:

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

Upgrade to 4.0.4

  • Avamar: Edit properties as following:
    • Add the property avamar.backupnow.dataset with a comma separated value that contains the names of available datasets to use when anon demand backup is requested.
    • Add the property avamar.sitebydpr.file with the path to a file that includes a mapping of which label belongs to each data protection resource existing in avamar.

Site name by data protection resources config file example:

# This files defines which site's name must be resolved depending on
# the Data Protecteion Resource where the backup results is stored.
# The configuration format must be like:
sites {
    Site A: [avamardpr1.example.com,avamardpr2.example.com],
    Site B: [avamardpr3.example.com,avamardpr4.exmaple.com]
}

Encrypt VNC Passwords

You will find the vnc-encryptor tool on the server where you have the abiquo-model package installed, usually the database server or where you run your abiquo-db tool from:

java [Options] -jar /usr/share/doc/abiquo-model/scripts/vnc_encryptor/vnc-encryptor-1.0.0.jar

Options
* db.user:      login credentials to database. Default root.
* db.pass:      password to database. Default emtpy.
* db.schema:    database schema. Default kinton.
* db.host:      host address of the database. Default localhost.
* db.port:      port where the database is listening. Default 3306.
* passwd.path   path to the seed. If not provided a default seed will be used. Default empty.

If abiquo.security.encrypt property is enabled, point the passwd.path argument to the /etc/abiquo/.store contents. Otherwise, do not specify this argument on the command execution.

Example:
java -Ddb.pass=secret -Dpasswd.path=/path/to/.secret -jar /usr/share/doc/abiquo-model/scripts/vnc_encryptor/vnc_encryptor/vnc-encryptor-1.0.0.jar

Run Redis database script

On Remote services server:

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

Upgrade Abiquo reporting module.

Reporting schema has changed on 4.0. so you will need to update your installation to the new one.

  1. Download new schema file from http://mirror.abiquo.com/support/4.0/4.0-reporting/kinton_reporting.sql
  2. Download 4.0.2 delta file from http://mirror.abiquo.com/support/4.0/4.0-reporting/4.0.2-reporting-upgrade.sql
  3. Import to your current reporting database, there is no need to drop your old kinton_reporting database, e.g.

    # mysql -h[DATABASE_HOST] -u[DATABASE_USER] -p kinton_reporting < kinton_reporting.sql
    Enter password:
    Creating reporting schema...
    Creating RLS tables...
    Creating RLS procedures...
    Creating 'Core' RLS Views...
    Creating VM-based RLS Views...
    Creating Network-based RLS Views...
    Creating Storage-based RLS Views...
    Creating Repository-based RLS Views...
    Creating Pricing-based RLS Views...
    RLS reporting schema installed successfully!
     
    # mysql -h[DATABASE_HOST] -u[DATABASE_USER] -p kinton_reporting < 4.0.2-reporting-upgrade.sql
    #
 Upgrade to Abiquo 4.2

Upgrade JDK

Oracle JDK has been upgraded for Abiquo 4.2. You will need to update the jdk manually:

yum upgrade jdk

And reinstall the JCE libraries after. Check Upgrade from Abiquo 3.1.x to 3.2.x#UpdateJCEencryptionlibraries

Upgrade MariaDB

The MariaDB version for Abiquo 4.2 has been upgraded from 10.0 to 10.1. Perform the DB upgrade manually in the Abiquo Server and Monitoring appliances as described below:

rpm --nodeps -ev MariaDB-server
yum install MariaDB-server
systemctl start mariadb
mysql_upgrade

Remote access changes

NoVNC has been replaced by Apache Guacamole. Perform the steps below:

  • Remove the Abiquo websockify package from the Remote Services appliances:

    yum remove abiquo-websockify
  • Remove the haproxy package from the Abiquo Server appliance:

    yum remove haproxy
  • Remove the properties below from /var/www/html/ui/config/client-config-custom.json:

    client.remoteaccess.novnc.host
    client.remoteaccess.novnc.port

Once the upgrade is finished and Abiquo is running again, go to Infrastructure in the UI and create the new guacd remote services for each DC.

Monitoring changes

The way rabbitMQ is configured for monitoring has changed in Abiquo 4.2, and you will need to update abiquo-emmett and abiquo-delorean configurations accordingly:

  • Remove the amqp.rabbitmq sections from /etc/abiquo/watchtower/emmett.conf and /etc/abiquo/watchtower/delorean.conf:

    amqp.rabbitmq {
        ...
    }
  • Edit the /etc/abiquo/watchtower/emmett.properties and /etc/abiquo/watchtower/delorean.properties accordingly to the blocks you already removed:

    abiquo.rabbitmq.username = RABBITMQ_USER
    abiquo.rabbitmq.password = RABBITMQ_PASS
    abiquo.rabbitmq.addresses = RABBITMQ_HOST:RABBITMQ_PORT
    abiquo.rabbitmq.virtualHost = /

Cassandra has been updated to 3.0. As this package is different from Cassandra 2.x, you will need to uninstall the old one manually and install the new one by hand. Review the cassandra.yaml file is the one you expect to be. Cassandra 3.0 requires the hints directory to be specify manually on the configuration. Edit cassandra.yaml and add the directive below to it:

hints_directory: "/var/lib/cassandra/hints"


 Upgrade from 4.2.x to 4.4

Run additional database scripts

When upgrading from 4.2.x to 4.4, run the following tool that will generate two scripts.

Run the scripts after the database upgrade on the Abiquo kinton database server and the Watchtower database server.

The instructions for running the tool are at the following location:

/usr/share/doc/abiquo-model/scripts/watchtower_migration_tool/README.md

The tool is located at the following location:

/usr/share/doc/abiquo-model/scripts/watchtower_migration_tool/wttool.jar

Add additional Watchtower AMQP configuration

On the Watchtower server, edit delorean.conf and emmett.conf files in the /etc/abiquo/watchtower folder.

Add the following keys to the amqp section.

eventNotificationExchange : "watchtower.events",
eventNotificationRoutingKey : "watchtower.events.event"

If you do not already have an AMQP section, it should look as follows.

    amqp {
        alarmEvaluationExchange : "watchtower.alarms.evaluation",
        alarmEvaluationRoutingKey : "watchtower.alarm.evaluation",
        alarmEvaluationQueue : "watchtower.alarm.evaluation",
        alarmNotificationExchange : "watchtower.alarms.notification",
        alarmNotificationRoutingKey : "watchtower.alarm.notificacion",
        eventNotificationExchange : "watchtower.events",
        eventNotificationRoutingKey : "watchtower.events.event",
    }

Run Redis database script

On Remote Services server:

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


 Upgrade from 4.4.x to 4.5x

Run additional database scripts

This is a new version of the same tool that was run in the 4.2.x to 4.4 upgrade. If you are upgrading from 4.2.x or earlier, you do not need to run this tool twice.

When upgrading from 4.4.x to 4.5, run the following tool that will generate two scripts.

Run the scripts after the database upgrade on the Abiquo kinton database server and the Watchtower database server.

The instructions for running the tool are at the following location:

/usr/share/doc/abiquo-model/scripts/watchtower_migration_tool/README.md

The tool is located at the following location:

/usr/share/doc/abiquo-model/scripts/watchtower_migration_tool/wttool.jar

Run tool to update VM naming on vCloud

Please contact Abiquo support.

Run Redis database script

On Remote Services server:

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


 Upgrade from 4.5.x to 4.6.x

Run Redis database script

On Remote Services server:

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


6. Configure Abiquo after the upgrade

  1. Before you start the Abiquo tomcat server, add Abiquo Configuration Properties to the abiquo.properties file. By default abiquo.properties is found in the /opt/abiquo/config/ folder. See Changes to Abiquo Configuration Properties

  2. Configure the user interface. The default UI location in Abiquo 4.x 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:

    {
        "config.endpoint": "http://myAPIserver/api"
    }
  3. Theme CSS files have changed their name, please rename your secure_theme.css files to theme.css
    (Warning: there are more changes to branding, please see the note at the top of the Abiquo Branding Guide page)
  4. Abiquo 4.0.4: Custom email template for guest password emails: optionally modify the template to include the new fully qualified domain name variable (fqdn)

7. Start Abiquo server and services

  1. Bring up the server and restart the HTTP daemon to refresh the user interface files.

    service abiquo-tomcat start
    service httpd restart
  2. Start the tomcat server on remote services
  3. Start delorean and emmett services

8. Post upgrade step for ESXi and vCenter for Abiquo 4.0.1

After you complete an upgrade that includes version 4.0.1, log in to Abiquo and edit each ESXi server. Enter the details of the vCenter, such as the Manager user and Manager password.