The GuestStore feature provides an easy and flexible mechanism to maintain and distribute different content types across multiple virtual machines on multiple ESXi hosts at the same time.

By using the GuestStore framework, you can make sure that the distributed content is always consistent and you can improve the content management in your environment.

As a vSphere administrator, after you configure GuestStore on an ESXi host, the virtual machines on the host can start accessing the GuestStore content immediately.

The GuestStore content consists of:
  • Binary files that contain updates for VMware Tools and VMware agents.
  • Scripts that are either provided by VMware or are custom scripts.
  • Configuration files of VMware Tools and VMware agents.

With GuestStore you can:

  • Maintain the content on a datastore, that is called a GuestStore repository.
  • Fetch and distribute VMware Tools and VMware agent updates.
  • Distribute configurations for VMware Tools and different VMware agents.
  • Distribute a custom content - custom scripts, agents, and configuraton files.

For example, by importing VMware Tools in the GuestStore repository, you can schedule an automated VMware Tools upgrade at the next reboot of the virtual machine. From the GuestStore repository, you can also perform VMware Tools upgrade for particular virtual machines when necessary.

GuestStore Feature Diagram

By using vSphere Client, you can configure a GuestStore repository on a shared datastore of an ESXi host. You perform the configuration by using ESXCLI. You manage the contents of your datastore by using the datastore file browser, or, if you use an NFS datastore, you can mount the datastore to any NFS client machine.

By using a PowerCLI script, you can configure multiple hosts or a cluster managed by a vCenter Server system.

To access the GuestStore contents, the virtual machine guest operating system uses a resource path. The path to the datastore contents must be the same as the resource path of the guest operating system. For example, to access the /example/myrepository/bar file in the GuestStore repository, the resource path in the guest operating system must be the same, that means /example/myrepository/bar.

Starting with vSphere 7.0 Update 2, you can download and extract the VMware Tools content under the GuestStore repository path. The GuestStore framework allows you, as a vSphere Client administrator, to distribute a configuration file or VMware agent to set of various guest operating systems. For information about configuring GuestStore for VMware Tools, see the VMware Tools documentation.

Requirements for GuestStore

To use GuestStore, your vSphere environment must meet the following requirements:

  • Virtual machines with Windows guest operating systems must be running on ESXi 7.0 Update 2 and later and VMware Tools 11.2.5 and later versions.
  • Virtual machines with Linux guest operating systems must be running on ESXi 7.0 Update 3 and later and VMware Tools 11.3.0 and later versions.
  • The file that is distributed through GuestStore must be 512 MB or smaller.

Set the GuestStore Repository with ESXCLI

You can use ESXCLI commands to set the URL to the GuestStore repository and verify the configuration by retrieving the currently set URL.

Procedure

  1. Set the GuestStore repository URL.
    Note: The URL must point to a datastore path where GuestStore content is stored. The datastore path must be accessible to the ESXi host. If you want to set up a common GuestStore repository across multiple ESXi hosts, you should use a shared datastore path.
    esxcli system settings gueststore repository set --url "<datastore_path>"
    The following example contains a possible syntax for the datastore path.
    esxcli system settings gueststore repository set --url "ds:///vmfs/volumes/<datastore_uuid>/GuestStore"
  2. Retrieve the GuestStore repository URL.
    esxcli system settings gueststore repository get
    You receive the currently set URL in the output.
    URL: <datastore_path>

Clear the GuestStore Repository Setting with ESXCLI

You can use ESXCLI commands to clear the GuestStore repository URL setting and verify that the URL is not set.

Procedure

  1. Clear the GuestStore repository URL setting.
    esxcli system settings gueststore repository set --url ""
  2. Retrieve the GuestStore repository URL.
    esxcli system settings gueststore repository get
    You receive the URL information in the output.
    URL: <not set>