| Title: Upgrade From 2.4.2 to 2.5 |
| Notice: Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| . |
| http://www.apache.org/licenses/LICENSE-2.0 |
| . |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| # Scripted Upgrade |
| |
| VCL 2.5 is the second release to include an upgrade script. All you need to |
| upgrade VCL is the script. It will download and validate the VCL software and |
| then upgrade your system. The script can be used to upgrade all three parts of |
| VCL (database, web portal, and management node) or to upgrade each part |
| individually. It works for upgrading from any previous version of Apache VCL. |
| |
| [Download Upgrade Script (vcl-upgrade.sh)](https://www.apache.org/dist/vcl/2.5/vcl-upgrade.sh) |
| |
| :::BashLexer |
| wget https://www.apache.org/dist/vcl/2.5/vcl-upgrade.sh.sha1 |
| sha1sum -c vcl-upgrade.sh.sha1 |
| wget https://www.apache.org/dist/vcl/KEYS |
| gpg --import KEYS |
| wget https://www.apache.org/dist/vcl/2.5/vcl-upgrade.sh.asc |
| gpg --verify vcl-upgrade.sh.asc |
| |
| Running the upgrade script with no arguments will step you through upgrading |
| all three parts of VCL. Alternatively, the following explains optional |
| arguments. If upgrading the management node part of VCL, it will also prompt |
| you to agree to the installation of various system level requirements needed |
| for the code to run. |
| |
| :::BashLexer |
| vcl-upgrade.sh [-h|--help] [-d|--database] [-w|--web] [-m|--managementnode] |
| [--dbhost <hostname>] [--dbadminuser <username>] |
| [--dbadminpass <password>] |
| |
| -d|--database - upgrade database components |
| --dbhost may optionally be specified if not localhost |
| |
| -w|--web - upgrade web server components |
| |
| -m|--managementnode - upgrade management node (vcld) components |
| |
| --dbhost <hostname> - hostname of database server (default=localhost) |
| |
| --dbname <name> - name of VCL database on database server (default=vcl) |
| |
| --dbadminuser <username> - admin username for database; must have access |
| to modify database schema and dump data for backup (default=root) |
| |
| --dbadminpass <password> - password for dbadminuser (default=[no password]) |
| |
| --- |
| |
| # Manual Upgrade Instructions |
| |
| These instructions explain how to upgrade from VCL 2.4.2 to VCL 2.5. Please note |
| it only applies for the upgrade from 2.4.2 to 2.5, this may or may not work for other |
| versions. |
| |
| **The basic steps that will be performed** |
| |
| - Download and Extract 2.5 code |
| - Shutdown httpd and vcld services |
| - Create backup of vcl database |
| - Update mysql schema |
| - Update web code, create a backup, copy in new, make changes |
| - Restart httpd service |
| - Update management node VCL code, create a backup, copy in new, make changes |
| - Restart vcld service |
| |
| ### Upgrade steps |
| |
| 1. follow instructions on the [VCL download](http://vcl.apache.org/downloads/download.cgi) |
| page to download and verify apache-VCL-2.5.tar.bz2 and put in in /root |
| 2. **extract VCL 2.5 code** |
| |
| :::BashLexer |
| tar xf apache-VCL-2.5.tar.bz2 |
| |
| 3. **Shutdown** the httpd and vcld services |
| |
| :::BashLexer |
| service httpd stop |
| service vcld stop |
| |
| 4. create a **backup** of the VCL database. This will provide a restore point if |
| necessary. |
| |
| :::BashLexer |
| mysqldump vcl > ~/vcl-pre2.5-upgrade.sql |
| |
| 5. This step **updates the database** schema. |
| |
| :::BashLexer |
| mysql vcl < /root/apache-VCL-2.5/mysql/update-vcl.sql |
| |
| 6. **Possibly move old web code**. If /var/www/html/vcl **is a directory**, rename it to |
| /var/www/html/vcl-2.4.2. These instructions assume that you installed the |
| VCL web code at /var/www/html/vcl. If you installed it elsewhere, replace |
| /var/www/html/vcl with your vcl web root. |
| |
| :::BashLexer |
| mv /var/www/html/vcl /var/www/html/vcl-2.4.2 |
| |
| 7. **Disable access** to the old web code |
| |
| :::BashLexer |
| echo "Require all denied" > /var/www/html/vcl-2.4.2/.htaccess |
| |
| 7. **Copy the new code** in place |
| |
| :::BashLexer |
| cp -ar /root/apache-VCL-2.5/web /var/www/html/vcl-2.5 |
| ln -sfn /var/www/html/vcl-2.5 /var/www/html/vcl |
| |
| 8. **Copy your 2.4.2 config files** |
| |
| :::BashLexer |
| cd /var/www/html/vcl-2.4.2/.ht-inc |
| cp conf.php secrets.php pubkey.pem keys.pem /var/www/html/vcl/.ht-inc |
| |
| 8. **Set SELinux context** If you are using SELinux, set the correct context: |
| |
| :::BashLexer |
| chcon -R -t httpd_sys_content_t /var/www/html/vcl-2.5 |
| chcon -t httpd_sys_rw_content_t /var/www/html/vcl-2.5/.ht-inc/maintenance |
| chcon -t httpd_sys_rw_content_t /var/www/html/vcl-2.5/.ht-inc/cryptkey |
| |
| 9. **Update conf.php**. The following item needs to be removed from the conf.php |
| file: |
| |
| :::BashLexer |
| (don't forget to edit conf.php in the **new** location) |
| vim /var/www/html/vcl/.ht-inc/conf.php |
| <br> |
| |
| :::PhpLexer |
| define("MAXVMLIMIT", "100"); |
| |
| 9. **Update secrets.php** $cryptkey in secrets.php needs to be generated |
| using openssl. Generate the value and set it in secrets.php: |
| |
| :::BashLexer |
| openssl rand 32 | base64 |
| vim /var/www/html/vcl/.ht-inc/secrets.php |
| <br> |
| |
| :::PhpLexer |
| $cryptkey = 'xxxxxxxxxxxxxxxxxxxxxxxxx'; # set this to output of "openssl rand 32 | base64" |
| |
| 9. **Make the maintenance and cryptkey directories writable** by the web server user. Normally this is |
| the apache user, if using a different user change below command accordingly. |
| |
| :::BashLexer |
| chown apache /var/www/html/vcl/.ht-inc/maintenance |
| chown apache /var/www/html/vcl/.ht-inc/cryptkey |
| |
| 10. **Start httpd service** |
| |
| :::BashLexer |
| service httpd start |
| |
| 11. **Check testsetup.php** Check that everything is correct by viewing the testsetup.php |
| script in your browser. This script is located in the same directory as the index.php script. |
| I.e. |
| |
| :::BashLexer |
| https://your.site.url/vcl/testsetup.php |
| |
| 13. **Copy old management node code** If /usr/local/vcl is a directory, copy it to |
| /usr/local/vcl-2.4.2, rename /usr/local/vcl to /usr/local/vcl-2.5, and create a symlink. |
| If /usr/local/vcl is a symlink to vcl-2.4.2, copy /usr/local/vcl-2.4.2 to /usr/local/vcl-2.5 |
| and update the symlink. |
| |
| :::BashLexer |
| (for directory) |
| cp -ar /usr/local/vcl /usr/local/vcl-2.4.2 |
| mv /usr/local/vcl /usr/local/vcl-2.5 |
| ln -s /usr/local/vcl-2.5 /usr/local/vcl |
| <br> |
| |
| :::BashLexer |
| (for symlink) |
| cp -ar /usr/local/vcl-2.4.2 /usr/local/vcl-2.5 |
| ln -sfn /usr/local/vcl-2.5 /usr/local/vcl |
| |
| 13. **Copy new code in place** Copy the new management node code over the old code: |
| |
| /bin/cp -ar /root/apache-VCL-2.5/managementnode/* /usr/local/vcl-2.5 |
| |
| 14. **Run install_perl_libs.pl** to add any new perl library requirements: |
| |
| :::BashLexer |
| /usr/local/vcl/bin/install_perl_libs.pl |
| |
| 15. **Start vcld service** |
| |
| :::BashLexer |
| service vcld start |
| |
| 16. Make some **test reservations** and watch the vcld.log to verify everything is working |
| correctly. |
| |
| :::BashLexer |
| tail -f /var/log/vcld.log |