Friday, November 7, 2008

Wednesday, November 5, 2008

VMware RCLI Creating a session file for ESXi

The RCLI utility comes with the ability to create a session file for your host so that you do not need to repeat the user ID and password to a host when passing multiple perl script commands.

The session file that is created will have the host name and ID and password saved in it. This allows you to call/use this file when executing .pl scripts against the host, thus saving you the time of entering your ID and password every time.

Creating the session file:

In the following location of the RCLI install (assuming default path) you will find a save_session.pl, you will use this script to create your sesssion file.

C:\Program Files\VMware\VMware VI Remote CLI\Perl\apps\session>save_session.pl

The command looks like this:
>save_session.pl --savesessionfile c:\users\robert\ESX1host --server 10.10.1.105 --username root --password pass

This will create a file in c:\users\robert called ESX1host. The file is a session files that contains the informaiton for the host (10.10.1.105) wiht the ID or root and using a password of pass.

NOTE for Vista users - by default you do not have the ability to create files in the default installation folder of the RCLI application. Instead of using c:\users\robert you could have just as easly only put the file name. The perl scritp will then create the files in the same directory as the save_session.pl file. The scrit will not error out! But it will also NOT create the file (even when is says is did). So please use a path to a directory that you have the ability to write.

Now that you have a sessoin file for your host you can used it as follows:

Command without using the session file...
>vicfg-ntp.pl --server 10.10.1.105 --list
Enter username: root
Enter password:
No NTP servers configured.

Command using the session file...
>vicfg-ntp.pl --sessionfile c:\users\robert\ESX1host --list
No NTP servers configured.

At first it looks like more effort to create the file than to just enter the server name, user ID and password everytime. And it is if you only running a single command, but if you are going to run multiple commands againts a server all you have to do now is keep calling the same session file with a new script

>vicfg-vswitch.pl --sessionfile c:\users\robert\ESX1host --list
Switch Name Num Ports Used Ports MTU UplinksvSwitch0 64 4 1500 vmnic0
PortGroup Name VLAN ID Used Ports Uplinks VM Network 0 0 vmnic0 Management Network 0 1 vmnic0

or

>vicfg-vmknic.pl --sessionfile c:\users\robert\ESX1host --list
Interface Port Group IP Address Netmask MAC Addressvmk0 Management Network 10.10.1.105 255.255.255.0 00:0c:29:0e:8e:e2

Its worth the effort to create if you run more then one command... Espically since the file, once created can be used over and over again (assuming the password to the host has not changed).

VMware RCLI commands for ESXi

Using the RCLI to configure a VMware ESXi server.... All can be done via the Virtual Infrastructure client but with a little scripting to can easily configure, audit and manage multiple ESX i hosts.

I'll add real world syntax as I figure them out.... Updated 11-5-08

To help identify what command does you can use the --hlep switch wiht any of the pearl scripts.




  • vicfg-advcfg.pl - allows for the modification of any of the advanced configuraiton options.

vicfg-advcfg.pl --server 10.10.1.104 --get Cpu.MigratePeriod - returns the value of the Cpu.MigrationPeriod

  • vicfg-cfgbackup.pl - can backup and restore ESX settings

vicfg-cfgbackup.pl --server 10.10.1.104 --save rwgood

  • Restore the file

vicfg-cfgbackup.pl --server 10.10.1.104 --load rwgood --force

  • vicfg-dns.pl allows you to change the DNS seetings of a host
  • vicfg-dumppart.pl > helps with the support files
  • vicfg-module.pl > allows you to manged the loaded modules
  • vicfg-mpath.pl - all sort fo info on the VMFS paths

vicfg-mpath.pl --server 10.10.1.104 --list

  • vicfg-nas.pl
  • vicfg-nics.pl > configure the phsical NICs in the host
  • vicfg-ntp.pl > managed the NTP settings

vicfg-ntp.pl --server 10.10.1.104 --list > List the configured NTP servers on the host
vicfg-ntp.pl --server 10.10.1.104 --add time.gov > Adds time.gov to the ntp configuration
vicfg-ntp.pl --server 10.10.1.104 --delete time.gov > Removes the time.gov from the ntp configuration
vicfg-ntp.pl --server 10.10.1.104 --start > Starts the NTP service on the host
vicfg-ntp.pl --server 10.10.1.104 --stop > Stops the NTP service on the host

  • vicfg-rescan.pl > rescanning for VMFS and storage
  • vicfg-route.pl
  • vicfg-snmp.pl > configure your SNMP settings
  • vicfg-syslog.pl > configure the ESX host syslog target
  • vicfg-user.pl > local ESX i user management

vicfg-user.pl --server 10.10.1.104 -e user -o add -l Newusername -p password --role admin > This will add the user called Newusername wtih a password of password to the host and give the the permission of admin. --role options are the following admin read-only no-access

vicfg-dns.pl --server 10.10.1.104 > this will show you the DNS settings fo the host

  • vicfg-vmhbadevs.pl > all about the HBAs
  • vicfg-vmknic.pl > more and same infor for you nics
  • vicfg-vswitch.pl > configuring the vSwitches

vicfg-vswitch.pl --server 10.10.1.104 --add mine > adds new vSwitch called mine

vicfg-vswitch.pl --server 10.10.1.104 --add-pg public mine > adds a port group called public to the vSwitch mine

vicfg-vswitch.pl --server nhqesx036 vSwitch1 --pg mine --vlan 100 > This adds a vlan tag of 100 to the port goup mine.

vicfg-vswitch.pl --server 10.10.1.104 --link vmnic1 mine > adds the vmnic1 to the vSwitch called mine

  • vifs.pl > used to move files to and from the ESX host
  • vihostupdate.pl > updating and patching the ESX i

vihostupdate.pl --server 10.10.1.104 --bundle --install ESXe350-200807812-O-BG.zip > Install the ESXe patch on server 10.10.1.104

NEW - Built a utility to help update visit http://www.itsallvirtua.com/ downloads

vihostupdate.pl --server 10.10.1.104 -q > shows the version of the ESXi host

  • vmkfstools.pl > same as alway managing disk
  • vmkuptime.pl - does nothing yet
  • vms.pl
  • vmware-cmd.pl > same as always managing the VMs on the host