Mirror of Apache VCL
Josh Thompson
Latest commit 01b9a6e Jun 21, 2018

README

Apache VCL 2.5

================================================================================
INSTALLATION

Please see the INSTALLATION file or the installation guide on the Apache VCL
website. (http://vcl.apache.org/docs/VCL25InstallGuide.html)

================================================================================
SYSTEM REQUIREMENTS

------------
VCL WEB SITE
------------

VCL web server Linux packages:
* Apache HTTP Server v1.3 or v2.x with SSL enabled
* PHP 5.0 or later

VCL web server PHP modules:
* php-gettext
* php-json
* php-ldap (only required if using LDAP authentication)
* php-mysql
* php-openssl
* php-xml
* php-xmlrpc

------------
VCL DATABASE
------------

VCL has been tested on:
* MySQL 5.0 or later
* MariaDB 5.0 or later

-------------------
VCL MANAGEMENT NODE
-------------------

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)
* Red Hat Enterprise Linux Server release 7.3 (Maipo)

Required Linux Packages:

The VCL management node daemon (vcld) requires the following Linux packages in
order to run. A script is provided to assist with installing them. Several of
the packages are required to be able to build and install some of the required
Perl modules.

* expat-devel
* gcc
* krb5-devel
* krb5-libs
* libxml2-devel
* make
* mysql/mariadb
* nmap
* openssh
* openssl-devel
* perl
* xmlsec1-openssl

The VCL management node daemon (vcld) requires the following Perl modules in
order to run. A script is provided to assist in installing them. The script
will install as many as possible through package management. Any remaining
modules will be installed from CPAN.

* Crypt::CBC
* Crypt::OpenSSL::RSA
* Crypt::Rijndael
* DBI
* Digest::SHA1
* Exception::Class::Base
* Frontier::Client
* HTTP::Headers
* IO::String
* JSON
* LWP::UserAgent
* Mail::Mailer
* Net::Jabber
* Net::Netmask
* Net::SSH::Expect
* Object::InsideOut
* RPC::XML::Client
* Text::CSV_XS
* XML::Simple
* YAML

The required Perl modules are distributed under one or more of the following
licenses:
* The "Artistic License"
* GNU General Public License (GPL)
* GNU Library or "Lesser" General Public License (LGPL)

Some of the required Perl modules are included in your Perl distribution.
Modules not included in your Perl distribution are available from CPAN
(www.cpan.org). See the "Install the Required Linux Packages & Perl Modules"
section of the online installation guide for how to use the provided script to
install the required Linux packages and Perl modules. 

Management node system requirements:
* DHCP - VCL requires that a DHCP server, configured to listen on the private
  network, be running on each management node.

Management node conditional system requirements:
* xCAT provisioning
  In order to provision bare-metal or physical computers, xCAT must be installed
  and properly configured. This release supports xCAT 2.x. Imaging support using
  xCAT 2.x requires additional files. To enable imaging for xCAT 2.x, see the
  page describing how to add support for partimage and partimage-ng in the
  Apache VCL wiki. 
* VMware vCenter provisioning
  In order to provision virtual machines on VMware vCenter you will need the
  vSphere SDK for Perl. This can be obtained from:
  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.

Portions of the phpseclib (http://phpseclib.sourceforge.net) project are
included under web/.ht-inc/phpseclib.

Spyc version 0.5.1 (https://github.com/mustangostang/spyc/) is included under
web/.ht-inc/spyc-0.5.1.

================================================================================
TSU NOTIFICATION - Encryption

This distribution includes cryptographic software. The country in which you
currently reside may have restrictions on the import, possession, use, and/or
re-export to another country, of encryption software. BEFORE using any
encryption software, please check your country's laws, regulations and policies
concerning the import, possession, or use, and re-export of encryption software,
to see if this is permitted. See <http://www.wassenaar.org/> for more
information.

The U.S. Government Department of Commerce, Bureau of Industry and Security
(BIS), has classified this software as Export Commodity Control Number (ECCN)
5D002.C.1, which includes information security software using or performing
cryptographic functions with asymmetric algorithms. The form and manner of this
Apache Software Foundation distribution makes it eligible for export under the
License Exception ENC Technology Software Unrestricted (TSU) exception (see the
BIS Export Administration Regulations, Section 740.13) for both object code and
source code.

The following provides additional details on the cryptographic functionality
utilized within the Apache VCL software:

The frontend website portion of the code utilizes cryptographic functions
included in PHP 5.3.0 and later as well as functions provided by third-party PHP
libraries to encrypt and decrypt password information stored in the database and
to encrypt cookie information passed to and stored in users' browsers.

Portions of the third-party phpseclib library are included in the frontend
website portion of the code. This library is only used for PHP versions prior to
5.3.0 which do not support PHP's "openssl_encrypt" function.

The backend management node portion of the code utilizes functions provided by
third-party Perl modules to decrypt password information stored in the database.
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.