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.
Gather Required Files & Information
...
Requirements
- VMware Server 2.x RPM installation file
- VMware Server 2.x serial number
...
- Installer - These instructions assume the VMware Server RPM has been downloaded to
...
- the following location on the management node:
/root/VMware-server-2.0.2-203138.x86_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.
Install VCL Components
Begin by completing the VCL 2.2.1 Installation instructions. Install all of the components on the same computer.
...
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:
...
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 |
...
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:
...
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 |
...
- 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? eth0 eth1 (this should be set to the public interface)
The following bridged networks have been defined:
. vmnet0 is bridged to eth0eth1 - 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
...
You should see the following:
Panel |
unmigrated-wiki-markup |
---|
Starting VMware services:
Virtual machine monitor \[<span style="color: #339966">OK</span> \]
Virtual ethernet \[<span style="color: #339966">OK</span> \]
Bridged networking on [OK ] Virtual ethernet [OK ] Bridged networking on /dev/vmnet0 \[<span style="color: #339966">OK</span> \]
[OK ] Host-only networking on /dev/vmnet1 (background) \[<span style="color: #339966">OK</span> \]
Starting VMware virtual [OK ] Starting VMware virtual machines... \[<span style="color: #339966">OK</span> \[OK ] |
Fix VMware Server 2.0 glibc Problem
...
Tip |
---|
/sbin/service vmware restart |
Configure /etc/hosts
Modify the /etc/hosts file to include entries for the VM host and guest computers:
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
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
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 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:
Modify all of the IDENTITY lines to specify the vcl.key file:
Tip |
---|
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:
Tip |
---|
mv /etc/dhcpd.conf /etc/dhcpd.conf.orig |
Configure the dhcpd.conf file:
The dhcpd.conf file should contain the following:
...
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:
- VCL 2.2.1 Database Installation
- 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. |
- 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:
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:
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:
- 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:
- 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.
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:
Add vmnet1 the to the daemon $dhcpd line as shown:
Tip |
---|
Wiki Markup |
---|
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:
Tip |
---|
/sbin/chkconfig --level 345 dhcpd on |
Start the dhcpd service:
Tip |
---|
/sbin/service dhcpd start |
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
...
- 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
...
- 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
...
- 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
...
- eth0: 00:50:56:1a:01:01
- eth1: 00:50:56:1a:01:02
...
- Virtual Hosts -> VM Host Profiles tab -> VMware GSX standard -> configure Profile
- Virtual Switch 0: VMnet1
- Virtual Switch 1: VMnet0
...