App Layering

Nutanix AHV (Acropolis)

A Nutanix AHV connector configuration contains the credentials and storage container the appliance needs to connect to Nutanix Acropolis.

You can use this connector configuration to access a specific location in your Nutanix environment when you:

  • Import a clean OS image for the purposes of creating an OS layer.
  • Package layers as part of creating a Platform or App layer, or as part of adding a version to a layer.
  • Publish layered images to Nutanix.

Before you start

You can use your Nutanix Acropolis environment for creating layers, and publishing layered images. Each connector configuration accesses a specific storage container in your Nutanix Acropolis environment where you can create your layers or publish layered images.

It is possible that you need more than one Nutanix Acropolis connector configuration to access the correct container for each purpose. Further, it is important to publish each layered image to a container convenient to the systems you are provisioning with the published image. For more about connectors and connector configurations, see Connector configurations.

Specify the Nutanix Prism Elements console

App Layering uses the Prism Elements web console, and does not support the Prism Central console.


When using Nutanix connectors, App Layering requires direct NFS access to the hosts to work correctly. In older versions of Nutanix AHV (5.6 and 5.7), this direct NFS access to hosts was not allowed if a Prism Element host or cluster was registered with Prism Central. Make sure that your Nutanix setup allows this access. For details about this issue on various Nutanix versions, see Adding layer versions with Nutanix fails with error: Failed to execute the script

When configuring the Nutanix connector be sure to enter the URL for the Prism Elements console.

Error you receive if Prism Central is specified in the connector

If Prism Central is used in the connector configuration, you receive the error, “internal error 500.”

Add the Citrix App Layering appliance to the Nutanix allow list

Make sure that the appliance is added to your Nutanix allow list so that it can access the appropriate storage containers, as needed. This can be accomplished through configuring file system- and container-level allow list settings. For details about adding an allow list in Nutanix, refer to the Nutanix documentation.

Required information for Acropolis connector configuration settings

The Nutanix connector configuration lets you define the credentials and container to use for a new configuration.


The fields are case sensitive, so any values that you enter manually must match the case of the object in Nutanix, or the validation fails.

  • Connector Configuration Name - A useful name to help identify this connector configuration.
  • Web Console (Prism) Address - The host name (resolvable via DNS) or IP address of the Prism Web Console. This address is the same one that you use to access the Nutanix Prism Web Console.
  • User Name/Password - Credentials that are used when interacting with the Nutanix system. The specified user must have sufficient privileges for the following operations:
    • VM operations:
      • clone
      • delete
      • power on/off
      • attach virtual disks
    • Image operations:
      • create
      • update (aka upload)
      • delete
    • Virtual disks:
      • create
      • attach to VMs
  • Ignore Certificate Errors - Lets you use SSL encryption for the API connection traffic between the Connector and Nutanix Acropolis. This field is cleared by default.

  • Virtual Machine Template (recommended) - Virtual Machine Template that can be used to clone a VM with the hardware settings for Nutanix, including memory, CPUs, and video settings. You can specify the host, datastore, and network for configuring the resulting VMs. Since there is no concept of a “template” in Nutanix, these “templates” are actual VMs. The OS version used by the selected “template” must match the OS version that you are using for building layers or publishing layered images. The template must not have any disks attached, and must have at least one network card attached. If it does not, you see an error when trying to validate or save the configuration.

  • Storage Container - Lets you select the storage container for the images (virtual disks, VHDs) that are uploaded, and the resulting virtual disks that are created from those images. When creating app layers and OS layer versions, mount the storage container as an NFS mount point.

    Configure the allow list using the Nutanix web console or Nutanix CLI tools. Set the allow list to the cluster and to each and every storage container on the cluster, even the ones you are not using.

    Note: If the appliance is not allow-listed for the selected storage container, the validation phase fails, and the error is indicated with the storage container selection.

  • Layer Disk Cache Size in GB (optional) - Specifies the size of the cache allowed for each layer.

How Virtual Machines are Organized

Nutanix does not provide a mechanism for organizing virtual machines. Because of this, it may be difficult to find the virtual machines created by your appliance when the total number of virtual machines is large. To help you find these VMs, the following naming conventions are used:

  • Packaging Machines (virtual machines created during the process of creating an App Layer or OS Version)
    • The virtual machine name starts with the layer name that is being created/modified
    • The virtual machine names end with the following text: (Packaging Machine)
  • Layered Image Virtual Machines (virtual machines created as a result of publishing a layered image)
    • The virtual machine name starts with the image name that was published
    • The virtual machine name ends with the following text: (Published Image)

When viewing virtual machines through the Nutanix web console, you can search for virtual machines by filtering on:

  • “Citrix App Layering” to find all virtual machines created by the App Layering service.
  • “Citrix App Layering Packaging Machine” to find all virtual machines created for layer management jobs.
  • “Citrix App Layering Published Image” to find all virtual machines created to publish a layered image.
  • Image name or layer name to find virtual machines related to a specific layered image publishing job or App or OS creation.

Virtual Machine Network Connectivity

The virtual network settings of the source template specified in the Nutanix AHV connector configuration will be carried over when creating any VMs through the Nutanix Acropolis Hypervisor (AHV) Connector. There is no option in the Connector Configuration UI to override the network settings.

Create a connector configuration

To enter values:

  • The first three Connector fields must be entered manually. Once the credentials in those fields are validated, you can select values for the remaining fields from the drop-down menus.
  • To enter values manually, click to put the cursor in the field and type the value, making sure that the case matches the value in Acropolis.
  • To select a value from a drop-down list, click once to put the cursor in the field, and a second time to display the list of possible values.

To add a connector configuration

  1. Log into the management console as administrator.
  2. Select the Connectors > Add connector configuration.
  3. Select Nutanix from the connector Type drop-down menu and click New. This opens the connector configuration.
  4. Enter the configuration Name, and the Acropolis Address, User Name, and Password. For guidance, see the above field definitions.
  5. Click the CHECK CREDENTIALS button below the Acropolis Configuration fields. The Virtual Machine Clone Settings field is then enabled.
  6. Select the Virtual Machine Template.
  7. Select the Storage Repository and click the TEST button to verify that the appliance can access the container specified using the credentials supplied.
  8. Click Save. Verify that the new connector configuration is listed on the Connectors page.

Script configuration (Advanced feature, Optional)

When creating a new connector configuration, you can configure an optional Powershell script to run on any Windows machine running the App Layering Agent. These scripts must be stored on the same machine that the Agent is installed on, and will only be run after a successful deployment of a Layered Image.

Some preset variables are available to enable scripts to be reusable with different template images and different connector configurations. These variables will also contain information needed to identify the virtual machine created as part of the published Layered Image in Acropolis.

Execution of these scripts will not affect the outcome of the publish job, and progress of commands executed in the script will not be visible. The Acropolis connector logs will contain the output of the executed script.

Configure a Script (optional)

If you want a script to run each time a layered image is published, complete these steps using the values described in the sections that follow.

  1. Complete and save the connector configuration as described above.


    Before selecting Script Configuration page, you must save (or discard) any edits to the Connector Configuration settings,

  2. If the Navigation menu on the left is not open, select it and click Script Configuration to open the Script Path page.
  3. Complete the required fields using the values detailed here, and click Save.

Script Configuration fields

  • Enable script- Select this check box to enable the remaining fields. This allows you to enter a script that will be executed each time a layered image is published.
  • Script Agent- The agent machine where the scripts will be located and executed from.
  • Username (optional)- The username to impersonate when running the script. This can be used to ensure the script runs in the context of a user that has the needed rights/permissions to perform the operations in the script.
  • Password (optional)- The password for the specified username.
  • Script Path- A full path and filename on the agent machine where the script file resides.

Other Script Configuration values

When the script is executed the following variables will be set and can be used in the powershell script:

Value Applies to connector types: Value determined by which code: Description
connectorCfgName Common Common This is the name of the connector configuration that the script configuration is associated with.
imageName Common Common This is the name of the layered image template that was used to build/publish the layered image.
osType Common Common This is the OS type of the layered image that was published. It can be one of the following values: Windows10; Windows1064; Windows7; Windows7 64-bit; Windows2016 64-bit; Windows2012 64-bit; Windows2008 64-bit
virtualInfrastructureServer Common Nutanix AHV The Nutanix AHV (Prism Server) specified in the connector configuration.
vmId Common Nutanix AHV The virtual machine UUID (same as vmUuid).
vmName Common Nutanix AHV The name of the virtual machine that was created.
vmNetwork Common Nutanix AHV The name of the virtual network that the main NIC of the virtual machine is connected to.
vmNetworkId Common Nutanix AHV The UUID of the virtual network that the main NIC of the virtual machine is connected to.
vmNetworkMAC Common Nutanix AHV The MAC address of the main NIC that is connected to the virtual network specified in vmNetwork and vmNetworkId.
vmUuid Common Nutanix AHV The virtual machine UUID (same as vmId).

The virtual machine UUID (same as vmId).

Definition Scope - Defines whether the scripts variable is set for all Connector types or whether it is specific to a particular Connector type.

Value Source - Defines whether the variable value is determined by common code or by Connector-specific code.

Nutanix AHV (Acropolis)