Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Excerpt

This page describes how to install and configure the backend VCL management node components including the required Linux packages, Perl modules, VCL daemon (vcld), and Windows utility dependencies.

...

The following instructions assume the VCL database has been installed and configured and that the managment node information has been added to the database as described on the web code installation page. This also assumes that the perl-DBD-MySQL-3.x and the mysql client (mysql-5.x) packages are installed, for database communications. 

Installing VCL Management Node Code - Perl Daemon

  1. Download and extract the VCL release files to the management node:
    Panel

    wget http://www.devlib.org/apache/incubator/vcl/apache-VCL-2.2-incubating.tar.bz2
    tar -jxvf apache-VCL-2.2-incubating.tar.bz2

  2. Copy the managementnode directory to the location where you want it to reside (
  3. If you haven't already done so, download and extract a copy of the latest release. There is a link to it under the Project Resources section on our wiki home page. Look for "Current version".
  4. copy the "managementnode" directory to a location, typically /usr/local):
    Code Blockpanel

    cp

    -r

    managementnode

    apache-VCL-2.2-incubating/managementnode /usr/local/vcl

Install Required Linux Packages & Perl Modules

The VCL management node daemon (vcld) requires the following packages Linux packages and Perl modules in order to run:

Required Linux Packages: to be installed on the OS before installing the required Perl modules.  These packages must be installed if they were not installed as part of your base Linux install.  It is easiest to use the package management utility for your OS --- yum, rpm, or other.

  • expat
  • expat-devel
  • gcc
  • krb5-libs
  • krb5-devel
  • libxml2
  • libxml2-devel
  • nmap
  • openssl
  • openssl-devel
  • perl-DBD-MySQLxmlsec1-openssl

To install these packages using yum:

...

  • xmlsec1-openssl

...

...

Required Perl Modules

...

:

  • DBI
  • Digest::SHA1
  • Mail::Mailer
  • Object::InsideOut
  • RPC::XML
  • YAML

The VCL Perl code running on the management node requires additional Perl modules in order to run. These Perl modules are available from CPAN - The Comprehensive Perl Archive Network. A search engine for CPAN modules is available at search.cpan.org. The Perl modules are licensed under the Artistic and GPL licenses.

Run install_perl_libs.pl Script

A script is provided in the managementnode/ bin directory called install_perl_libs.pl which will attempt to download and install the required perl libraries.  Run the script:

No Format
perl /usr/local/vcl/bin/install_perl_libs.pl

The script will hang or terminate if it encounters a problem.  If this occurs, manually run the last command the script attempted.  The command should be listed in the outputLinux packages and Perl modules.  The script uses the yum utility to install the required Linux packages.  The yum utility should exist on any modern Red Hat-based Linux distribution (Red Hat, CentOS, Fedora).  You will need to troubleshoot the problem.  The most likely cause of the problem is a missing Linux package.  Make sure the required packages are installed.

How to Test if Required Perl Modules are Installed

Run the following command to execute the utils.pm file:

Code Block

perl /usr/local/vcl/lib/VCL/utils.pm

Executing utils.pm does not actually do anything but this will tell you if VCL will be able to run.  If any Perl modules are missing you will see "Can't locate" lines:

No Format
Can't locate HTTP/Headers.pm in @INC (@INC contains:...)

Once all of the required modules are installed, you should see output similar to the following:

No Format
BIN PATH: /usr/local/vcl/lib/VCL
pre-execution: config file being used: /etc/vcl/vcld.conf
Uncaught exception from user code:
        VCLD : /etc/vcl/vcld.conf does not exist, exiting --  No such file or directory
BEGIN failed--compilation aborted at /usr/local/vcl/lib/VCL/utils.pm line 616.
 at /usr/local/vcl/lib/VCL/utils.pm line 616

What to do if a Module is Missing

  1. Determine the name of the missing module by looking at the "Can't locate" line
  2. Search for the missing module on search.cpan.org and install it manually

How to Install a Perl Module Manually

  1. Change directories to /tmp:
    cd /tmp 
  2. Download the module's source package using wget:
    wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/libwww-perl-5.827.tar.gz
  3. Unpack the source package using tar:
    tar xzf libwww-perl-5.827.tar.gz
  4. The previous command should have created a libwww-perl-5.827 directory, change to this directory:
    cd libwww-perl-5.827
  5. Create a makefile with the following command:
    perl Makefile.PL
  6. Compile the module:
    make
  7. Test the module:
    make test
  8. Install the module:
    make install
    The last line you should see should be:
    No Format
    /usr/bin/make install  -- OK
    

How to Install a Perl Module Using CPAN

  1. Enter the CPAN shell:
    perl -MCPAN -e shell
  2. You will need to configure CPAN if it's the first time it is being run. Enter No at the first prompt to auto-configure the CPAN module.
  3. Search for a module using the "m" command:
    m /Zlib/
    You should find the module you were looking for on a line like this:
    No Format
    Module          Compress::Zlib  (P/PM/PMQS/IO-Compress-2.020.tar.gz)
    
  4. Install the module:
    install Compress::Zlib
  5. Answer yes if asked to install any prerequisite modules
    The last line you should see should be:
    No Format
    /usr/bin/make install  -- OK
    

Configure vcld.conf

  1. Create the /etc/vcl directory:
    mkdir /etc/vcl 
  2. Copy the generic vcld.conf file to /etc/vcl:
    cp /usr/local/vcl/etc/vcl/vcld.conf /etc/vcl
  3. Edit the /etc/vcl/vcld.conf file:
    vi /etc/vcl/vcld.conf
    The following lines must be configured in order to start the VCL daemon (vcld) and allow it to check in to the database:
    • FQDN - the fully qualified name of the management node, this should match the name that was configured for the management node in the database
    • server - the IP address or FQDN of the database server
    • LockerWrtUser - database user account with write privileges
    • wrtPass - database user password
  4. Save the vcld.conf file

...

download and install the required Linux packages manually or by using another package management utility before running the install_perl_libs.pl script if yum isn't available on your management node OS.

The required Perl modules are available from CPAN - The Comprehensive Perl Archive Network.  The install_perl_libs.pl script attempts to download and install the required Perl modules by using the CPAN.pm module which is included with most Perl distributions.

Run the install_perl_libs.pl script:

Panel

perl /usr/local/vcl/bin/install_perl_libs.pl

The last line of the install_perl_libs.pl script output should be:

No Format
successfully installed required Perl modules

The script will hang or terminate if it encounters a problem. If this occurs, you will need to troubleshoot the problem by looking at the output.

Install and Start the VCL Daemon (vcld) Service

  1. Copy the vcld service script to /etc/init.d and name it vcld:
    Panel

    cp /usr/local/vcl/bin/S99vcld.linux /etc/init.d/vcld

  2. Add the vcld service using chkconfig:
    Panel

    /sbin/chkconfig --add vcld

  3. Configure the vcld service to automatically run at runtime levels 3-5:
    Panel

    /sbin/chkconfig --level 345 vcld on

  4. Start

...

  1. Start the vcld service:
    Panel

    /sbin/service vcld start

    You should see output similar to the following:
    No Format
    Starting vcld daemon: BIN PATH: /usr/local/vcl/bin
    pre-execution: config file being used: /etc/vcl/vcld.conf
    FQDN is not listed
    pre-execution: process name is set to: vcld
    pre-execution: verbose mode is set to: 1
    pre-execution: testing mode is set to: 0
    pre-execution: log file being used: /var/log/vcld.log
    pre-execution: PID file being used: /var/run/vcld.pid
    Created process 23696 renamed to vcld ...
                                                               [  OK  ]
    
    Note: the vcld service can also be started by running the service script directly:
    Panel

    /etc/init.d/vcld start

  2. Check the vcld service by monitoring the vcld.log file:
    Panel

    tail -f /var/log/vcld.log

    You should see the following being added to the log file every few seconds if the management node is checking in with the database:
    No Format
    2009-06-16 16:57:15|15792|vcld:main(165)|lastcheckin time updated for management node 18: 2009-06-16 16:57:15
    

Configure the SSH Client

To insure that the management node can SSH into your virtual machines without problems, you will need to edit the SSH client config for the root user:

No Format
vi /root/.ssh/config

Add the following lines to the top of the configuration file.

The SSH client on the management node should be configured to prevent SSH processes spawned by the root user to the computers it controls from hanging because of missing or different entries in the known_hosts file.  Edit the SSH configuration file:

Panel

vi /etc/ssh/ssh_config

Locate the UserKnownHostsFile and StrictHostKeyChecking lines lines and change them to the following: 

No Format
No Format

Host <vmhost> <vmhost ip>
   UserKnownHostsFile /dev/null
   StrictHostKeyChecking no

Where:

  • <vmhost> - Is a wildcard reference to the hostnames for your virtual machines.
    • For example, if your VM hostnames look like: vmhost1, vmhost2, vmhost3.... then replace <vmhost> with "vmhost*"
  • <vmhost ip> - Is a wildcard IP reference to the IPs used by your virtual machines.
    • For example, if your VMs all have IP addresses starting with 10.0.0, then replace <vmhost ip> with "10.0.0.*"

 If you do not want these settings applied universally on the management node the SSH configuration can also be configured to only apply these settings to certain hosts or only for the root user.  Consult the SSH documentation for more information.

Configure Windows Product Keys and/or KMS Server Addresses (Optional)

If you will be deploying Windows environments, your institution's Windows product key and/or KMS server addresses must be entered into the VCL database.  This can be done by running the following command and:

Panel

/usr/local/vcl/bin/vcld -setup

Select "Windows OS Module" and follow the promptsThis will insure that new VM hosts will not hang on the known hosts prompts when the management node attempts to connect to them for the first time.

Download Required Utilities & Drivers (Optional)

Windows XP and Server 2003 Deployment Tools (Sysprep)

The If you will be using VCL to deploy bare-metal Windows XP and Server 2003 Deployment Tools are available for free from Microsoft and are required in order for the capture of Windows XP and Server 2003 VCL images to workor Windows Server 2003 machines via xCAT, appropriate versions of the Microsoft Sysprep utility must be downloaded to the management node.  The Sysprep utility is included in the Deployment Tools, available for free from Microsoft.   You do not need to download Sysprep for Windows 7 or Windows Server 2008 because it is included in the operating system.

...

Panel

-rw-rw-r-- 1 root root 25600 Aug 18 17:32 setupcl.exe
-rw-rw-r-- 1 root root 88576 Aug 18 17:32 sysprep.exe

Your Windows product keys and/or KMS server addresses need to be entered into the VCL database in order to capture a Windows image using Sysprep.  Enter the information into the database by running the the following command:

Panel

/usr/local/vcl/bin/vcld -setup

...

Download Drivers

Drivers which aren't included with Windows must be downloaded and saved to the management node. The drivers required will vary greatly depending on the hardware. The only way to know what additional drivers you need is to install Windows on a computer and check for missing drivers.

...