title: Management Node Installation

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

Assumptions

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|Web Code Installation] . This also assumes that the perl-DBD-MySQL-3.x and the mysql client (mysql-5.x) packages are installed, for database communications.

Download the Backend Management Node VCL Code

Install the Subversion client if it is not already installed:

Install Required Packages

The following 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-MySQL
  • xmlsec1-openssl

To install these packages using yum:

Install Required Perl Modules

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|http://search.cpan.org/] .

{}Note: Licensing information for each required Perl module is included below.  The content of the “License:” lines was copied from the CPAN page for each module.  The content of the other line was copied from the copyright section in the module‘s source code or from the module’s readme file.

This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl 5.10.0 README file.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Copying and distribution are permitted under the terms of the Artistic License 2.0 (http://www.opensource.org/licenses/artistic-license-2.0.php ) or the GNU LGPL 2.1 ([http://www.opensource.org/licenses/lgpl-2.1.php|http://www.opensource.org/licenses/lgpl-2.1.php]).

Copyright (c) 2001, 2002, 2005. Brian Ingerson.

Some parts copyright (c) 2009 Adam Kennedy

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The following Perl modules are only required if VCL is configured to send instant messages via Jabber.  Jabber support can be enabled or disabled by configuring the “jabber=” line in the vcld.conf file.  The following modules do not need to be installed if Jabber support is disabled.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

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:

Run the script a 2nd time to check if all of the modules the script is configured to install were successfully installed. Output similar to the following should be displayed for each module:

URL: http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.609.tar.gz
Module filename: DBI-1.609.tar.gz
Module name: DBI-1.609
Module package: DBI
Checking if DBI is installed
Module is already installed: DBI
==============================================================================

How to Test if Required Perl Modules are Installed

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

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:

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
  1. Unpack the source package using tar: tar xzf libwww-perl-5.827.tar.gz
  2. The previous command should have created a libwww-perl-5.827 directory, change to this directory: cd libwww-perl-5.827
  3. Create a makefile with the following command: perl Makefile.PL
  4. Compile the module: make
  5. Test the module: make test
  6. Install the module: make install The last line you should see should be:

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:

  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:

Download Required Utilities & Drivers

Windows XP and Server 2003 Deployment Tools (Sysprep)

The 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 work.  The Sysprep utility is included in the Deployment Tools.  You do not need to download Sysprep for Windows Vista or Server 2008 because it is included in the operating system.

Links to the downloads are below.  You should be able to use the XP SP2 or SP3 version assuming the image you are capturing contains Windows XP Service Pack 3.  We have seen problems with drivers not being installed correctly using the SP3 version of the deployment tools so the SP2 version is recommended.

Download: Windows XP Service Pack 2 Deployment Tools Download: Windows XP Service Pack 3 Deployment Tools Download: System Preparation tool for Windows Server 2003 Service Pack 2 Deployment

The Sysprep files need to be extracted from the file you download which is in Microsoft's .cab format.  It is easiest to extract the files on a Windows computer.  Windows Explorer is able to open the .cab file and then the files contained within can be copied elsewhere.  There are also some Linux utilities which claim to be able to extract .cab files.

Copy the extracted Windows XP Sysprep files to the following directory on the management node after they have been extracted: {panel} /usr/local/vcl/tools/Windows_XP/Utilities/Sysprep {panel}Copy the extracted Windows Server 2003 Sysprep files to the following directory on the management node after they have been extracted: {panel} /usr/local/vcl/tools/Windows_Server_2003/Utilities/Sysprep {panel}The Sysprep directories should already exist on the management node because they exist the Subversion repository.  There should already be a sysprep.inf file in each Sysprep directory.  This is the base Sysprep template file for VCL included in the Subversion repository.

The Sysprep directories should contain the following files at a minimum: {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 -rw-rw-r-- 1 root root  2574 Aug 18 17:32 sysprep.inf {panel}

Configure sysprep.inf

Your organizations‘s Windows XP product key needs to be entered into the Windows XP sysprep.inf file.  Find the ProductKey line and replace WIN_XP_PRO_KEY with *your organization’s Windows XP product key* in the following file: {panel} /usr/local/vcl/tools/Windows_XP/Utilities/Sysprep/sysprep.inf {panel}Your organizations‘s Windows Server 2003 product key needs to be entered into the Windows Server 2003 sysprep.inf file.  Find the ProductKey line and replace WIN_2003_ENT_KEY with *your organization’s Windows Server 2003 product key* in the following file: {panel} /usr/local/vcl/tools/Windows_Server_2003/Utilities/Sysprep/sysprep.inf {panel}

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.

The drivers must be copied to the appropriate directory on the management node. The VCL image capture process copies the driver directories to the computer before an image is captured. Drivers from multiple directories will be copied based on the version of Windows being captured. There are driver directories under tools for each version of Windows (Windows XP, Windows Vista) and for each version group of Windows (version 5, 6). This allows drivers which are common to multiple versions of Windows to be shared in the management node tools directory structure.

For example, if a chipset driver works for all versions of Windows, it can be saved in: tools/Windows/Drivers/Chipset

If Windows XP and Windows Server 2003 both use the same network driver, it can be saved in: tools/Windows_Version_5/Drivers/Network

If a storage driver only works for Windows XP, it should be saved in: tools/Windows_XP/Drivers/Storage

During the image capture process, each Windows version directory is copied to the computer under C:\Cygwin\home\root\VCL. The order in which the Windows version directories are copied goes from most general to most specific.  In the example above, the order would be:

  1. tools/Windows/Drivers/Chipset
  2. tools/Windows_Version_5/Drivers/Network
  3. tools/Windows_XP/Drivers/Storage

The resulting directory structure on the Windows computer will be:

  • C:\Cygwin\home\root\VCL\Drivers ** \Chipset - driver works for all versions of windows ** \Network - driver works for Windows XP and Server 2003 ** \Storage - driver only works for Windows XP

The following list shows which driver files should be saved in the driver directories:

  • tools/Windows/Drivers - drivers common to all versions of Windows ** tools/Windows_Version_5/Drivers - drivers used by Windows XP and Server 2003 *** tools/Windows_Version_XP/Drivers - drivers only used by Windows XP *** tools/Windows_Version_Server_2003/Drivers - drivers only used by Windows Server 2003 ** tools/Windows_Version_6/Drivers - drivers used by Windows Vista and Server 2008 *** tools/Windows_Vista/Drivers - drivers only used by Windows Vista *** tools/Windows_Server_2008/Drivers - drivers only used by Windows Server 2008

The directory structure under each Drivers directory does not matter. It is helpful to organize each directory by driver class, and each directory should be organized using the same theme.  For example:

  • tools/Windows_Version_XP/Drivers ** Chipset ** Network ** Storage ** Video

Add 3rd Party Mass Storage Driver IDs to sysprep.inf

This step is complicated.  3rd party mass storage hardware IDs and driver .inf file paths must be added to the SysprepMassStorage section in sysprep.inf for Windows XP and Windows Server 2003 in order for the saved image to boot properly on different hardware.

  1. Identify the mass storage drivers required for your hardware which aren't native to Windows
  2. Download drivers for your hardware
  3. Each driver will have 1 or more .inf files. Examine the .inf files. Find all lines in this format containing a PnP device ID: %DevDescD1% = SYMMPI_Inst, PCI\VEN_1000&DEV_0054&SUBSYS_1F041028 The PnP device ID in the example above is: PCI\VEN_1000&DEV_0054&SUBSYS_1F041028
  4. Each PnP device ID should be added to the sysprep.inf file under the [SysprepMassStorage](sysprepmassstorage.html) section using the following format: ID = “C:\Sysprep\Drivers<driver directory><.inf file path>”

Example: LSI SAS drivers commonly need to be downloaded and the hardware IDs need to be added to the sysprep.inf files in order for computers with LSI SAS controllers to boot.

  1. Download the LSI SAS driver from ibm.com : ibm_dd_mptsas_1.30.02.00_windows_32-64.exe
  2. Extract the ZIP file (it's a self-extracting zip; you can unzip it with whatever unzip tool you prefer)
  3. Copy the files from the 32 bit XP directory (image/xp-32) to the appropriate directory on the management node: tools/Windows/Drivers/Storage/LSI-SAS
  4. Locate the .inf file included with the driver is: tools/Windows/Drivers/Storage/LSI-SAS/{}symmpi.inf
  5. Locate the PnP ID lines in the .inf file: {PANEL} [LSI](lsi.html) %DevDesc2% = SYMMPI_Inst, PCI\VEN_1000&DEV_0622 %DevDesc3% = SYMMPI_Inst, PCI\VEN_1000&DEV_0624 %DevDesc4% = SYMMPI_Inst, PCI\VEN_1000&DEV_0626 %DevDesc5% = SYMMPI_Inst, PCI\VEN_1000&DEV_0628 %DevDesc6% = SYMMPI_Inst, PCI\VEN_1000&DEV_0030 %DevDesc7% = SYMMPI_Inst, PCI\VEN_1000&DEV_0032 %DevDesc8% = SYMMPI_Inst, PCI\VEN_1000&DEV_0050 %DevDesc9% = SYMMPI_Inst, PCI\VEN_1000&DEV_0054 %DevDesc10% = SYMMPI_Inst, PCI\VEN_1000&DEV_0058 %DevDesc11% = SYMMPI_Inst, PCI\VEN_1000&DEV_0056 %DevDesc12% = SYMMPI_Inst, PCI\VEN_1000&DEV_0640 %DevDesc13% = SYMMPI_Inst, PCI\VEN_1000&DEV_0646 %DevDesc14% = SYMMPI_Inst, PCI\VEN_1000&DEV_0062 [DELL](dell.html) %DevDescD1% = SYMMPI_Inst, PCI\VEN_1000&DEV_0054&SUBSYS_1F041028 %DevDescD2% = SYMMPI_Inst, PCI\VEN_1000&DEV_0054&SUBSYS_1F051028 %DevDescD3% = SYMMPI_Inst, PCI\VEN_1000&DEV_0054&SUBSYS_1F061028 %DevDescD4% = SYMMPI_Inst, PCI\VEN_1000&DEV_0054&SUBSYS_1F071028 %DevDescD5% = SYMMPI_Inst, PCI\VEN_1000&DEV_0054&SUBSYS_1F081028 %DevDescD6% = SYMMPI_Inst, PCI\VEN_1000&DEV_0054&SUBSYS_1F091028 %DevDescD7% = SYMMPI_Inst, PCI\VEN_1000&DEV_0058&SUBSYS_1F0E1028 %DevDescD8% = SYMMPI_Inst, PCI\VEN_1000&DEV_0058&SUBSYS_1F0F1028 %DevDescD9% = SYMMPI_Inst, PCI\VEN_1000&DEV_0058&SUBSYS_1F101028 {PANEL}
  6. Based on the contents of the .inf file, the following is added to the Windows XP and Windows Server 2003 sysprep.inf files under [SysprepMassStorage](sysprepmassstorage.html) : {PANEL} PCI\VEN_1000&DEV_0622 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0624 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0626 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0628 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0030 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0032 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0050 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0054 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0058 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0056 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0640 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0646 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0062 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0054&SUBSYS_1F041028 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0054&SUBSYS_1F051028 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0054&SUBSYS_1F061028 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0054&SUBSYS_1F071028 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0054&SUBSYS_1F081028 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0054&SUBSYS_1F091028 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0058&SUBSYS_1F0E1028 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0058&SUBSYS_1F0F1028 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” PCI\VEN_1000&DEV_0058&SUBSYS_1F101028 = “C:\Sysprep\Drivers\Storage\LSI-SAS\symmpi.inf” {PANEL}If you have hardware using an LSI SAS controller (IBM HS21 blades), the section above can be copied and pasted into your sysprep.inf files: {panel} /usr/local/vcl/tools/Windows_XP/Utilities/Sysprep/sysprep.inf {panel} {panel} /usr/local/vcl/tools/Windows_Server_2003/Utilities/Sysprep/sysprep.inf {panel}

WSName - Workstation Name Changing Utility

{color:#ff0000}{}NOTICE:{color} The WSName.exe utility is no longer available.  The set_computer_name.vbs script which calls WSName.exe will be rewritten for the 2.2 release of VCL. In the meantime, this script is being left intact in case you have a previously released version of WSName.exe or are able to obtain it from another source.

The wsname.exe utility is used by VCL to name Windows computers.  It does a reverse DNS lookup so that the computer name is set to the name registered for its public IP address.  The utility is called by set_computer_name.vbs when a Windows image is loaded.  The utility is not vital for the load process to work.  However, the computer will receive a random name if the script is missing or fails to run.

If you do have a previously released version of WSName.exe or are able to locate it from another souce, save WSName.exe in the following location on the management node: {panel} /usr/local/vcl/tools/Windows/Utilities/WSName/wsname.exe {panel}

NewSID - Windows SID Changing Utility

NewSID.exe is used to change the SID of a Windows computer if Sysprep is not used.  Download the NewSID.exe utility:

Download: NewSID.exe

Save the NewSID.exe utility in the following location on the management node: {panel} /usr/local/vcl/tools/Windows/Utilities/NewSID/newsid.exe {panel}

SPDrvScn - Windows Driver Scanning Utility

SPDrvScn.exe is used before an image is captured to enter the paths of drivers to the Windows registry so that they are loaded when Sysprep attempts to install devices.  Download the SPDrvScn.exe utility:

Download: SPDrvScn.exe

Save the SPDrvScn.exe utility in the following location on the management node: {panel} /usr/local/vcl/tools/Windows/Utilities/SPDrvScn/spdrvscn.exe {panel}

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:

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

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

Where:

  • - Is a wildcard reference to the hostnames for your virtual machines. ** For example, if your VM hostnames look like: vmhost1, vmhost2, vmhost3.... then replace with “vmhost*”

  • - 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 with “10.0.0.*”

This 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.

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

Install the VCL Daemon (vcld) Service

  1. Copy the vcld service script to /etc/init.d and name it vcld: cp /usr/local/vcl/bin/S99vcld.linux /etc/init.d/vcld
  2. Add the vcld service using chkconfig: /sbin/chkconfig --add vcld
  3. Configure the vcld service to automatically run at runtime levels 3-5: /sbin/chkconfig --level 345 vcld on

Start and Check the vcld Service

  1. Start the vcld service: /sbin/service vcld start You should see output similar to the following:

    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� ]

/etc/init.d/vcld start

  1. Check the vcld service by monitoring the vcld.log file: 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: