Skip to content

Latest commit

 

History

History
412 lines (243 loc) · 10.7 KB

File metadata and controls

412 lines (243 loc) · 10.7 KB

Upgrade Instruction from 4.8.x

This section will guide you from CloudStack 4.8.x to CloudStack .

Any steps that are hypervisor-specific will be called out with a note.

We recommend reading through this section once or twice before beginning your upgrade procedure, and working through it on a test system before working on a production system.

Note

The following upgrade instructions should be performed regardless of hypervisor type.

Upgrade Steps:

  1. Backup CloudStack database (MySQL)
  2. Add package repository for MySQL connector
  3. Upgrade CloudStack management server(s)
  4. Update hypervisors specific dependencies

Packages repository

Most users of CloudStack manage the installation and upgrades of CloudStack with one of Linux's predominant package systems, RPM or APT. This guide assumes you'll be using RPM and Yum (for Red Hat Enterprise Linux or CentOS), or APT and Debian packages (for Ubuntu).

Create RPM or Debian packages (as appropriate) and a repository from the source, or check the Apache CloudStack downloads page at http://cloudstack.apache.org/downloads.html for package repositories supplied by community members. You will need them for ubuntu48 or rhel48 and kvm48 hosts upgrade.

Instructions for creating packages from the CloudStack source are in the CloudStack Installation Guide.

Database Preparation

Backup current database

  1. Stop your management server or servers. Run this on all management server hosts:

    $ sudo service cloudstack-management stop

  2. If you are running a usage server or usage servers, stop those as well:

    $ sudo service cloudstack-usage stop

  3. Make a backup of your MySQL database. If you run into any issues or need to roll back the upgrade, this will assist in debugging or restoring your existing environment. You'll be prompted for your password.

    $ mysqldump -u root -p cloud > cloud-backupdate '+%Y-%m-%d'.sql $ mysqldump -u root -p cloud_usage > cloud_usage-backupdate '+%Y-%m-%d'.sql

Management Server on Ubuntu

If you are using Ubuntu, follow this procedure to upgrade your packages. If not, skip to step rhel48.

Note

Community Packages: This section assumes you're using the community supplied packages for CloudStack. If you've created your own packages and APT repository, substitute your own URL for the ones used in these examples.

The first order of business will be to change the sources list for each system with CloudStack packages. This means all management servers, and any hosts that have the KVM agent. (No changes should be necessary for hosts that are running VMware or Xen.)

CloudStack apt repository

Start by opening /etc/apt/sources.list.d/cloudstack.list on any systems that have CloudStack packages installed.

This file should have one line, which contains:

We'll change it to point to the new package repository:

Setup the public key for the above repository:

wget -qO - http://download.cloudstack.org/release.asc | sudo apt-key add -

If you're using your own package repository, change this line to read as appropriate for your repository.

  1. Now update your apt package list:

    $ sudo apt-get update

  2. Now that you have the repository configured, it's time to upgrade the cloudstack-management package.

    $ sudo apt-get upgrade cloudstack-management

  3. If you use CloudStack usage server

    $ sudo apt-get upgrade cloudstack-usage

Management Server on CentOS/RHEL

If you are using CentOS or RHEL, follow this procedure to upgrade your packages. If not, skip to hypervisors section upg_hyp_48.

Note

Community Packages: This section assumes you're using the community supplied packages for CloudStack. If you've created your own packages and yum repository, substitute your own URL for the ones used in these examples.

CloudStack RPM repository

The first order of business will be to change the yum repository for each system with CloudStack packages. This means all management servers, and any hosts that have the KVM agent.

(No changes should be necessary for hosts that are running VMware or Xen.)

Start by opening /etc/yum.repos.d/cloudstack.repo on any systems that have CloudStack packages installed.

This file should have content similar to the following:

[apache-cloudstack] name=Apache CloudStack baseurl=http://download.cloudstack.org/centos/6/4.8/ enabled=1 gpgcheck=0

If you are using the community provided package repository, change the base url to:

Setup the GPG public key if you wish to enable gpgcheck=1:

If you're using your own package repository, change this line to read as appropriate for your repository.

  1. Now that you have the repository configured, it's time to upgrade the cloudstack-management.

    $ sudo yum upgrade cloudstack-management

  2. If you use CloudStack usage server

    $ sudo yum upgrade cloudstack-usage

Hypervisor: XenServer

(XenServer only) Copy vhd-utils file on CloudStack management servers. Copy the file vhd-utils to /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver.

wget -P /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver http://download.cloudstack.org/tools/vhd-util

Hypervisor: VMware

Warning

For VMware hypervisor CloudStack management server packages must be build using "noredist". Refer to building-noredist

(VMware only) Additional steps are required for each VMware cluster. These steps will not affect running guests in the cloud. These steps are required only for clouds using VMware clusters:

  1. Stop the Management Server:

    $ sudo service cloudstack-management stop

  2. Generate the encrypted equivalent of your vCenter password:

    $ java -classpath /usr/share/cloudstack-common/lib/jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI encrypt.sh input="_your_vCenter_password" password="cat /etc/cloudstack/management/key" verbose=false

Store the output from this step, we need to add this in cluster_details table and vmware_data_center tables in place of the plain text password

  1. Find the ID of the row of cluster_details table that you have to update:

    $ mysql -u <username> -p<password>

    select * from cloud.cluster_details;

  2. Update the plain text password with the encrypted one

    update cloud.cluster_details set value = '_ciphertext_from_step_1' where id = _id_from_step_2;

  3. Confirm that the table is updated:

    select * from cloud.cluster_details;

  4. Find the ID of the correct row of vmware_data_center that you

    want to update

    select * from cloud.vmware_data_center;

  5. update the plain text password with the encrypted one:

    update cloud.vmware_data_center set password = '_ciphertext_from_step_1' where id = _id_from_step_5;

  6. Confirm that the table is updated:

    select * from cloud.vmware_data_center;

Hypervisor: KVM

KVM on Ubuntu

(KVM only) Additional steps are required for each KVM host. These steps will not affect running guests in the cloud. These steps are required only for clouds using KVM as hosts and only on the KVM hosts.

  1. Configure the APT repo <apt-repo48> as detailed above.
  2. Stop the running agent.

    $ sudo service cloudstack-agent stop

  3. Update the agent software.

    $ sudo apt-get upgrade cloudstack-agent

  4. Verify that the file /etc/cloudstack/agent/environment.properties has a

    line that reads:

    paths.script=/usr/share/cloudstack-common

    If not, add the line.

  5. Start the agent.

    $ sudo service cloudstack-agent start

KVM on CentOS/RHEL

For KVM hosts, upgrade the cloudstack-agent package

  1. Configure the rpm-repo48 as detailed above.

    $ sudo yum upgrade cloudstack-agent

  2. Verify that the file /etc/cloudstack/agent/environment.properties has a line that reads:

    paths.script=/usr/share/cloudstack-common

    If not, add the line.

  3. Restart the agent:

    $ sudo service cloudstack-agent stop $ sudo service cloudstack-agent start

Restart management services

  1. Now it's time to start the management server

    $ sudo service cloudstack-management start

  2. If you use it, start the usage server

    $ sudo service cloudstack-usage start