Deploying manual desktops for Linux involve several steps. If you plan to deploy more than a few desktops, you can automate some of the steps by using PowerCLI scripts.

For some operations, you can choose to have either PowerCLI or SSH execute the commands on the Linux machine. The following table describes the differences between the two approaches.

PowerCLI SSH
No need to install additional tools.
  • For Ubuntu, you need to install the SSH server with the command sudo apt-get install openssh-server. For RHEL and CentOS, openssh-server is installed by default but you need to ensure that the firewall settings allow ssh.
  • Need to download the SSH client applications pscp.exe and plink.exe and put them in the same folder as the PowerCLI scripts.
Uploading files and command execution are slower. Uploading files and command execution are faster.
Need to supply the ESXi host's administrator credentials. No need to supply the ESXi host's administrator credentials.
Cannot handle special characters in the administrator's password when running the script to install Horizon Agent or the AD user's password when running the script to join the domain. Can handle special characters in the administrator's password when running the script to install Horizon Agent or the AD user's password when running the script to join the domain.
Note: Both PowerCLI-based and SSH-based scripts can handle special characters in the passwords for the vCenter Server administrator and the Linux administrator. PowerCLI-based scripts can also handle special characters in the ESXi host administrator's password. In all these cases, an escape character is not necessary.

For more information about vSphere PowerCLI, see https://www.vmware.com/support/developer/PowerCLI.

The process of bulk deploying a pool of Linux desktops involves the following steps:

  1. Create a virtual machine template and install Horizon Agent on the virtual machine.

    See Create a Virtual Machine Template for Cloning Linux Desktop Machines.

  2. Create a guest customization specification.

    See "Create a Customization Specification for Linux in the vSphere Web Client" in the vSphere Virtual Machine Administration document. When you create the specification, make sure that you specify the following settings correctly.

    Setting Value
    Target Virtual Machine OS Linux
    Computer Name Use the virtual machine name.
    Domain Specify the domain of the Horizon 7 environment.
    Network Settings Use standard network settings.
    Primary DNS Specify a valid address.
    Note: For more information on Guest OS Customization Support Matrix, see http://partnerweb.vmware.com/programs/guestOS/guest-os-customization-matrix.pdf.
  3. Clone virtual machines.

    See Sample Script to Clone Linux Virtual Machines.

  4. Join the cloned VMs to the Active Directory (AD) domain if you are using the winbind solution. You can run the domain join command with example scripts below or use option RunOnceScript in /etc/vmware/viewagent-custom.conf, configured in the template virtual machine.

    See Sample Script to Join Cloned Virtual Machines to AD Domain or Sample Script to Join Cloned Virtual Machines to AD Domain Using SSH.

  5. Update configuration options in virtual machines.

    See Sample Script to Upload Configuration Files to Linux Virtual Machines or Sample Script to Upload Configuration Files to Linux Virtual Machines Using SSH.

  6. Create a desktop pool.

    See Create a Manual Desktop Pool for Linux.

For a sample script that performs operations such as powering on, shutting down, restarting, or deleting virtual machines, see Sample Script to Perform Operations on Linux Virtual Machines. This script can delete virtual machines from vCenter Server.