Automating VMWare ESXi snapshots through Scheduled Tasks

July 7th, 2009

Earlier I wrote about Creating ESXi snapshot backups with ghettoVCB.sh. Now, the next logical step is to be able to automate these snapshots so you don’t need to ssh to the ESXi host and run the script manually and wait for the result.

We can use plink, and Windows Scheduled tasks to achieve this result.

In order to use Plink, the file plink.exe will need either to be on your PATH or in your current directory. To add the directory containing Plink to your PATH environment variable.

Start -> Control Panel -> System -> Advanced -> Environmental Settings -> System Variables -> Path -> Edit, and enter the path for your plink.exe file.

OK, so once plink is setup correctly, you can use the following command to connect to your ESXi host, and set your script running with the appropriate ‘vmbackups’ file for the relevant machine.

E:\backup\putty\plink.exe [email protected] -pw passsword “nohup /vmfs/volumes/datastore1/scripts/ghettoVCB.sh /vmfs/volumes/datastore1/scripts/vmbackupsbuilder > /vmfs/volumes/datastore1/scripts/backuplog.txt &”

Picking the above command apart:

1. E:\backup\putty\plink.exe (the path to plink.exe)

2. [email protected] -pw passsword (the username, IP address and password of your ESXi Host)

3. “nohup /vmfs/volumes/datastore1/scripts/ghettoVCB.sh /vmfs/volumes/datastore1/scripts/vmbackupsbuilder > /vmfs/volumes/datastore1/scripts/backuplog.txt &” (this is the path to your ghettoVCB.sh file, the path to your vmbackups file, and a command to log the output

We also run this as a ‘nohup’ command so that the snapshot can continue without anyone being continuously logged into the host.

You probably want to run this without the nohup as a first test, to make sure everything is working OK.

Once you’re happy with the command and it runs successfully for you, you can simply add this command to a .bat file, and then use the standard Windows Task Manager to schedule it to run as frequently as you wish.

Download and install VMWare Infrastructure Client

July 3rd, 2009

There’s a lot of people searching and posting about the VMWare Infrastructure Client that’s used for managing your ESXi Host, people don’t seem to be able to find and download it from the web.

There’s a good reason for this, it’s not widely available online!  Do install it, simply visit the IP address of your ESXi host in your favourite internet browser, and you can download the Infrastructure Client from the ESXi Host directly.

Hope this helps some of the confused!

Creating NFS share on Windows Server 2003…

July 2nd, 2009

In this post, I’ll talk through how to create an NFS Share in Windows 2003, I’ll then follow it up with a quick post about how to connect to this NFS Share from within your ESXi host.

This post is largely similar to The musings of an IT Consultant: backups VMware ESXi blog, Raj also has a blog called The World Runs on Technology – both of which are excellent – you should check them out.

Stage 4 – setting up NFS Share on Windows Server 2003.

1. Using your FTP client, grab a copy of the following two files from your ESXi host and put them somewhere safe:

/ etc /passwd
/ etc /group

2. Now, download Windows Services for Unix 3.5 from here, and install onto your Windows 2003 server, requires reboot.

3. During install ensure you select the Server for NFS and User Mapping components during the install.

4. In the user mapping section, choose Local User Name Mapping Server and choose Password and Group files

5. In the user name mapping screen, select the passwd and group files that you ftp’s earlier.

6. Reboot your 2003 server and then launch into the MMC (Start -> Run -> MMC)

7. You now need to add the Services for Unix snap-in.  (File -> Add/Remove Snap In -> Add)

Windows Services for Unix Snap In

8. Now, chose User Name Mapping on the left hand side, then select the MAPS section in the right hand side

9. Make sure ‘simple maps’ is checked and then click on show user maps – then list both the Windows and Unix users.

10. Your best option here is to Map your Administrator account to the unix root user – then Apply your settings. You’re done.

Now, on your 2003 machine, create a new folder called, ‘Backup’ for example. Right click on this folder and chose properties. You’ll notice that you have a new tab – called ‘NFS Sharing’. In this tab we can set the share name as Backup. In the permissions section, allow root ‘read-write’ access.

That’s it for setting up the share, you now have a storage area in windows that your ESXi can communicate with. All that’s left, is to point your ESXi host at the new share. So, from the VMWare Infrastructure Client – Go to the ‘Configuration’ tab and then chose ‘Storage’ and then ‘Add Storage’ (which is on the far right)

Here, simply enter the details of the NFS Share you just created and the Share Name etc, like so:

ESXi NFS Share screenshot

Ok, you’re done. In the next post, I’ll be showing you how to automate ESXi snapshot backups through a combination of Scheduled Tasks, ghettoVCB.sh and plink.

Creating ESXi snapshot backups with ghettoVCB.sh

July 2nd, 2009

This is the second post in a series regarding the backup of ESXi Virtual Machines.  Once you’ve got ssh and ftp access sorted you’ll be able to connect remotely to the ESXi host and run scripts (which use the ESXi command line) to automate certain tasks.

One of the best scripts out there for backing up ESXi hosts is called ghetto.vcb You can find out more about the script here:

http://communities.vmware.com/docs/DOC-8760

So, here’s how to set this up

Stage 2 – implementing the ghettoVCB.sh script.

1. First of all, download the ghettoVCB.sh script, and the example file vmbackup

2. Now, you’ll need to ftp these files to you ESXi host (If you haven’t already enabled ftp access, you can find my guide on how to do it here http://www.rancidswan.com/?p=4)

3. Now, ssh to your ESXi host and edit the ghettoVCB.sh file. There are a number of options at the top of the file, but not many, and they should all be fairly self explanatory. Just for testing you can set the path of the backup location to be somewhere on the ESXi host itself. Later I’ll be writing a guide on how to setup an NFS share on a Windows 2003 server so that these snapshot backups can be pushed directly to a windows machine.

4. You’ll also need to edit the file I’ve called vmbackup. This file purely contains just the name of the machine you want to backup (note: it’s the machine’s Virtual Machine name, not it’s Computer name you use, the name has to be understandable by the ESXi host)  You can have multiple machine names if you wish, with distinct names on each line, but personally I’d recommend just having one name in the file, this will make it easier to automate individual machine backups later on)

5. OK, now you’ll need to set the permissions on the file ghettoVCB.sh like this:

chmod 777 ghettoVCB.sh

5. Now, to run the script, you simply need to write:

./ghettoVCB.sh vmbackups

The script will now run and either show a progress meter, or show you any error messages you might need to tackle!

Enabling ssh and ftp access to your ESXi host.

June 29th, 2009

This will be the first of  a series of posts regarding the backup of ESXi Virtual Machines from an ESXi host. This will probably take four or five seperate blogs to explain.

Stage 1 – Enabling ssh and ftp access on your ESXi host.

The default setting for any ESXi host is to have ssh and ftp access disabled, not great for administering the box.  To enable it:

Once the machine has booted, press ALT + F1

type: unsupported (this text will not be displayed, if you make a mistake CTRL + U clears the input)

now you will need to enter the root password.

  1. At the prompt type “vi /etc/inetd.conf”
  2. Look for the line that starts with “#ssh” and “#ftp” (you can search with pressing “/”)
  3. Remove the “#” in both places (press the “x” if the cursor is on the character)
  4. Save “/etc/inetd.conf” by typing “:wq!”
  5. Restart the management service “/sbin/services.sh restart”

The Management Service will now restart (takes a couple of mins)

Now you need to kill the inetd service;

  1. ps -a | grep inetd
  2. kill (# of inetd service)
  3. inetd

Press Alt+F2 to return the server to DCUI mode.

Voila! You can now use your favourite ssh client to access the ESXi host.