install_perl_libs.pl:
-added to @LINUX_PACKAGES
-perl-Frontier-RPC
-perl-Frontier-RPC-Client
-perl-LWP-Protocol-https
-perl-Mo
-perl-Object-InsideOut
-perl-Scalar-List-Utils
-perl-Expect
-added to @PERL_MODULES
-Crypt::CBC
-IO::String
-Text::CSV_XS
-removed from @PERL_MODULES
-DBI
-Mail::Mailer
-RPC::XML
-Term::ANSIColor
-Time::HiRes
-URI
-YAML
INSTALLATION:
-updated 2.5 to 2.5.1
-small changes to initial paragraph
-removed Apache HTTP v1.3 as supported web server version
-added php-gettext as required php module
-added DBD::MySQL as required perl module
-added Net::Ping::External as required perl module
README:
-updated 2.5 to 2.5.1
-removed Apache HTTP v1.3 as supported web server version
-removed RHEL 6.8 as supported OS version
-updated supported CentOS version from 7.3 to 7.6.1810
-added DBD::MySQL and Net::Ping::External to required perl modules
-removed Windows XP and Windows Server 2003 from management node conditional system requirements
-removed Jabber notifications from management node conditional system requirements
-updated Dojo Toolkit version reference from 1.6.2 to 1.6.5
RELEASE_NOTES:
-updated 2.5 to 2.5.1
-updated list of notworthy changes
-added note about emailing security bugs rather than reporting via JIRA
UPGRADE:
-updated 2.4.2 to 2.5
-updated 2.5 to 2.5.1
-small changes to initial paragraph
-changed step 9 for web code to add SSLOFFLOAD to conf.php instead of removing MAXVMLIMIT
-removed step to update secrets.php
diff --git a/INSTALLATION b/INSTALLATION
index c5583e8..f6f4a62 100644
--- a/INSTALLATION
+++ b/INSTALLATION
@@ -1,10 +1,10 @@
-Installing VCL 2.5
+Installing VCL 2.5.1
-VCL 2.5 is the second release to include an installation script. All you need
-to install VCL is the script. It will download and validate the VCL software and
-then install it. The script can be used to install all three parts of VCL
-(database, web portal, and management node) on a single system or to install
-each part individually on separate systems.
+VCL 2.5.1 can be installed using an installation script. All you need to
+install VCL is the script. It will download and validate the VCL software
+and then install it. The script can be used to install all three parts of
+VCL (database, web portal, and management node) on a single system or to
+install each part individually on separate systems.
Running the installation script with no arguments will step you through
installing all three parts of VCL.
@@ -52,7 +52,7 @@
-MINUAL INSTALLATION INSTRUCTIONS
+MANUAL INSTALLATION INSTRUCTIONS
The recommended method of installing VCL is to use the installation script. See
above for additional information. If manual installation is required,
@@ -145,7 +145,7 @@
Import the vcl.sql file into the database. The vcl.sql file is included in
the mysql directory within the Apache VCL source code
- mysql vcl < apache-VCL-2.5/mysql/vcl.sql
+ mysql vcl < apache-VCL-2.5.1/mysql/vcl.sql
2. Install and Configure the Web Components
@@ -155,8 +155,8 @@
Web Server:
- Apache HTTP Server v1.3 or v2.x with SSL enabled
- PHP 5.0 or later
+ Apache HTTP Server v2.x with SSL enabled
+ PHP 5.x or 7.x
Required Linux Packages:
@@ -167,12 +167,13 @@
Required PHP Modules:
php
+ php-gettext
php-json (required if your PHP version is 5.2 or later)
+ php-ldap (if you will be using LDAP authentication)
php-mysql
php-openssl
php-xml
php-xmlrpc
- php-ldap (if you will be using LDAP authentication)
A. Install the Required Linux Packages & PHP Modules
@@ -225,14 +226,14 @@
Copy the web directory to a location under the web root of your web
server and navigate to the destination .ht-inc subdirectory:
- cp -ar apache-VCL-2.5/web/ /var/www/html/vcl-2.5
- ln -s /var/www/html/vcl-2.5 /var/www/html/vcl
+ cp -ar apache-VCL-2.5.1/web/ /var/www/html/vcl-2.5.1
+ ln -s /var/www/html/vcl-2.5.1 /var/www/html/vcl
cd /var/www/html/vcl/.ht-inc
If SELinux is enabled, run the following command to set the context of the
web code to httpd_sys_content_t
- chcon -R -t httpd_sys_content_t /var/www/html/vcl-2.5
+ chcon -R -t httpd_sys_content_t /var/www/html/vcl-2.5.1
Copy secrets-default.php to secrets.php:
@@ -353,8 +354,8 @@
Prerequisites The following management node installation instructions assume
the instructions in these previous sections have been completed:
- VCL 2.5 Database Installation
- VCL 2.5 Web Code Installation
+ VCL 2.5.1 Database Installation
+ VCL 2.5.1 Web Code Installation
Supported Operating Systems:
@@ -392,11 +393,12 @@
The VCL management node daemon (vcld) is written in Perl and has been tested
on Perl 5.10 and 5.16. The following Perl modules available from CPAN are
- also required (see step 2 below for installation instructions):
+ also required (see step B below for installation instructions):
Crypt::CBC - implementation of the cryptographic cipher block chaining mode
Crypt::OpenSSL::RSA - RSA encoding and decoding, using the openSSL libraries
Crypt::Rijndael - Crypt::CBC compliant Rijndael encryption module
+ DBD::MySQL - MySQL driver for the Perl5 Database Interface (DBI)
DBI - Generic Database Interface
Digest::SHA1 - NIST SHA message digest algorithm
Exception::Class::Base - base class for exception objects
@@ -408,6 +410,7 @@
Mail::Mailer - Simple mail agent interface
Net::Jabber - Jabber perl library
Net::Netmask - parse, manipulate and lookup IP network blocks
+ Net::Ping::External - Cross-platform Perl interface to "ping" utilities
Net::SSH::Expect - a wrapper to the ssh executable that is available in
system's PATH
Object::InsideOut - Comprehensive inside-out object support
@@ -421,8 +424,8 @@
Copy the managementnode directory to the location where you want it to
reside (typically /usr/local):
- cp -ar apache-VCL-2.5/managementnode /usr/local/vcl-2.5
- ln -s /usr/local/vcl-2.5 /usr/local/vcl
+ cp -ar apache-VCL-2.5.1/managementnode /usr/local/vcl-2.5.1
+ ln -s /usr/local/vcl-2.5.1 /usr/local/vcl
B. Install the Required Linux Packages & Perl Modules
diff --git a/README b/README
index 22dbd62..9a0062e 100644
--- a/README
+++ b/README
@@ -1,10 +1,10 @@
-Apache VCL 2.5
+Apache VCL 2.5.1
================================================================================
INSTALLATION
Please see the INSTALLATION file or the installation guide on the Apache VCL
-website. (http://vcl.apache.org/docs/VCL25InstallGuide.html)
+website. (http://vcl.apache.org/docs/VCL251InstallGuide.html)
================================================================================
SYSTEM REQUIREMENTS
@@ -14,7 +14,7 @@
------------
VCL web server Linux packages:
-* Apache HTTP Server v1.3 or v2.x with SSL enabled
+* Apache HTTP Server v2.x with SSL enabled
* PHP 5.0 or later
VCL web server PHP modules:
@@ -40,8 +40,7 @@
VCL has been tested on the following operating systems:
* CentOS release 6.9 (Final)
-* CentOS Linux release 7.3.1611 (Core)
-* Red Hat Enterprise Linux Server release 6.8 (Santiago)
+* CentOS Linux release 7.6.1810 (Core)
* Red Hat Enterprise Linux Server release 7.3 (Maipo)
Required Linux Packages:
@@ -72,6 +71,7 @@
* Crypt::CBC
* Crypt::OpenSSL::RSA
* Crypt::Rijndael
+* DBD::MySQL
* DBI
* Digest::SHA1
* Exception::Class::Base
@@ -83,6 +83,7 @@
* Mail::Mailer
* Net::Jabber
* Net::Netmask
+* Net::Ping::External
* Net::SSH::Expect
* Object::InsideOut
* RPC::XML::Client
@@ -119,21 +120,11 @@
http://www.vmware.com/support/developer/viperltoolkit/
This is not required if provisioning virtual machines on standalone VMware ESX
or ESXi hosts.
-* Windows XP & Windows Server 2003 bare-metal provisioning
- The Sysprep utility is required to provision Windows XP and Windows Server
- 2003 bare-metal images. The utility can be downloaded from Microsoft. It is
- included in newer versions of Windows. Sysprep is not required to provision
- virtual machine images.
-* Jabber notifications
- VCL has the ability to send instant message notifications using Jabber. This
- feature is optional and can be enabled or disabled by configuring the
- "jabber=[yes|no]" property in the vcld.conf file. If the Jabber notification
- feature is enabled, the Net::Jabber Perl module is required.
================================================================================
BUNDLED 3RD PARTY SOFTWARE
-A copy of Dojo Toolkit version 1.6.2 is included in under web/dojo.
+A copy of Dojo Toolkit version 1.6.5 is included in under web/dojo.
Portions of the phpseclib (http://phpseclib.sourceforge.net) project are
included under web/.ht-inc/phpseclib.
@@ -178,4 +169,4 @@
The backend management node code also uses the SSH protocol and public key
authentication to connect to and control compute nodes provisioned by a VCL
management node server as well as other hosts that comprise a VCL system such as
-hypervisors.
\ No newline at end of file
+hypervisors.
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 8b0afa5..ed3c0a8 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -1,4 +1,4 @@
-VCL 2.5
+VCL 2.5.1
I. Intro and Description
@@ -21,27 +21,12 @@
II. Notable Changes
-The following are some notable changes from previous releases.
+This is primarily a bug fix release. However, the following are some
+changes worth highlighting.
-Added:
-
-* Support for Windows 10 and Windows Server 2016 images
-* Responsive theme (dropdownmenus) to web site
-* Support for automatically joining Windows images to an Active Directory domain
-* Basic automatic mounting of NFS shares for all users
-* Customization of email messages sent to users on a per-affiliation basis
-* Support for the automatic configuration of ufw and firewalld-based firewalls
- within Linux images
-* Support for NAT hosts which use ufw os firewalld-based firewalls including
- Ubuntu and RedHat/CentOS 7 and later
-* Support for the execution of custom scripts on a management node at various
- stages of the reservation
-* Display of reservation times in the user's own timezone
-
-Removed:
-
-* Server Profiles
-* Use of the Windows Administrator user account for imaging reservations
+* PHP code updated to work with PHP 7.x.
+* Rudimentary NFS file share mounting extended to work with Windows
+* Added method for using HTML in user emails through external script
=================================
@@ -84,7 +69,9 @@
If you find a bug, please submit a bug report to our JIRA bug tracking system at
http://issues.apache.org/jira/browse/VCL (you will need to set up an account
-there if you haven't already done so - it's free to anyone).
+there if you haven't already done so - it's free to anyone). If it is a security
+bug, do not open a JIRA issue. Instead report it in an email to
+security@apache.org.
If you would like to requrest a new feature, you can also submit that in the
same way through JIRA (just select "New Feature" or "Improvement" as the Issue
diff --git a/UPGRADE b/UPGRADE
index 4256ad1..6b0d8d1 100644
--- a/UPGRADE
+++ b/UPGRADE
@@ -1,10 +1,10 @@
-Upgrading to VCL 2.5
+Upgrading to VCL 2.5.1
-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.
+VCL 2.5.1 can be upgraded using 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) on a single system or to
+upgrade each part individually on separate systems.
Running the upgrade script with no arguments will step you through upgrading
all three parts of VCL.
@@ -57,101 +57,93 @@
2. Create a backup of the VCL database. This will provide a restore point if
necessary.
- mysqldump vcl > ~/vcl-pre2.5-upgrade.sql
+ mysqldump vcl > ~/vcl-pre2.5.1-upgrade.sql
3. Updates the database schema.
- mysql vcl < /root/apache-VCL-2.5/mysql/update-vcl.sql
+ mysql vcl < /root/apache-VCL-2.5.1/mysql/update-vcl.sql
4. 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
+ to /var/www/html/vcl-2.5. 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.
- mv /var/www/html/vcl /var/www/html/vcl-2.4.2
+ mv /var/www/html/vcl /var/www/html/vcl-2.5
5. Disable access to the old web code
- echo "Require all denied" > /var/www/html/vcl-2.4.2/.htaccess
+ echo "Require all denied" > /var/www/html/vcl-2.5/.htaccess
6. Copy the new code in place
- 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
+ cp -ar /root/apache-VCL-2.5.1/web /var/www/html/vcl-2.5.1
+ ln -sfn /var/www/html/vcl-2.5.1 /var/www/html/vcl
- 7. Copy your 2.4.2 config files
+ 7. Copy your 2.5 config files
- cd /var/www/html/vcl-2.4.2/.ht-inc
+ cd /var/www/html/vcl-2.5/.ht-inc
cp conf.php secrets.php pubkey.pem keys.pem /var/www/html/vcl/.ht-inc
+ cp cryptkey/cryptkeyid cryptkey/private.pem /var/www/html/vcl/.ht-inc/cryptkey/
8. If you are using SELinux, set the correct context:
- 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
+ chcon -R -t httpd_sys_content_t /var/www/html/vcl-2.5.1
+ chcon -t httpd_sys_rw_content_t /var/www/html/vcl-2.5.1/.ht-inc/maintenance
+ chcon -t httpd_sys_rw_content_t /var/www/html/vcl-2.5.1/.ht-inc/cryptkey
- 9. Update conf.php: the following item needs to be removed from the conf.php
+ 9. Update conf.php: the following item needs to be added to the conf.php
file:
(don't forget to edit conf.php in the *new* location)
vim /var/www/html/vcl/.ht-inc/conf.php
- define("MAXVMLIMIT", "100");
+ define("SSLOFFLOAD", 0);
-10. Update secrets.php: $cryptkey in secrets.php needs to be generated using
- openssl. Generate the value and set it in secrets.php:
-
- openssl rand 32 | base64
- vim /var/www/html/vcl/.ht-inc/secrets.php
-
- $cryptkey = 'xxxxxxxxxxxxxxxxxxxxxxxxx'; # set this to output of
- # "openssl rand 32 | base64"
-
-11. Make the maintenance and cryptkey directories writable by the web server
+10. 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.
chown apache /var/www/html/vcl/.ht-inc/maintenance
chown apache /var/www/html/vcl/.ht-inc/cryptkey
-12. Start httpd service
+11. Start httpd service
service httpd start
-13. Check testsetup.php: Check that everything is correct by viewing the
+12. 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.
https://your.site.url/vcl/testsetup.php
-14. 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.
+13. Copy old management node code:
+ If /usr/local/vcl is a directory, copy it to /usr/local/vcl-2.5, rename
+ /usr/local/vcl to /usr/local/vcl-2.5.1, and create a symlink.
+ If /usr/local/vcl is a symlink to vcl-2.5, copy /usr/local/vcl-2.5 to
+ /usr/local/vcl-2.5.1 and update the symlink.
(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
+ cp -ar /usr/local/vcl /usr/local/vcl-2.5
+ mv /usr/local/vcl /usr/local/vcl-2.5.1
+ ln -s /usr/local/vcl-2.5.1 /usr/local/vcl
(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
+ cp -ar /usr/local/vcl-2.5 /usr/local/vcl-2.5.1
+ ln -sfn /usr/local/vcl-2.5.1 /usr/local/vcl
-15. Copy the new management node code over the old code:
+14. Copy the new management node code over the old code:
- /bin/cp -ar /root/apache-VCL-2.5/managementnode/* /usr/local/vcl-2.5
+ /bin/cp -ar /root/apache-VCL-2.5.1/managementnode/* /usr/local/vcl-2.5.1
-16. Run install_perl_libs.pl to add any new perl library requirements:
+15. Run install_perl_libs.pl to add any new perl library requirements:
/usr/local/vcl/bin/install_perl_libs.pl
-17. Start vcld service
+16. Start vcld service
service vcld start
-18. Make some test reservations and watch the vcld.log to verify everything is
+17. Make some test reservations and watch the vcld.log to verify everything is
working correctly.
tail -f /var/log/vcld.log
diff --git a/managementnode/bin/install_perl_libs.pl b/managementnode/bin/install_perl_libs.pl
index a61042d..e946948 100755
--- a/managementnode/bin/install_perl_libs.pl
+++ b/managementnode/bin/install_perl_libs.pl
@@ -63,13 +63,20 @@
'perl-DBD-MySQL',
'perl-DBI',
'perl-Digest-SHA1',
+ 'perl-Expect',
+ 'perl-Frontier-RPC',
+ 'perl-Frontier-RPC-Client',
'perl-IO-String',
'perl-JSON',
+ 'perl-LWP-Protocol-https',
'perl-MailTools',
+ 'perl-Mo',
'perl-Net-Jabber',
'perl-Net-Netmask',
'perl-Net-SSH-Expect',
+ 'perl-Object-InsideOut',
'perl-RPC-XML',
+ 'perl-Scalar-List-Utils',
'perl-Text-CSV_XS',
'perl-Time-HiRes',
'perl-XML-Simple',
@@ -79,21 +86,17 @@
my @PERL_MODULES = (
'CPAN',
- 'DBI',
+ 'Crypt::CBC',
'Digest::SHA1',
'Frontier::Client',
+ 'IO::String',
'LWP::Protocol::https',
- 'Mail::Mailer',
'Mo::builder',
'Net::Ping::External',
'Net::SSH::Expect',
'Object::InsideOut',
- 'RPC::XML',
'Scalar::Util',
- 'Term::ANSIColor',
- 'Time::HiRes',
- 'URI',
- 'YAML',
+ 'Text::CSV_XS',
);
# Store the command line options in hash