Upgrade Guide for Control Panel Server (from 6.3)
Before upgrade, please make sure that:
- All vCenter network and datastore zones in OnApp have a correctly set datacenter
- The labels of compute resources in OnApp UI do not match the cluster names in your vCenter environment
- All cluster names in all datacenters are unique in your vCenter environment
- You can update to OnApp 6.4 from OnApp 6.3 or 6.4 Edge 1.
- To test the upgrade, you may first simulate the upgrade process on the test environment. For the instructions, refer to the Configuring Control Panel Environment for Simulation Purposes page.
This guide provides an instruction on how to upgrade your Control Panel server from OnApp Cloud 6.3 to 6.4. Please follow the complete procedure of the upgrade process.
All packages must belong to the same major version to ensure the best performance of your cloud. If you do not complete an upgrade procedure, you may face issues with standard functions such as VS creation, VS migration, etc.
Upgrade Control Panel Server
- Installer output is redirected to ./onapp-cp-install.log
- All installer critical errors are in located at /var/log/messages
To upgrade your Control Panel server:
Download the OnApp YUM repository file
# rpm -Uvh http://rpm.repo.onapp.com/repo/onapp-repo-6.4.noarch.rpm
Upgrade OnApp Control Panel installer package
# yum update onapp-cp-install
Update your server OS components (if required)
# /onapp/onapp-cp-install/onapp-cp-install.sh -y
(Optional) If you need some custom Control Panel configuration, set the values before the installer script runs
The list of custom configuration options for Control Panel.# vi /onapp/onapp-cp.conf
Template server URL
TEMPLATE_SERVER_URL='http://templates-manager.onapp.com';
# IPs (separated with coma) list for the SNMP to trap. This is the list of Control Panel IP addresses on which the traps sent from the compute resources are processed.
SNMP_TRAP_IPS=""
# OnApp Control Panel custom version
ONAPP_VERSION=""
# OnApp MySQL/MariaDB connection data (database.yml)
ONAPP_CONN_WAIT_TIMEOUT=15 ONAPP_CONN_POOL=30 ONAPP_CONN_RECONNECT='true' ONAPP_CONN_ENCODING='utf8'
# MySQL/MariaDB server configuration data (in case of local server)
MYSQL_WAIT_TIMEOUT=604800 MYSQL_MAX_CONNECTIONS=500 MYSQL_LIMITNOFILE=8192
# Use MariaDB instead of MySQL as OnApp database server (Deprecated parameter. If you set any values for this parameter, they will not take effect)
WITH_MARIADB=0
#Configure the database server relative amount of available RAM
TUNE_DB_SERVER=1
# The number of C data structures that can be allocated before triggering the garbage collector. It defaults to 8 million. Only change this value if you understand what it does.
RUBY_GC_MALLOC_LIMIT=16000000
# sysctl.conf net.core.somaxconn value
NET_CORE_SOMAXCONN=2048
# The root of OnApp database dump directory (on the Control Panel box)
ONAPP_DB_DUMP_ROOT=""
# Remote server's (to store database dumps) IP, user, path, openssh connection options and number of dumps to keep
DB_DUMP_SERVER="" DB_DUMP_USER="root" DB_DUMP_SERVER_ROOT="/onapp/backups" DB_DUMP_SERVER_SSH_OPT="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o PasswordAuthentication=no" KEEP_DUMPS=168 DB_DUMP_CRON='40 * * * *'
# Enable monit - tool for managing and monitoring Unix systems
ENABLE_MONIT=1
# If enabled (the 1 value is set) - install (if local box) and configures RabbitMQ Server (messaging system) for the vCloud support. (Deprecated parameter. If you set any values for this parameter, they will not take effect)
ENABLE_RABBITMQ=1
# Rotate transactions' log files created more than TRANS_LOGS_ROTATE_TIME day(s) ago
TRANS_LOGS_ROTATE_TIME=30
# Maximum allowed for uploading file size in bytes, from 0 (meaning unlimited) to 2147483647 (2GB). Default is 0.
MAX_UPLOAD_SIZE=0
# Timeout before ping Redis Server to check if it is started. Default is 10 sec.
REDIS_PING_TIMEOUT=10
# OnApp Control Panel SSL certificates (please do not change if you aren't familiar with SSL certificates)
# * The data below to generate self-signed PEM-encoded X.509 certificate
SSL_CERT_COUNTRY_NAME=UK SSL_CERT_ORGANIZATION_NAME='OnApp Limited' SSL_CERT_ORGANIZATION_ALUNITNAME='OnApp Cloud' SSL_CERT_COMMON_NAME=`hostname --fqdn 2>/dev/null`
# SSLCertificateFile, SSLCertificateKeyFile Apache directives' values
# ssl_certificate, ssl_certificate_key Nginx directives' values
SSLCERTIFICATEFILE=/etc/pki/tls/certs/ca.crt SSLCERTIFICATECSRFILE=/etc/pki/tls/private/ca.csr SSLCERTIFICATEKEYFILE=/etc/pki/tls/private/ca.key
# * PEM-encoded CA Certificate (if custom one exists)
# SSLCACertificateFile, SSLCertificateChainFile Apache directives' values
# ssl_client_certificate Nginx directives' valuesSSLCACERTIFICATEFILE="" SSLCERTIFICATECHAINFILE=""
# SSLCipherSuite, SSLProtocol Apache directives' values
# ssl_ciphers, ssl_protocols Nginx directives' values
SSLCIPHERSUITE="" SSLPROTOCOL=""
Run the Control Panel installer
# /onapp/onapp-cp-install/onapp-cp-install.sh
Please, answer ‘yes’ when the installer prompts to initiate images, templates, and ISOs download.
The full list of installer options for Control Panel.Usage:
# /onapp/onapp-cp-install/onapp-cp-install.sh -h Usage: /onapp/onapp-cp-install/onapp-cp-install.sh [-c CONFIG_FILE] [--mariadb | --mariadb-custom | --community | --percona | --percona-cluster] [-m MYSQL_HOST] [--mysql-port=MYSQL_PORT] [--mysql-sock[=MYSQL_SOCK] [-p MYSQL_PASSWD] [-d MYSQL_DB] [-u MYSQL_USER] [-U ADMIN_LOGIN] [-P ADMIN_PASSWD] [-F ADMIN_FIRSTNAME] [-L ADMIN_LASTNAME] [-E ADMIN_EMAIL] [-v ONAPP_VERSION] [-i SNMP_TRAP_IPS] [--redis-host=REDIS_HOST] [--redis-bind[=REDIS_BIND] [--redis-passwd[=REDIS_PASSWD] [--redis-port=REDIS_PORT] [--redis-sock[=REDIS_SOCK] [--rbthost RBT_HOST] [--vcdlogin VCD_LOGIN] [--vcdpasswd VCD_PASSWD] [--vcdvhost VCD_VHOST] [--rbtlogin RBT_LOGIN] [--rbtpasswd RBT_PASSWD] [-a] [-y] [-D] [-t] [--noservices] [--ha-install] [--rake=RAKE_TASKS] [--quick|--quick-update[=SERVICE] [--accept-eula] [-w] [-h] Database server options: Default database SQL server is MySQL Server. Please use one of the following option to install LOCALLY: --mariadb : MariaDB Server --mariadb-custom : MariaDB Server (custom for CentOS 7.x only) --community : MySQL Community Server --percona : Percona Server --percona-cluster : Percona Cluster -m MYSQL_HOST : MySQL host. Default is 'localhost' --mysql-port=MYSQL_PORT : TCP port where MySQL Server serves connections. Default values is 3306 for the local installation --mysql-sock[=MYSQL_SOCK] : Unix socket on which MySQL Server serves connections. Default values is /var/lib/mysql/mysql.sock. Used if local server only The socket is unset if the option's argument isn't specified. -p MYSQL_PASSWD : MySQL password. Random is generated if is not set or specified. -d MYSQL_DB : OnApp MySQL database name. Default is 'onapp' -u MYSQL_USER : MySQL user. Default is 'root' Redis Server options: --redis-host=REDIS_HOST : IP address/FQDN where Redis Server runs. It is used by Control Panel to connect to Redis Server. The Redis Server will be installed and configured on the current box if localhost/127.0.0.1 or box's public IP address (listed in SNMP_TRAP_IPS) is specified. Default value is 127.0.0.1. If local Redis, it will serve as well on the unix socket 'PORT' (if --redis-sock without argument isn't specified) --redis-bind[=REDIS_BIND] : The IP address for Redis Server to serve connections (to listen) The option isn't mandatory. --redis-port=REDIS_PORT : Redis Server listen port. Defaults are: 0 - if local server 6379 - if remote server --redis-passwd[=REDIS_PASSWD] : Redis Server password to authentificate. Random password is generated if the option's argument isn't specified. By default no password is used for local Redis. --redis-sock[=REDIS_SOCK] : Path to the Redis Server's socket. Used if local server only. Default is /var/run/redis/redis.sock The socket is unset if the option's argument isn't specified. Options to manage OnApp Control Panel administrator account: Please note, that these options are for NEW INSTALL only and not for upgrade -P ADMIN_PASSWD : CP administrator password -F ADMIN_FIRSTNAME : CP administrator first name -L ADMIN_LASTNAME : CP administrator last name -E ADMIN_EMAIL : CP administrator e-mail RabbitMQ Server and vCloud options: --rbthost RBT_HOST : IP address/FQDN where RabbitMQ Server runs. The RabbitMQ will be installed and configured on the current box if localhost/127.0.0.1 or box's public IP address (enlisted in SNMP_TRAP_IPS) Default values is 127.0.0.1. VCD_* : Options are usefull if vCloud/RabbitMQ are already installed and configured. --vcdlogin VCD_LOGIN : RabbitMQ/vCloud user. Default value is 'rbtvcd'. --vcdpasswd VCD_PASSWD : RabbitMQ/vCloud user password. The random password is generated if isn't specified. --vcdvhost VCD_VHOST : RabbitMQ/vCloud vhost. Default value is '/' RBT_* : Options are used to configure RabbitMQ manager account. If local RabbitMQ server. --rbtlogin RBT_LOGIN : RabbitMQ manager login. The default value is 'rbtmgr'. --rbtpasswd RBT_PASSWD : RabbitMQ manager password. The random password is generated if isn't specified. General options: --ha-install : Proceed with Control Panel and Hight Availability components installation RHEL/CentOS 7.x is supported only! --rake RAKE_TASKS : List of OnApp Control Panel rake tasks (separated with space) to run at the very end of install or upgrade -v ONAPP_VERSION : Install custom OnApp CP version -i SNMP_TRAP_IPS : IP addresses separated with coma for snmp to trap -y : Update OS packages (except of OnApp provided) on the box with 'yum update'. -a : Do not be interactive. Process with automatic installation. Please note, this will continue OnApp Control Panel install/upgrade even there is transaction currently running. -t : Add to the database and download Base Templates. For new installs only. --noservices : Do not start OnApp services: monit, onapp and httpd Please note, crond and all OnApp's cron tasks remain running. They could be disabled by stopping crond service manually for your own risk. -D : Do not make database dump, and make sure it is disabled in the cron and not running at the moment -w : Do not disable iptables service. Is applicable on fresh installs only. --quick|--quick-update[=SERVICE] : Procceed with quick update procedure. This will skip update and configure for services, like: system packages, MySQL database, Redis Server, RabbitMQ Server, Monit service Set the SERVICE parameter (space separated list of statements) to define services, which update is needed. Possible reserved statements are: rpms - for 'system packages' upgrade; mysql - for MySQL database upgrade and configuring; redis - for Redis Server upgrade and configuring; rabbitmq - for RabbitMQ Server upgrade and configuring; monit - for Monit upgrade and configuring. --accept-eula : Automatically accept OnApp's End User License Agreement (DEPRICATED) -c CONFIG_FILE : Custom installer configuration file. Otherwise, preinstalled one is used. -h : print this info
Where: Database server options: Default database SQL server is MySQL Server. Please use one of the following option to install LOCALLY. --mariadb MariaDB Server --community MySQL Community Server --percona Percona Server --percona-cluster Percona Cluster MYSQL_* Options are useful if MySQL is already installed and configured. -m MYSQL_HOST MySQL host. Default is 'localhost' --mysql-port=MYSQL_PORT TCP port where MySQL Server serves connections. Default values is 3306 for the local installation --mysql-sock[=MYSQL_SOCK] Unix socket on which MySQL Server serves connections. Default values is /var/lib/mysql/mysql.sock. Used if local server only. The socket is unset if the option's argument isn't specified. -p MYSQL_PASSWD MySQL password. Random is generated if is not set or specified. -d MYSQL_DB OnApp MySQL database name. Default is 'onapp' -u MYSQL_USER MySQL user. Default is 'root' REDIS_* Options are useful if Redis Server is already installed and configured. --redis-host=REDIS_HOST IP address/FQDN where Redis Server runs. It is used by Control Panel to connect to Redis Server. The Redis Server will be installed and configured on the current box if localhost/127.0.0.1 or box's public IP address (listed in SNMP_TRAP_IPS) is specified. Default value is 127.0.0.1. If local Redis, it will serve as well on the unix socket 'PORT' (if --redis-sock without argument isn't specified). --redis-bind[=REDIS_BIND] The IP address for Redis Server to serve connections (to listen). The option isn't mandatory. --redis-port=REDIS_PORT Redis Server listen port.
Defaults are:
0 - if local server
6379 - if remote server--redis-passwd[=REDIS_PASSWD] Redis Server password to authentificate.
Random password is generated if the option's argument isn't specified.
By default no password is used for local Redis.--redis-sock[=REDIS_SOCK]: Path to the Redis Server's socket. Used if local server only. Default is /var/run/redis/redis.sock. The socket is unset if the option's argument isn't specified. ADMIN_* Options are used to configure OnApp Control Panel administrator data.
Please note, that these options are for NEW INSTALL only and not for upgrade-P ADMIN_PASSWD
CP administrator password -F ADMIN_FIRSTNAME CP administrator first name -L ADMIN_LASTNAME CP administrator last name -E ADMIN_EMAIL CP administrator e-mail --rbthost RBT_HOST IP address/FQDN where RabbitMQ Server runs. The RabbitMQ will be installed and configured on the current box if localhost/127.0.0.1 or box's public IP address (enlisted in SNMP_TRAP_IPS) Default value is 127.0.0.1. VCD_* Options are usefull if vCloud/RabbitMQ are already installed and configured. --vcdlogin VCD_LOGIN RabbitMQ/vCloud user. Default value is 'rbtvcd'. --vcdpasswd VCD_PASSWD RabbitMQ/vCloud user password. The random password is generated if isn't specified. --vcdvhost VCD_VHOST RabbitMQ/vCloud vhost. Default value is '/' RBT_* Options are used to configure RabbitMQ manager account. If local RabbitMQ server. --rbtlogin RBT_LOGIN RabbitMQ manager login. The default value is 'rbtmgr'. --rbtpasswd RBT_PASSWD RabbitMQ manager password. The random password is generated if isn't specified. --rake RAKE_TASKS List of OnApp Control Panel rake tasks (separated with space) to run at the very end of install or upgrade. -v ONAPP_VERSION Install custom OnApp CP version. Please note that if there were significant changes in packages between the version you want to install and the current OnApp version, the installation might be unsuccessful. -i SNMP_TRAP_IPS IP addresses separated with coma for snmp to trap -y Update OS packages (except of OnApp provided) on the box with 'yum update'. -a Is not interactive. Process with automatic installation. Please note, this will continue OnApp Control Panel install/upgrade even if there is transaction currently running. -t Add to the database and download Base Templates. For new installs only. If this option is not used, then only the following mandatory System Templates will be added by default during fresh install: OnApp CDN Appliance; Load Balancer Virtual Appliance; Application Server Appliance. --noservices Do not start OnApp services: monit, onapp and httpd
Please note, crond and all OnApp's cron tasks remain running. They could be disabled by stopping crond service manually for your own risk.-D Do not make database dump, and make sure it is disabled in the cron and not running at the moment. --quick|--quick-update[=SERVICE] Procceed with quick update procedure. This will skip update and configuration for services, such as system packages, MySQL database, Redis Server, RabbitMQ Server, and Monit service. Set the SERVICE parameter (space separated list of statements) to define services, which need to be updated. Possible reserved statements are:
rpms - for 'system packages' upgrade;
mysql - for MySQL database upgrade and configuring;
redis - for Redis Server upgrade and configuring;
rabbitmq - for RabbitMQ Server upgrade and configuring;
monit - for Monit upgrade and configuring.--accept-eula Automatically accept OnApp's End User License Agreement. -c CONFIG_FILE Custom installer configuration file. Otherwise, preinstalled one is used. -h Print this info - If required, start OnApp-related services.