Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

DISCLAIMER!

This document provides instuctions for configuring a standalone VCL environment running on a single computer which is able to provision VCL reservations using VMware.   It is only provided to help you understand how the various components of VCL operate.   This document DOES NOT describe how to configure a production VCL environment.   The environment described in this document can however be used to learn, test, and help develop VCL.

Install VCL Components

Begin by completing the installation instructions for the VCL components:

Gather Required Files & Information

...

Requirements

  • VMware Server 12.x RPM installation file
  • VMWare Server 1.x serial number

...

  • Installer - These instructions assume the

...

  • VMware Server RPM has been downloaded to the following location on the management node:
    VMWare Server RPM: /installroot/VMware-server-12.0.82-126538203138.i386.rpmx86_64.rpm
  • VMware Server 2.x serial number - A serial number can be obtained when you download VMware Server 2.0 from vmware.com. You will need to register.

Assumptions

  • These instructions assume you

...

  • are logged in to the management node as root
  • These instructions assume you are using a bash shell

...

  • .
Panel

sudo bash

Configure the VCL Database for the VM Guest and Host 

  • Create the following computer groups:
    Go to Manage Groups -> Resource Groups -> Add
    • all vm host computers
    • all vm guest computers
  • Map all computer groups to management node group
    • Management Nodes -> Edit Management Node Mapping
  • Configure the management node to check in with the database
    • Management Nodes -> Edit Management Node Information -> Add
      • Hostname: localhost
      • IP Address: 127.0.0.1
      • Owner: admin
      • State: available
      • Predictive Loading Module: Predictive Loading Level 0 Module
      • Check-in Interval: 5
      • Install Path: /install
      • End Node SSH Identitiy Key Files: /etc/vcl/vcl.key
      • SSH Port for this node: 22
      • Enable Image Library: no
  • Add VM host computer:
    • Manage Computers -> Edit Computer Information -> Submit -> Add
      • Hosthame: localvmhost
      • IP Address: 192.168.0.1 (NOTE: there is currently a bug restricting the size of the field, so hopefully one octet has less than 3 digits.)
      • State: available
        Note: do not attempt to add the computer in the maintenance state because of the following issue:
        https://issues.apache.org/jira/browse/VCL-189
      • Owner: admin
      • Platform: i386
      • Schedule: VCL 24x7 
      • RAM: 1024
      • No Processors: 1
      • Processor Speed: 2000
      • Network Speed: 100 
      • Type: blade
      • Provisioning engine: xCAT 1.x
        Note: the Type and Provisioning engine values don't matter for the localvmhost computer in this test environment because vcld isn't provisioning it
      • Computer Groups: all vm host computers
  • Add VM guest computer:
    • Manage Computers -> Edit Computer Information -> Submit -> Add
      • Hosthame: vmguest-1
      • IP Address: current public ip address used by Windows XP VM
      • State: available 
      • Owner: admin
      • Platform: i386
      • Schedule: VCL 24x7 
      • RAM: 1024
      • No Processors: 1
      • Processor Speed: 2000
      • Network Speed: 100 
      • Type: virtualmachine
      • Provisioning engine: VMWare Server Provisioning
      • Computer Groups: all vm guest computers
  • Note the fix for the IP address bug is recorded here: https://issues.apache.org/jira/browse/VCL-193
  • Configure the VM guest's MAC address in the computer table in the database (as there currently does not seem to be a way to do this through the UI):
    • eth0: 00:50:56:1a:01:01
    • eth1: 00:50:56:1a:01:02
  • Configure the VM host profile:
    • Virtual Hosts -> VM Host Profiles tab -> VMware GSX standard -> configure Profile
      • Virtual Switch 0: VMnet1
      • Virtual Switch 1: VMnet0
  • Change state of localvmhost to vmhostinuse (edit the database directly, do not use the Virtual Hosts utility on the website)
  • Assign vm guests to localvmhost
  • Create node in priviledge tree
    • Name: VM image access
    • Add resource groups:
      • all vm guest computers
      • all vm guest images

Remove Existing Virtualization Components

Panel

yum groupremove "Virtualization" -y  

Make Sure The Host Computer Is Not Running A Xen Kernel

VMWare Server cannot be installed on a computer running a Xen kernel.  To determine if a Xen kernel is being used:

Panel

uname -a

The following output indicates a Xen kernel is being used:
Panel

Linux blade1g6-4 2.6.18-92.el5xen #1 SMP Tue Jun 10 19:20:18 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux

If "xen" appears in the output of the previous command, replace the Xen Kernel with the following commands:
Panel

yum update ecryptfs-utils -y
yum install kernel kernel-devel -y
yum remove xen kernel-xen -y

Check the grub.conf file to make sure it is not configured to boot using the Xen Kernel
Panel

less /boot/grub/grub.conf 

The grub.conf file should NOT look like this:
Panel

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.el5xen)
        root (hd0,0)
        kernel /xen.gz-2.6.18-92.el5
        module /vmlinuz-2.6.18-92.el5xen ro root=LABEL=/ pci=nommconf
        module /initrd-2.6.18-92.el5xen.img

The grub.conf file SHOULD look like this:
Panel

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-128.1.14.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-128.1.14.el5 ro root=LABEL=/1 pci=nommconf
        initrd /initrd-2.6.18-128.1.14.el5.img

After removing the Xen kernel, reboot the computer:

Panel

reboot

Install VMware Server

Download the latest VMware Server 1.x RPM from http://www.vmware.com
(Note: these instructions assume you saved the RPM into /install)

Install the VMware Server RPM:

Panel

rpm -ivh /install/VMware-server-1.0.8-126538.i386.rpm

Configure VMware Server:
Panel

vmware-config.pl

Note: if you receive an error message you may need to install or update some libraries and then run vmware-config.pl again:
Panel

yum install glibc-devel -y
yum install glibc -y 
yum install libXtst-devel -y

VMware networking should be configured as follows after answering the questions asked by vmware-config.pl

  • vmnet0 is bridged to eth1
  • vmnet1 is a host-only network on private subnet 192.168.0.0

The following lists the sequence of answers to be entered after issuing the vmware-config.pl command:

  1. Press ENTER to view the license agreement, scroll to the bottom, type yes and press ENTER
  2. Wiki Markup
    In which directory do you want to install the mime type icons?
    \[/usr/share/icons\] *ENTER*
  3. Wiki Markup
    What directory contains your desktop menu entry files?
    These files have a .desktop file extension. \[/usr/share/applications\] *ENTER*
  4. Wiki Markup
    In which directory do you want to install the application's icon?
    \[/usr/share/pixmaps\] *ENTER*
  5. Wiki Markup
    None of the pre-built vmmon modules for VMware Server is suitable for your
    running kernel.  Do you want this program to try to build the vmmon module for
    your system (you need to have a C compiler installed on your system)? \[yes\] *ENTER*
  6. Wiki Markup
    What is the location of the directory of C header files that match your running
    kernel? \[/lib/modules/2.6.18-128.1.14.el5/build/include\] *ENTER*
  7. Wiki Markup
    Do you want networking for your virtual machines? (yes/no/help) \[yes\] *ENTER*
  8. Wiki Markup
    Your computer has multiple ethernet network interfaces available: eth0, eth1,
    virbr0. Which one do you want to bridge to vmnet0? \[eth0\] *eth1*
  9. Wiki Markup
    Do you wish to configure another bridged network? (yes/no) \[no\] *ENTER*
  10. Wiki Markup
    Do you want to be able to use NAT networking in your virtual machines? (yes/no)
    \[yes\] *no*
  11. Wiki Markup
    Do you want to be able to use host-only networking in your virtual machines?
    \[no\] *yes*
  12. Wiki Markup
    Do you want this program to probe for an unused private subnet? (yes/no/help)
    \[yes\] *no*
  13. What will be the IP address of your host on the private
    network? 192.168.0.1
  14. What will be the netmask of your private network? 255.255.0.0
  15. DHCP information is displayed, press ENTER
  16. Wiki Markup
    Do you wish to configure another host-only network? (yes/no) \[no\] *ENTER*
  17. Wiki Markup
    The default port : 902 is not free. We have selected a suitable alternative
    port for VMware Server use. You may override this value now.
    Remember to use this port when connecting to this server.
    Please specify a port for remote console connections to use \[904\] *ENTER*
  18. Wiki Markup
    In which directory do you want to keep your virtual machine files?
    \[/var/lib/vmware/Virtual Machines\] *ENTER*
  19. Wiki Markup
    The path "/var/lib/vmware/Virtual Machines" does not exist currently. This
    program is going to create it, including needed parent directories. Is this
    what you want? \[yes\] *ENTER*
  20. Please enter your 20-character serial number
    Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel: enter the serial number

Verify the host-only network was configured correctly:

Panel

/sbin/ifconfig

You should see a vmnet1 interface using IP address 192.168.0.1:
Panel

vmnet1    Link encap:Ethernet  HWaddr 00:50:56:C0:00:01
          inet addr:192.168.0.1  Bcast:192.168.255.255  Mask:255.255.0.0
          inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Restart the vmware service (/sbin/service vmware restart), you should see the following:

Panel

Wiki Markup
Starting VMware services:
   Virtual machine monitor                                  \[ OK \]
   Virtual ethernet                                         \[ OK \]
   Bridged networking on /dev/vmnet0                        \[ OK \]
   Host-only networking on /dev/vmnet1 (background) \[ OK \]
   Starting VMware virtual machines...                     \[ OK \]

Configure /etc/hosts

Modify the /etc/hosts file to include entries for the VM host and guest computers:

Panel

vi /etc/hosts

Add the entries in bold:

Panel

127.0.0.1 localhost
192.168.0.1 localvmhost
192.168.1.1 vmguest-1

Configure the sshd Service to Listen on the Virtual Private Network 

Panel

vi /etc/ssh/sshd_config

Add the following line to the end of the file:
Panel

ListenAddress 192.168.0.1

Restart the sshd service on the management node:

Panel

/sbin/service sshd restart

Configure The VM Host To Be Able To SSH To Itself

Add the VM host's public key to its own authorized_keys file to allow it to SSH to itself without a password prompt: 

Panel

cat /etc/vcl/vcl.key.pub >> /root/.ssh/authorized_keys

The following command should execute without having to enter a password:

Panel

ssh localvmhost 'ls /'

Configure vcld to use vcl.key

Configure the keys column in the managementnode table in the VCL database

  • Edit the managementnode table in the database: set the keys column to /etc/vcl/vcl.key

Configure the vcld.conf file to use vcl.key:

Panel

vi /etc/vcl/vcld.conf

Modify all of the IDENTITY lines to specify the vcl.key file:

Panel

IDENTITY_blade_linux=/etc/vcl/vcl.key
IDENTITY_solaris_lab=/etc/vcl/vcl.key
IDENTITY_linux_lab=/etc/vcl/vcl.key
IDENTITY_blade_win=/etc/vcl/vcl.key

Configure The DHCP Service 

Save a copy of the original dhcpd.conf file:

Panel

mv /etc/dhcpd.conf /etc/dhcpd.conf.orig

Configure the dhcpd.conf file:
Panel

vi /etc/dhcpd.conf

The dhcpd.conf file should contain the following:

No Format

ddns-update-style none; shared-network vmnet1 {
         subnet 192.168.0.0 netmask 255.255.0.0 {
                 ignore unknown-clients;
                 option routers 192.168.0.1;
                 host vmguest-1 {
                         option host-name "vmguest-1";
                         hardware ethernet 00:50:56:1a:01:01;
                         fixed-address 192.168.1.1;
                         filename "/tftpboot/pxelinux.0";
                         option dhcp-server-identifier 192.168.0.1;
                         next-server 192.168.0.1;
                 }
          }
}

The DHCP daemon should only listen on the virtual private network (vmnet1) to avoid conflicts with other production VCL networks.  Configure the dhcpd service startup script to only listen on the vmnet1 interface:

Panel

vi /etc/init.d/dhcpd

Add vmnet1 the to the daemon $dhcpd line as shown:

No Format

start() {
 [ -x $dhcpd ] || return 5
 [ -f $conf ] || return 6
 pidofproc $prog >/dev/null 2>&1
 RETVAL=$?
 [ $RETVAL -eq 0 ] && return $RETVAL 
 echo -n $"Starting $prog: "
 daemon $dhcpd vmnet1 $DHCPDARGS 2>/dev/null
 RETVAL=$?
 echo
 [ $RETVAL = 0 ] && touch $lockfile
 return $RETVAL
}

Configure the dhcpd service to automatically start at runlevels 3-5:

Panel

/sbin/chkconfig --level 345 dhcpd on

Start the dhcpd service:  

...

Networking

The computer used to host the standalone VCL environment described in these instructions only needs a single network interface. These instructions will also work if it has multiple interfaces. The computer used to create these instructions had the following interfaces:

  • eth0 - connected to the private VCL network (not used or referenced in these instructions)
  • eth1 - connected to the public network

VMware Server 2.0 Configuration

Remove Existing Virtualization Components

Tip

yum groupremove "Virtualization" -y

Make Sure The Host Computer Is Not Running A Xen Kernel

VMWare Server cannot be installed on a computer running a Xen kernel. To determine if a Xen kernel is being used:

Tip

uname -a

The following output indicates a Xen kernel is being used:

Panel

Linux blade1g6-4 2.6.18-92.el5xen #1 SMP Tue Jun 10 19:20:18 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux

If "xen" appears in the output of the previous command, replace the Xen kernel:

Tip

yum update ecryptfs-utils -y
yum install kernel kernel-devel -y
yum remove xen kernel-xen -y

Check the grub.conf file to make sure it is not configured to boot using the Xen Kernel

Tip

less /boot/grub/grub.conf

The grub.conf file should NOT look like this:

Panel

title CentOS (2.6.18-92.el5xen)
module /vmlinuz-2.6.18-92.el5xen ro root=LABEL=/ pci=nommconf

After removing the Xen kernel, reboot the computer:

Tip

reboot

Download VMware Server 2.0

Download the latest VMware Server 2.0 RPM from http://www.vmware.com

Info

These instructions assume you saved the RPM into /root

Install VMware Server 2.0

Tip

rpm -ivh /root/VMware-server-2.0.2-203138.x86_64.rpm

Configure VMware Server:

Tip

vmware-config.pl

Answer the questions asked by vmware-config.pl as follows:

  • Do you accept? (yes/no) yes
  • Do you want networking for your virtual machines? (yes/no/help) yes
    • Configuring a bridged network for vmnet0. Please specify a name for this network. Bridged
    • Your computer has multiple ethernet network interfaces available: eth0, eth1. Which one do you want to bridge to vmnet0? eth1 (this should be set to the public interface)
      The following bridged networks have been defined:
      . vmnet0 is bridged to eth1
    • Do you wish to configure another bridged network? (yes/no) no
    • Do you want to be able to use NAT networking in your virtual machines? (yes/no) no
    • Do you want to be able to use host-only networking in your virtual machines? yes
    • Configuring a host-only network for vmnet1. Please specify a name for this network. HostOnly
    • Do you want this program to probe for an unused private subnet? (yes/no/help) no
    • What will be the IP address of your host on the private network? 192.168.0.1
    • What will be the netmask of your private network? 255.255.0.0
      The following host-only networks have been defined:
      . vmnet1 is a host-only network on private subnet 192.168.0.0.
    • Do you wish to configure another host-only network? (yes/no) no
  • Please specify a port for remote connections to use: 902
  • Please specify a port for standard http connections to use: 8222
  • Please specify a port for secure http (https) connections to use: 8333
  • The current administrative user for VMware Server  is ''.  Would you like to specify a different administrator? no
    Using root as the VMware Server administrator.
  • In which directory do you want to keep your virtual machine files? /var/lib/vmware/Virtual Machines
  • The path "/var/lib/vmware/Virtual Machines" does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? yes
  • Please enter your 20-character serial number. <Enter the serial number you received from VMware>
  • In which directory do you want to install the VMware VIX API binary files? /usr/bin
  • In which directory do you want to install the VMware VIX API library files? /usr/lib/vmware-vix/lib
  • The path "/usr/lib/vmware-vix/lib" does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? yes
  • In which directory do you want to install the VMware VIX API document pages? /usr/share/doc/vmware-vix
  • The path "/usr/share/doc/vmware-vix" does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? yes
Info

If you receive an error message when you execute vmware-config.pl you may need to install or update the following libraries and then run vmware-config.pl again:

Tip

yum install glibc-devel -y
yum install glibc -y
yum install libXtst-devel -y

Verify the host-only network was configured correctly:

Tip

/sbin/ifconfig

You should see a vmnet1 interface using IP address 192.168.0.1:

Panel

vmnet1 Link encap:Ethernet HWaddr 00:50:56:C0:00:01
inet addr:192.168.0.1 Bcast:192.168.255.255 Mask:255.255.0.0
inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

Restart the vmware service:

Tip

/sbin/service vmware restart

You should see the following:

Panel

Starting VMware services:
Virtual machine monitor [OK ]
Virtual ethernet [OK ]
Bridged networking on /dev/vmnet0 [OK ]
Host-only networking on /dev/vmnet1 (background) [OK ]
Starting VMware virtual machines... [OK ]

Fix VMware Server 2.0 glibc Problem

VMware Server 2.0 will not run reliably if the version of glibc installed on the host is newer than 2.5-34. This problem is known to affect recent versions of Red Hat Enterprise Linux and CentOS. If not corrected, VMware Server will crash intermittently and the VMware administration web pages will lock up or fail to load.

Check the version of glib installed on the VMware host:

Tip

yum list installed glibc

You will need to configure VMware to use glibc 2.5-34 if the version installed on the host is newer than 2.5-34:

No Format

Installed Packages
glibc.i686       2.5-42      installed
glibc.x86_64     2.5-42      installed

For CentOS, you will need to download the glibc RPM included with CentOS 5.3. This is available from vault.centos.org:

Create a temp directory and cd to it:

Tip

mkdir /tmp/glibc ; cd /tmp/glibc

Download the glibc RPM (change the URL accordingly):

Tip

wget http://vault.centos.org/5.3/updates/x86_64/RPMS/glibc-2.5-34.el5_3.1.x86_64.rpm

Extract the cpio archive from the glibc RPM:

Tip

rpm2cpio glibc-2.5-34.el5_3.1.x86_64.rpm | cpio --extract --make-directories

Create the following directory:

Tip

mkdir /usr/lib/vmware/lib/libc.so.6

Copy the following file to the new directory:

Tip

cp /tmp/glibc/lib64/libc-2.5.so /usr/lib/vmware/lib/libc.so.6/libc.so.6

Make a backup of the original vmware-hostd file:

Tip

cp /usr/sbin/vmware-hostd /root/vmware-hostd.orig

Edit vmware-hostd:

Tip

vi /usr/sbin/vmware-hostd

Navigate to the bottom of the file. You should see the following as the last line:

No Format

eval exec "$DEBUG_CMD" "$binary" "$@"

Add the following export line immediately before the last eval line in vmware-hostd:

No Format

export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libc.so.6:$LD_LIBRARY_PATH
eval exec "$DEBUG_CMD" "$binary" "$@"

The following sed command can also be used to add the line to vmware-hostd:

Tip
Note

Do not both manually edit vmware-hostd and run the following sed command

sed -i -r -e "s/(eval exec.*)/export LD_LIBRARY_PATH=\/usr\/lib\/vmware\/lib\/libc.so.6:\$LD_LIBRARY_PATH\n\1/" /usr/sbin/vmware-hostd

Restart the vmware service:

Tip

/sbin/service vmware restart

Login to VMware

At this point you should be able to log in as root to the VMware Infrastructure Web Access page:
*https://:8333*

Install VCL Components

Begin by completing the VCL installation instructions. Install all of the components on the same computer:

  1. VCL 2.2.1 Database Installation
  2. VCL 2.2.1 Web Code Installation
    Note

    Complete the Web Code Installation steps up to the Add a Management Node to the Database section. Use the instructions below to add the management node, VM host computer, and VM computers to the VCL database.

  3. VCL 2.2.1 Management Node Installation

Add the Management Node to the Database

  • Click Management Nodes > Edit Management Node Information
  • Click Add
    • Hostname: localhost
    • IP Address: 127.0.0.1
    • Owner: admin@Local
    • State: available
    • Predictive Loading Module: Predictive Loading Level 0 Module
    • Check-in Interval: 5
    • Install Path: /install
    • End Node SSH Identitiy Key Files: /etc/vcl/vcl.key
    • SSH Port for this node: 22
    • Enable Image Library: no
  • Click Confirm Management Node

Add the VMware Host Computer to the VCL database

  • Click Manage Computers > Add Single Computer > Submit
    • Hosthame: localvmhost
    • IP Address: 192.168.0.1
    • State: vmhostinuse
      Owner: admin
    • Platform: i386
    • Schedule: VCL 24x7
    • RAM: 1024
    • No Processors: 1
    • Processor Speed: 2000
    • Network Speed: 1000
    • Type: blade
    • Provisioning engine: xCAT 2.x
      Info

      The computer Type and Provisioning engine values don't matter for the localvmhost computer in this test environment because vcld isn't provisioning or reloading it

    • Computer Groups: allComputers
  • Click Confirm Computer
  • Click Submit
  • Select a VM Host Profile to be used on this computer: VMware Server 2.x - local storage
  • Click Add Computer

Add the Virtual Machine Computers to the VCL Database

  • Click Manage Computers > Edit Computer Information > Submit
  • Click the Add Multiple checkbox
  • Click Add
    • Hosthame: vmguest-%
    • Start value: 1
    • End value: 10
    • Start IP Address: 192.168.1.1
    • End IP Address: 192.168.1.10
    • Start private IP Address: 192.168.1.1
    • End private IP Address: 192.168.1.10
    • Start MAC Address: 00:50:56:1a:01:01
    • State: maintenance
    • Owner: admin
    • Platform: i386
    • Schedule: VCL 24x7
    • RAM: 4096
    • No Processors: 1
    • Processor Speed: 2000
    • Network Speed: 1000
    • Type: virtualmachine
    • Provisioning engine: VMware
    • Computer Groups:
      • All VM Computers
      • allComputers
      • newvmimages
  • Click Confirm Compute
  • Click Submit
  • Enter the private address for the management node: 127.0.0.1
  • Click: Download Data, you should automatically generated dhcpd.conf file entries. Keep this web page open and continue with the following instructions.

Install & Configure the DHCP Service

VMware Server installs its own DHCP service (vmnet-dhcpd). This service starts automatically when the vmware service is running. Either the VMware vmnet-dhcpd service or the normal dhcpd service installed on the Linux operating system can be used to assign IP addresses to the VMs' private interfaces. The instructions below explain how to disable vmnet-dhcpd and configure dhcpd.

Disable vmnet-dhcpd

Stop the vmware service:

Tip

/sbin/service vmware stop

Edit the following file:

Tip

/etc/vmware/locations

Find all lines beginning with answer VNET_1_DHCP yes and change yes to no:

Panel

answer VNET_1_DHCP no

Start the vmware service:

Tip

/sbin/service vmware start

Install the DHCP Service

Install dhcp if it is not already installed:

Tip

yum install dhcp -y

The DHCP daemon should only listen on the virtual private network (vmnet1) to avoid conflicts with other networks. Configure the dhcpd service startup script to only listen on the vmnet1 interface:

Tip

vi /etc/sysconfig/dhcpd

Add vmnet1 the to the DHCPDARGS line:

No Format

# Command line options here
DHCPDARGS=vmnet1

Configure the dhcpd service to automatically start at runlevels 3-5:

Tip

/sbin/chkconfig --level 345 dhcpd on

Start the dhcpd service:

Tip

/sbin/service dhcpd start

Configure dhcpd.conf

  • Edit the /etc/dhcpd.conf file on the computer:
    Tip

    vi /etc/dhcpd.conf

  • Paste the following into the dhcpd.conf file and save the file:
    Info

    The host sections below should be identical the the output displayed on the VCL website after you added the VM computers.

    No Format
    
    ddns-update-style none; shared-network vmnet1 {
    	subnet 192.168.0.0 netmask 255.255.0.0 {
    		ignore unknown-clients;
    		option routers 192.168.0.1;
    		host vmguest-1 {
    			option host-name "vmguest-1";
    			hardware ethernet 00:50:56:1a:01:01;
    			fixed-address 192.168.1.1;
    			filename "/tftpboot/pxelinux.0";
    			option dhcp-server-identifier 127.0.0.1;
    			next-server 127.0.0.1;
    		}
    
    		host vmguest-2 {
    			option host-name "vmguest-2";
    			hardware ethernet 00:50:56:1a:01:03;
    			fixed-address 192.168.1.2;
    			filename "/tftpboot/pxelinux.0";
    			option dhcp-server-identifier 127.0.0.1;
    			next-server 127.0.0.1;
    		}
    
    		host vmguest-3 {
    			option host-name "vmguest-3";
    			hardware ethernet 00:50:56:1a:01:05;
    			fixed-address 192.168.1.3;
    			filename "/tftpboot/pxelinux.0";
    			option dhcp-server-identifier 127.0.0.1;
    			next-server 127.0.0.1;
    		}
    
    		host vmguest-4 {
    			option host-name "vmguest-4";
    			hardware ethernet 00:50:56:1a:01:07;
    			fixed-address 192.168.1.4;
    			filename "/tftpboot/pxelinux.0";
    			option dhcp-server-identifier 127.0.0.1;
    			next-server 127.0.0.1;
    		}
    
    		host vmguest-5 {
    			option host-name "vmguest-5";
    			hardware ethernet 00:50:56:1a:01:09;
    			fixed-address 192.168.1.5;
    			filename "/tftpboot/pxelinux.0";
    			option dhcp-server-identifier 127.0.0.1;
    			next-server 127.0.0.1;
    		}
    
    		host vmguest-6 {
    			option host-name "vmguest-6";
    			hardware ethernet 00:50:56:1a:01:0b;
    			fixed-address 192.168.1.6;
    			filename "/tftpboot/pxelinux.0";
    			option dhcp-server-identifier 127.0.0.1;
    			next-server 127.0.0.1;
    		}
    
    		host vmguest-7 {
    			option host-name "vmguest-7";
    			hardware ethernet 00:50:56:1a:01:0d;
    			fixed-address 192.168.1.7;
    			filename "/tftpboot/pxelinux.0";
    			option dhcp-server-identifier 127.0.0.1;
    			next-server 127.0.0.1;
    		}
    
    		host vmguest-8 {
    			option host-name "vmguest-8";
    			hardware ethernet 00:50:56:1a:01:0f;
    			fixed-address 192.168.1.8;
    			filename "/tftpboot/pxelinux.0";
    			option dhcp-server-identifier 127.0.0.1;
    			next-server 127.0.0.1;
    		}
    
    		host vmguest-9 {
    			option host-name "vmguest-9";
    			hardware ethernet 00:50:56:1a:01:11;
    			fixed-address 192.168.1.9;
    			filename "/tftpboot/pxelinux.0";
    			option dhcp-server-identifier 127.0.0.1;
    			next-server 127.0.0.1;
    		}
    
    		host vmguest-10 {
    			option host-name "vmguest-10";
    			hardware ethernet 00:50:56:1a:01:13;
    			fixed-address 192.168.1.10;
    			filename "/tftpboot/pxelinux.0";
    			option dhcp-server-identifier 127.0.0.1;
    			next-server 127.0.0.1;
    		}
    
  • Restart the dhcpd service:
    Tip

    /sbin/service dhcpd restart

Configure /etc/hosts

  • Modify the /etc/hosts file to include entries for the VM host and VM computers:
    Tip

    vi /etc/hosts

  • Add the following entries:
    Panel

    192.168.0.1 localvmhost
    192.168.1.1 vmguest-1
    192.168.1.2 vmguest-2
    192.168.1.3 vmguest-3
    192.168.1.4 vmguest-4
    192.168.1.5 vmguest-5
    192.168.1.6 vmguest-6
    192.168.1.7 vmguest-7
    192.168.1.8 vmguest-8
    192.168.1.9 vmguest-9
    192.168.1.10 vmguest-10

Configure the sshd Service to Listen on the Virtual Private Network

Tip

vi /etc/ssh/sshd_config

Add the following line to the end of the file:

Tip

ListenAddress 192.168.0.1

Restart the sshd service on the management node:

Tip

/sbin/service sshd restart

Configure The VM Host To Be Able To SSH To Itself

If you have not already generated an SSH identity key on the management node to be used to login to the computers the management node controls, run the following command to generate a new key:

Tip

mkdir /etc/vcl ; ssh-keygen -t rsa -f "/etc/vcl/vcl.key" -N '' -b 1024 -C "VCL root account on $HOSTNAME" 

Add the VM host's public key to its own authorized_keys file to allow it to SSH to itself without a password prompt:

Tip

cat /etc/vcl/vcl.key.pub >> /root/.ssh/authorized_keys

The following command should execute without having to enter a password:

Tip

ssh -i /etc/vcl/vcl.key localvmhost 'ls /'

Configure the VM Host Profile

  • Virtual Hosts > VM Host Profiles tab > VMware Server 2.x - local storage > Configure Profile
    • Virtual Switch 0: HostOnly
    • Virtual Switch 1: Bridged

Assign the VM Computers to the VM Host

  • Virtual Hosts > VM Hosts tab
  • Select localvmhost
  • Click Configure Host
  • Set VM limit to 10
  • Select vmguest-1...vmguest-10 under Unassigned VMs
  • Click Add

Create a Base Image

Proceed to follow the instructions to create a Windows or Linux base image.