Setting Up Horizon 7 for Linux Desktops Modified for Horizon 7 7.3.2 VMware Horizon 7 7.
Setting Up Horizon 7 for Linux Desktops You can find the most up-to-date technical documentation on the VMware website at: https://docs.vmware.com/ If you have comments about this documentation, submit your feedback to docfeedback@vmware.com VMware, Inc. 3401 Hillview Ave. Palo Alto, CA 94304 www.vmware.com Copyright © 2016, 2017 VMware, Inc. All rights reserved. Copyright and trademark information. VMware, Inc.
Contents Setting Up Horizon 7 for Linux Desktops 5 1 Features and System Requirements 6 Features of Horizon Linux Desktops 6 Overview of Configuration Steps for Horizon 7 for Linux Desktops System Requirements for Horizon 7 for Linux 11 12 2 Preparing a Linux Virtual Machine for Desktop Deployment 25 Create a Virtual Machine and Install Linux 25 Prepare a Linux Machine for Remote Desktop Deployment Install Dependency Packages for Horizon Agent 26 28 3 Setting Up Active Directory Integration for
Setting Up Horizon 7 for Linux Desktops 8 Bulk Deployment of Horizon 7 for Manual Desktop Pools 74 Overview of Bulk Deployment of Linux Desktops Overview of Bulk Upgrade of Linux Desktops 74 76 Create a Virtual Machine Template for Cloning Linux Desktop Machines Input File for the Sample PowerCLI Scripts to Deploy Linux Desktops Sample Script to Clone Linux Virtual Machines 77 79 79 Sample Script to Join Cloned Virtual Machines to AD Domain 83 Sample Script to Join Cloned Virtual Machines to AD Do
Setting Up Horizon 7 for Linux Desktops The Setting Up Horizon 7 for Linux Desktops document provides information about setting up a Linux ® virtual machine for use as a VMware Horizon 7 desktop, including preparing the Linux guest operating system, installing Horizon Agent on the virtual machine, and configuring the machine in View Administrator for use in a Horizon 7 deployment.
Features and System Requirements 1 With Horizon 6 or later, users can connect to remote desktops that run the Linux operating system. This section includes the following topics: n Features of Horizon Linux Desktops n Overview of Configuration Steps for Horizon 7 for Linux Desktops n System Requirements for Horizon 7 for Linux Features of Horizon Linux Desktops Horizon 7 version 7.3 introduces several new features for Linux desktops.
Setting Up Horizon 7 for Linux Desktops n Unmanaged Virtual Machine - Machine source of other sources. An unmanaged virtual machine is only supported when the upgrade is from an unmanaged virtual machine deployment. Note To ensure the best possible performance, do not use an unmanaged virtual machine. Multiple Monitors n vDGA/vGPU desktop supports a maximum resolution of 2560x1600 on four monitors. n 2D/vSGA desktop on VMware vSphere 6.
Setting Up Horizon 7 for Linux Desktops n vDGA is supported on RHEL 6 Workstation x64 with NVIDIA GRID K1 or K2 graphics cards. n vGPU is supported on RHEL 6 Workstation x64 with NVIDIA Maxwell M60 graphics cards. n vGPU is supported on RHEL 7 Workstation x64 with NVIDIA Maxwell M60 graphics cards. n vGPU is supported on RHEL 6 Workstation x64 with NVIDIA M6 graphics cards. n vGPU is supported on RHEL 7 Workstation x64 with NVIDIA M6 graphics cards.
Setting Up Horizon 7 for Linux Desktops Audio-out Audio output redirection is supported. This feature is enabled by default. To disable this feature, you must set the RemoteDisplay.allowAudio option to false. Beginning with Horizon 7 version 7.2 release, VMWare Horizon HTML Access accessed using Chrome and Firefox browsers provides audio-out support for Linux desktops. Client Drive Redirection The Client Drive Redirection (CDR) feature is available beginning with the Horizon 7 version 7.2 release.
Setting Up Horizon 7 for Linux Desktops FIPS 140-2 Mode The Federal Information Processing Standard (FIPS) 140-2 mode support, although not yet validated with the NIST Cryptographic Module Validation Program (CMVP), is available beginning with Horizon 7 version 7.2. The Horizon 7 Agent for Linux implements cryptographic modules that are designed for FIPS 140-2 compliance. These modules were validated in operational environments listed in CMVP certificate #2839 and #2866, and were ported to this platform.
Setting Up Horizon 7 for Linux Desktops Linux desktops and desktop pools have the following limitations: n Virtual printing, location-based printing, and Real-Time Video are not supported. Note When a security server is used, port 22443 must be open in the internal firewall to allow traffic between the security server and the Linux desktop.
Setting Up Horizon 7 for Linux Desktops 4 Configure the Linux guest operating system to authenticate with Active Directory. This step is implemented with 3rd-party software, based on the requirements in your environment, and is not described in this guide. 5 Configure 3D capabilities on your ESXi hosts and the Linux virtual machine. Follow the procedures for the 3D feature you intend to install. n See Configure Supported RHEL Distributions for vGPU. n See Configure RHEL 6 for vDGA.
Setting Up Horizon 7 for Linux Desktops Table 1‑1. Supported Linux Operating Systems for View Agent (Continued) Linux Distribution Architecture SLED 11 SP3/SP4, SLED 12 SP1/SP2 x64 SLES 12 SP1/SP2 x64 Note Linux agent has dependency packages on some Linux distributions. See Install Dependency Packages for Horizon Agent for more information.
Setting Up Horizon 7 for Linux Desktops Table 1‑3. TCP Ports Used by Linux Virtual Machines Source Port Target Port Protocol Description Horizon Client * Linux Agent 22443 TCP Blast if Blast Security Gateway is not used Security Server, View Connection Server, or Access Point appliance * Linux Agent 22443 TCP Blast if Blast Security Gateway is used View Agent * View Connection Server 4001, 4002 TCP JMS SSL traffic.
Setting Up Horizon 7 for Linux Desktops Table 1‑5. Supported Desktop Environments (Continued) Linux Distribution Default Desktop Environment Desktop Environments Supported by Horizon 7 for Linux Desktops SLES 12 SP1/SP2 Gnome Gnome NeoKylin 6 Update 1 Mate Mate To change the default desktop environment used on one of the supported Linux distributions, you must use the following steps and commands appropriate for your Linux desktop.
Setting Up Horizon 7 for Linux Desktops Table 1‑6. Commands to Install Desktop Environments (Continued) Linux Distribution 3 New Default Desktop Environment Commands to Change the Default Desktop Environment Ubuntu 16.04 Gnome Flashback (Metacity) # apt install gnome-session-flashback Ubuntu 14.04 Gnome Fallback (Metacity) # apt-get install gnome-session-fallback To begin using the new default desktop environment, restart the desktop.
Setting Up Horizon 7 for Linux Desktops n Select UDP if the network condition is poor, such as in a wide area network (WAN) environment with packet loss and time delay. Use a network analyzer tool, such as Wireshark, to determine whether VMware Blast Extreme is using TCP or UDP. Use the following set of steps, which use Wireshark, as a reference example. 1 Download and install Wireshark on your Linux VM. For RHEL/CentOS 6: sudo yum install wireshark For Ubuntu 14.04/16.
Setting Up Horizon 7 for Linux Desktops Table 1‑8. Default Kernel Versions Linux Distribution Default Kernel Version RHEL/CentOS 6.9 2.6.32-696.el6.x86_64 SUSE 12 SP2 4.4.21-69-default RHEL/CentOS 7.3 3.10.0-514.el7.x86_64 Ubuntu 14.04 3.13.0-24-generic Ubuntu 16.04 4.4.0-21-generic If your Linux system uses a kernel version that is different from the default versions included with the Horizon for Linux installer, you must download the USB VHCI source code from https://sourceforge.
Setting Up Horizon 7 for Linux Desktops Table 1‑9. Compile and Install USB VHCI Driver Linux Distribution Steps to Compile and Install USB VHCI Driver Ubuntu 14.04 Compile and install the VHCI drivers. Ubuntu 16.04 RHEL/CentOS 6.9 # # # # 1 tar -xzvf vhci-hcd-1.15.tar.gz cd vhci-hcd-1.15 patch -p1 < full-path_to_patch-file make clean && make && make install Install the dependency packages.
Setting Up Horizon 7 for Linux Desktops Table 1‑9. Compile and Install USB VHCI Driver (Continued) Linux Distribution Steps to Compile and Install USB VHCI Driver b For SUSE 12, install the kernel-devel, kernel-default-devel, kernel-macros, and the patch packages. # zypper install --oldpackage kernel-devel- \ kernel-default-devel- kernel-macros- patch For example: # zypper install --oldpackage kernel-devel-4.4.21-90.
Setting Up Horizon 7 for Linux Desktops 5 Create a file named dkms.conf and place it in the /usr/src/usb-vhci-hcd-1.15 directory. # touch /usr/src/usb-vhci-hcd-1.15/dkms.conf 6 Add the following contents to the dkms.conf file. PACKAGE_NAME="usb-vhci-hcd PACKAGE_VERSION=1.
Setting Up Horizon 7 for Linux Desktops n 3D Memory settings n vCPU and virtual memory settings for performance requirement Video Memory (vRAM) Settings When you create a Linux virtual machine in vSphere Client, configure the vRAM size as shown in Table 1‑10. Set the vRAM size that is recommended for the number and resolution of the monitors that you configure for the virtual machine. Table 1‑10.
Setting Up Horizon 7 for Linux Desktops Configuration Parameters To display the Linux remote desktop on multiple monitors, you must set certain configuration parameters for the virtual machine. The general steps to set a configuration parameter for a virtual machine are as follows: 1 Power off the virtual machine. 2 In the vSphere Web Client, right-click the virtual machine and select Edit Settings. 3 Click the VM Options tab and click Advanced. 4 Click Edit Configuration and then Add Row.
Setting Up Horizon 7 for Linux Desktops Multiple-monitor connection might require a screen size larger than 4096x4096. To bypass this limitation, use one of the following solutions: n If you have to use VMware Hardware version 11 (HWv11) or later for your virtual machine, add the following line into the virtual machine's VMX configuration file: mks.enable3d = TRUE With this solution, the Linux operating system can report 3D capabilities to software applications, such as Chrome.
Preparing a Linux Virtual Machine for Desktop Deployment 2 Setting up a Linux desktop involves creating a Linux virtual machine and preparing the operating system for remote desktop deployment.
Setting Up Horizon 7 for Linux Desktops 2 Configure custom configuration options. a Right-click the virtual machine and click Edit Settings. b Specify the number of vCPUs and the vMemory size. For recommended values, follow the guidelines in the installation guide for your Linux distribution. For example, Ubuntu 12.04 recommends configuring 2048 MB for vMemory and 2 vCPUs. c Select Video card and specify the number of displays and the total video memory (vRAM).
Setting Up Horizon 7 for Linux Desktops n Familiarize yourself with the steps for mounting and installing VMware Tools on a Linux VM. See "Manually Install or Upgrade VMware Tools in a Linux Virtual Machine" in the vSphere Virtual Machine Administration document. n Familiarize yourself with the steps for configuring your Linux machine to be resolvable through DNS. These steps vary for the different Linux distributions and releases.
Setting Up Horizon 7 for Linux Desktops 9 Configure the Linux machine so that the default runlevel is 5. The runlevel must be 5 for the Linux desktop to work. 10 On an Ubuntu machine that was configured to authenticate with an OpenLDAP server, set the fully qualified domain name on the machine. This step ensures that the information can be displayed correctly in the User field on the Sessions page in View Administrator.
Setting Up Horizon 7 for Linux Desktops Procedure 1 Install the mandatory packages that are not installed or upgraded by default. The installer breaks the installation if any package does not meet the requirement. Table 2‑1. Mandatory Dependency Packages Linux Distribution Packages SLED 11 SP3/SP4 zypper install xorg-x11-server Upgrade xorg-x11-server to a version later than 7.4.27.111.1 SLES 12 SP1/SLED 12 SP1 1 Register SUSE 12 to enable the SUSE repositories.
Setting Up Active Directory Integration for Linux Desktops 3 View uses the existing Microsoft Active Directory (AD) infrastructure for user authentication and management. You can integrate the Linux desktops with Active Directory so that users can log in to a Linux desktop using their Active Directory user account.
Setting Up Horizon 7 for Linux Desktops 2 Configure the SSSD in the Linux desktop to directly use LDAP authentication against the Microsoft Active Directory. The Winbind Domain Join solution involves the following steps: 1 Install the Winbind, Samba, and Kerberos packages on the Linux desktop. 2 Join the Linux desktop to the Microsoft Active Directory.
Setting Up Horizon 7 for Linux Desktops n For Winbind, add the following statement to the configuration file /etc/samba/smb.conf. winbind use default domain = true If users must specify the domain name to log in, you must set the SSOUserFormat option on the Linux desktop. For more information, see Setting Options in Configuration Files on a Linux Desktop. Be aware that SSO always uses the short domain name in upper case. For example, if the domain is mydomain.
Setting Up Horizon 7 for Linux Desktops --disable-libudev #make #make install #service pcscd start For Winbind, add the following statement to the configuration file /etc/samba/smb.conf. winbind use default domain = true When you install theHorizon Agent, you must first disable SELinux or enable permissive mode for SELinux. You must also specifically select the smart card redirection component because the component is not selected by default. For more information, see install_viewagent.
Setting Up Graphics for Linux Desktops 4 You can configure the currently supported RHEL distributions to take advantage of NVIDIA capabilities on ESXi host or on a guest operating system. VM Clone Requirements for Setting Up 3D Graphics You must consider the following requirements for VM Clone before setting up 3D graphics. n For vGPU and vSGA, complete the graphic setup in the base VM. Clone the VMs. The graphic settings work for cloned VMs and no further settings are required.
Setting Up Horizon 7 for Linux Desktops Install the VIB for the NVIDIA GRID vGPU Graphics Card on the ESXi Host You must download and install the VIB for your NVIDIA GRID graphics card on the ESXi 6.0 U1 or later host. NVIDIA provides a vGPU software package that includes a vGPU Manager, which you install on the ESXi host in this procedure, and a Linux Display Driver, which you will install on the Linux virtual machine in a later procedure. Prerequisites n Verify that vSphere 6.
Setting Up Horizon 7 for Linux Desktops 8 Reboot or update the ESXi host. u For an installed ESXi host, reboot the host. u For a stateless ESXI host, take the following steps to update the host. (These steps also work on an installed host.) Update vmkdevmgr: # kill -HUP $(cat /var/run/vmware/vmkdevmgr.pid) Wait for the update to complete: # localcli --plugin-dir /usr/lib/vmware/esxcli/int deviceInternal bind This is a new requirement with the NVIDIA 352.* host driver: # /etc/init.
Setting Up Horizon 7 for Linux Desktops 7 Power on the virtual machine. NVIDIA Virtual GPU Types With the GPU Profiles setting on the Virtual Hardware page in vSphere Web Client, you can select a virtual GPU type that provides specific capabilities on the physical NVIDIA GPU on the ESXi host. On Linux virtual machines, NVIDIA GRID vGPU is supported on NVIDIA Maxwell M60 GPUs or NVIDIA M6 GPUs. Table 4‑1.
Setting Up Horizon 7 for Linux Desktops Also verify that a shared PCI device was added to the virtual machine. See Configure a Shared PCI Device for vGPU on the Linux Virtual Machine Procedure 1 Disable and blacklist the default NVIDIA Nouveau driver. a Edit the grub.conf or grub file. For RHEL 6, the file is /boot/grub/grub.conf. For RHEL 7, the file is /etc/default/grub. RHEL Version 6 Command sudo vi /boot/grub/grub.
Setting Up Horizon 7 for Linux Desktops 8 Start the NVIDIA GRID vGPU installer. sudo ./NVIDIA-Linux-x86_64-version-grid.run 9 Accept the NVIDIA software license agreement and select Yes to automatically update the X configuration settings. What to do next Install Horizon Agent on the Linux virtual machine. See Install Horizon Agent on a Linux Virtual Machine. Create a desktop pool that contains the configured Linux virtual machines. See Create a Manual Desktop Pool for Linux.
Setting Up Horizon 7 for Linux Desktops After verifying the installation of NVIDIA display driver, perform the following tasks for installation to work correctly. n If you upgrade the Linux kernel, Horizon Agent might not be able to communicate with View Connection Server. To resolve the problem, reinstall the NVIDIA driver. n Set the NVIDIA GRID licensing in the Linux VM. See NVIDIA documentation for more information. Linux desktop will not work correctly if licensing is not set.
Setting Up Horizon 7 for Linux Desktops Add a vDGA Pass-Through Device to a RHEL 6 Virtual Machine To configure a RHEL 6 virtual machine to use vDGA, you must add the PCI device to the virtual machine. With this step, the physical device on the ESXi host can be passed through for use on the virtual machine. Prerequisites n Verify that the Linux virtual machine is prepared for use as a desktop. See Create a Virtual Machine and Install Linux and Prepare a Linux Machine for Remote Desktop Deployment.
Setting Up Horizon 7 for Linux Desktops Procedure 1 Disable and blacklist the default NVIDIA Nouveau driver. a Edit the grub.conf file. For RHEL 6, the file is /boot/grub/grub.conf. RHEL Version Command 6 sudo vi /boot/grub/grub.conf b Add the rdblacklist=nouveau line at the end of the kernel options. c Edit the blacklist.conf file. sudo vi /etc/modprobe.d/blacklist.conf d Add the following line anywhere in the blacklist.conf file. blacklist nouveau 2 Restart the virtual machine.
Setting Up Horizon 7 for Linux Desktops 7 Add an executable flag to the NVIDIA driver package for vDGA. chmod +x NVIDIA-Linux-x86_64-version.run 8 Start the NVIDIA installer. sudo ./NVIDIA-Linux-x86_64-version.run 9 Accept the NVIDIA software license agreement and select Yes to automatically update the X configuration settings. What to do next Install Horizon Agent on the Linux virtual machine. See Install Horizon Agent on a Linux Virtual Machine.
Setting Up Horizon 7 for Linux Desktops 3 In the Linux desktop session, verify that the NVIDIA display driver is installed. Open a terminal window and run the glxinfo | grep NVIDIA command. The NVIDIA driver output is displayed. For example: [root]# glxinfo | grep NVIDIA server glx vendor string: NVIDIA Corporation client glx vendor string: NVIDIA Corporation OpenGL vendor string: NVIDIA Corporation OpenGL version string: 4.5.0 NVIDIA 346.47 OpenGL shading language version string: 4.
Setting Up Horizon 7 for Linux Desktops Procedure 1 Download the VIB for your NVIDIA GRID vGPU graphics card from the NVIDIA Driver Downloads site. Select the appropriate VIB version from the drop-down menus. Option Description Product Type GRID Product Series Select GRID Series. Product Select the version (such as GRID K2) that is installed on the ESXi host. Operating System Select the VMware vSphere ESXi version. 2 Upload the VMware vSphere ESXi Driver for vSGA to the ESXi 6.0 U1 host.
Setting Up Horizon 7 for Linux Desktops Procedure 1 Power off the virtual machine. 2 In vSphere Web Client, select the virtual machine and, under the VM Hardware tab, click Edit Settings. 3 In the Virtual Hardware tab, click Video card to expand the menu settings. 4 Set the Total video memory to 128 MB. 5 For 3D Graphics, select Enable 3D Support. 6 For 3D Renderer, select Hardware from the drop-down menu. 7 For 3D Memory, select a suitable value for your application requirements.
Setting Up Horizon 7 for Linux Desktops If a supported GPU and NVIDIA VIB are not installed correctly, the virtual machine uses the Software Renderer. The vmware.log file displays lines such as those in the following example: 2015-07-06T17:09:26.423Z| vmx| I120: [msg.mks.noGPUResourceFallback] Hardware GPU resources are not available. The virtual machine uses software rendering. 2015-07-06T17:09:26.423Z| vmx| I120: ---------------------------------------2015-07-06T17:09:26.
Installing Horizon Agent 5 You must install Horizon Agent on the Linux desktops so that View Connection Server can communicate with and manage the desktops.
Setting Up Horizon 7 for Linux Desktops n Familiarize yourself with the Horizon Agent installer script for Linux. See install_viewagent.sh Command-Line Options. Procedure 1 Download the Horizon Agent for Linux installer file from the VMware download site at https://my.vmware.com/web/vmware/downloads. Under Desktop & End-User Computing, select the VMware Horizon 7 download, which includes the Horizon Agent for Linux installer. The installer filename is VMware-horizonagent-linux-x86_64-y.y.y-xxxxxxx.tar.
Setting Up Horizon 7 for Linux Desktops Table 5‑1. install_viewagent.sh Optional but Required Parameter Optional Parameter (Required Information) -A yes |no Description Accept or refuse the End User License Agreement (EULA) and Federal Information Processing Standards (FIPS) statement. You must specify yes for the install to proceed. Table 5‑2. install_viewagent.sh Optional Parameters Optional Parameters Description -a yes|no Install or bypass audio input redirection support. Default is yes.
Setting Up Horizon 7 for Linux Desktops Table 5‑3. Examples of install_viewagent.sh Parameters Condition Fresh Installation Examples sudo ./install_viewagent.sh -A yes Fresh installation always requires a new desktop pool creation. Upgrade from an unmanaged virtual machine and retain the unmanaged virtual machine style Upgrade from an unmanaged virtual machine deployment and convert to a managed virtual machine style. The upgrade requires new desktop pool creation on broker sudo ./install_viewagent.
Setting Up Horizon 7 for Linux Desktops Upgrading the Horizon Agent on a Linux Virtual Machine You can upgrade Horizon Agent on a Linux virtual machine by installing the latest version of Horizon Agent. Unmanaged virtual machine: The agent installer registers the virtual machine to the broker which requires broker admin information. The Desktop Pool Creation wizard uses Other Sources in the Machine Source page to select the registered virtual machine.
Setting Up Horizon 7 for Linux Desktops Table 5‑4. Optional Parameters for Upgrading the Horizon Agent (Continued) Parameter Description -F yes|no Install or bypass CDR support. Default is yes. -M yes|no Upgrade the Linux Agent to managed|unmanaged agent. The default value is yes. -S yes|no Install or bypass SingleSignOn (SSO) support. Default is yes. -U yes|no Install or Bypass USB support. Default is no.
Setting Up Horizon 7 for Linux Desktops 4 Run the install_viewagent.sh script to upgrade unmanaged virtual machines using one of the following deployment scenarios: Option Upgrade an unmanaged virtual machine deployment and retain the unmanaged virtual machine deployment Upgrade an unmanaged virtual machine deployment and change it to managed virtual machine deployment Upgrade a managed virtual machine deployment Description sudo ./install_viewagent.
Configuration Options for Linux Desktops 6 You can configure various options to customize the user experience using configuration files.
Setting Up Horizon 7 for Linux Desktops Configuration Options in /etc/vmware/config VMwareBlastServer and its related plug-ins use the configuration file /etc/vmware/config. Note The following table includes description for each agent-enforced policy setting for USB in the Horizon Agent configuration file. Horizon Agent uses the settings to decide if a USB can be forwarded to the host machine.
Setting Up Horizon 7 for Linux Desktops Table 6‑1. Configuration Options in /etc/vmware/config (Continued) Option Value/Format Default Description cdrserver.sharedFolders file_path1,R;fi le-path2,; file_path3,R; . .. undefined Specify one or more file paths to the folders that the client can share with the Linux desktop. For example: cdrserver.permissions R RW n For a Windows client: C:\spreadsheets,;D:\ebooks,R n For a non-Windows client: /tmp/spreadsheets;/tmp/ebooks,;/hom e/finance,R Use
Setting Up Horizon 7 for Linux Desktops Table 6‑1. Configuration Options in /etc/vmware/config (Continued) Option Value/Format Default Description viewusb.SplitVidPid {m|o}: vidxxxx_pidyyyy([exintf:zz [;exintf:ww]]) [;...] undefined Set this option to treat the components of a composite USB device specified by Vendor and Product IDs as separate devices. The format of the setting is vid-xxxx_pid-yyyy(exintf:zz[;exintf:ww]).
Setting Up Horizon 7 for Linux Desktops Table 6‑1. Configuration Options in /etc/vmware/config (Continued) Option Value/Format Default Description viewusb.AllowVideo {m|o}: {true|false} undefined, which equates to true Use this option to allow or disallow video devices to be redirected. viewusb.DisableRemoteConfig {m|o}: {true|false} undefined, which equates to false Set this option to disable or enable the use of Horizon Agent settings when performing USB device filtering. viewusb.
Setting Up Horizon 7 for Linux Desktops Table 6‑1. Configuration Options in /etc/vmware/config (Continued) Option Value/Format Default Description viewusb.IncludeFamily {m| o}:family_name_ 1[;family_name_ 2]... undefined Set this option to include families of devices that can be redirected. {m|o}:busx1[/y1].../ port-z1[;busx2[/y2].../port z2;...] undefined {m|o}:vid-xxx1_ pid-yyy1[;vidxxx2_pidyyy2;...] undefined viewusb.IncludePath viewusb.
Setting Up Horizon 7 for Linux Desktops Table 6‑1. Configuration Options in /etc/vmware/config (Continued) Option Value/Format Default Description RemoteDisplay.qpminH264 available range of values: 0-51 10 Use this option to set the H264maxQP quantization parameter, which specifies the lowest image quality for the remote display configured to use H.264 encoding. Set the value to less than the value set for RemoteDisplay.qpmaxH264. RemoteDisplay.
Setting Up Horizon 7 for Linux Desktops Table 6‑2. Configuration Options in /etc/vmware/viewagent-custom.conf (Continued) Option Value Default Description SSOUserFormat A text string [username] Use this option to specify the format of the login name for single sign-on. The default is the user name only. Set this option if the domain name is also required. Typically, the login name is the domain name plus a special character followed by the user name.
Setting Up Horizon 7 for Linux Desktops Table 6‑2. Configuration Options in /etc/vmware/viewagent-custom.conf (Continued) Option Value SSODesktopType UseMATE Default or UseGnomeFlashback or UseKdePlasma or UseGnomeClassic Description This option specifies the desktop environment to use, instead of the default desktop environment, when SSO is enabled. You must ensure that the chosen desktop environment is installed on your desktop first before specifying to use it.
Setting Up Horizon 7 for Linux Desktops Example Blast Settings for Linux Desktops You can adjust the image quality of your remote desktop display to improve the user experience. Improving image quality is helpful in maintaining a consistent user experience when there is a bad network connection. Example VMware Blast Extreme Protocol Settings VMwareBlastServer and its related plug-ins use the configuration file /etc/vmware/config. Table 6‑3.
Setting Up Horizon 7 for Linux Desktops In the previous example, the comma "," placed after ebooks and spreadsheets is mandatory for correct option parsing. Any "R" included in the cdrserver.sharedFoldersoption would impact all the folders listed in that setting. In the following example, the ebooks and spreadsheets folders are both read-only even if the R value is only placed after /home/jsmith folder path. cdrserver.sharedFolders=d:\ebooks,;c:\spreadsheets,;/home/jsmith,R Suppress the vSphere Console Di
Create and Manage Linux Desktop Pools 7 To configure Linux virtual machines for use as remote desktops, you must create a desktop pool with Linux virtual machines. Horizon for Linux supports the following desktop pool types: n Manual desktop pool with vCenter virtual machine n Automated full-clone desktop pool To create a manual desktop pool with a vCenter virtual machine, you must install the Horizon agent on all virtual machines.
Setting Up Horizon 7 for Linux Desktops 2 Select Manual Desktop Pool. 3 On the User assignment page, select either dedicated or floating user assignments for the machines in the desktop pool and click Next. 4 On the Machine Source page, select vCenter virtual machinesand click Next. 5 On the vCenter Server page, select the appropriate vCenter server and click Next. 6 Enter the desktop pool id. 7 On the Desktop Pool Settings page, set the following options.
Setting Up Horizon 7 for Linux Desktops Support for Remote Settings Table 7‑1.
Setting Up Horizon 7 for Linux Desktops Create an Automated Full-Clone Desktop Pool for Linux You can create an automated full-clone desktop pool for Linux virtual machines. After you create the automated full-clone desktop pool, you can use the Linux virtual machines as remote desktops in a Horizon 7 deployment. Prerequisites n Verify that Horizon Agent is installed on the Linux guest operating systems. See Install Horizon Agent on a Linux Virtual Machine.
Setting Up Horizon 7 for Linux Desktops 7 On the Desktop Pool Settings page, set the following options and click Next. Option Description Default display protocol VMware Blast Allow users to choose protocol No 3D Renderer Manage using vSphere Client for 2D, vSGA, or vDGA desktop and NVIDIA GRID vGPU for vGPU desktop Note The pool settings are mandatory. Else, you might fail to connect to the desktop and get a protocol error or a black screen.
Setting Up Horizon 7 for Linux Desktops Broker PowerCLI Commands The View PowerCLI cmdlets which are to perform various administration tasks on Connection Server and Windows desktop, can also work for Linux desktop. Create a Manual Desktop Pool Add-ManualPool -DefaultProtocol Blast -AllowProtocolOverride $false -threedRender usevc|vgpu [more parameters] -Pool_id For Linux Desktop the following options and values are mandatory.
Setting Up Horizon 7 for Linux Desktops -ResourcePoolPath ` -dataStorePaths ` -customizationSpecName ` [more parameters] For Linux Desktop the following options and values are mandatory. n DefaultProtocol Blast n AllowProtocolOverride $false n threedRender usevc|vgpu. For vGPU desktop, use -threedRender vgpu and for 2D/vSGA desktop threedRender usevc.
Setting Up Horizon 7 for Linux Desktops n Remove myuser user from LinuxVM-01 VM which is in a dedicated desktop pool. Remove-UserOwnership -Machine_id (Get-DesktopVM -Name "LinuxVM-01").machine_id Logoff Desktop Connection n Logoff from the desktop session of myuser. Get-RemoteSession -Username "mydomain.org\myuser" | Send-SessionLogoff For more information on broker PowerCLI cmdlet, see Using View PowerCLI in View Integration. VMware, Inc.
Bulk Deployment of Horizon 7 for Manual Desktop Pools 8 With View Administrator, you can create a pool of Windows, but not Linux, desktop machines automatically. However, you can develop scripts that automate the deployment of a pool of Linux desktop machines. The sample scripts that are provided are for illustration purposes only. VMware does not accept any responsibility for issues that might arise when you use the sample scripts.
Setting Up Horizon 7 for Linux Desktops PowerCLI SSH No need to install additional tools. n For Ubuntu, you need to install the SSH server with the command sudo aptget install openssh-server. For RHEL and CentOS, openssh-server is installed by default but you need to ensure that the firewall settings allow ssh. n 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.
Setting Up Horizon 7 for Linux Desktops 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.
Setting Up Horizon 7 for Linux Desktops Method Description In the template virtual machine, install or upgrade the new Horizon Agent and create a snapshot. n The user data and profile are lost since the existing virtual machines are deleted, unless the user data and profile are located on the share server such as NFS server. n After the virtual machine replacement, the state of the virtual machine on View Administrator might be missing. You must restart the broker service to fix it.
Setting Up Horizon 7 for Linux Desktops 2 Configure custom configuration options. a Right-click the virtual machine and click Edit Settings. b Specify the number of vCPUs and the vMemory size. For recommended values, follow the guidelines in the installation guide for your Linux distribution. For example, Ubuntu 12.04 recommends configuring 2048 MB for vMemory and 2 vCPUs. c Select Video card and specify the number of displays and the total video memory (vRAM).
Setting Up Horizon 7 for Linux Desktops Input File for the Sample PowerCLI Scripts to Deploy Linux Desktops The sample PowerCLI scripts to deploy Linux desktops read one input file that contains information about the desktop machines.
Setting Up Horizon 7 for Linux Desktops Whether to disable vSphere VM console n Script Content <# Create Clones from a Master VM The Tool supports creation of Full clone and linked clone from Master VM. The parent VM is required for the linked-clone to work and the parent VMs file cannot be renamed or moved.
Setting Up Horizon 7 for Linux Desktops $vmConfigSpec = New-Object VMware.Vim.VirtualMachineConfigSpec $extra = New-Object VMware.Vim.optionvalue $extra.Key="RemoteDisplay.maxConnections" $extra.Value="0" $vmConfigSpec.extraconfig += $extra $vm = Get-VM $VMToDisableConsole | Get-View $vm.ReconfigVM($vmConfigSpec) } function Delete_VM() { Param($VMToDelete) Write-Host "Deleting VM $VMToDelete" Get-VM $VMToDelete | where { $_.
Setting Up Horizon 7 for Linux Desktops exit } else { Write-Host 'vCenter is connected' } #Read input CSV file $csvData = Import-CSV $csvFile #$csvData = Import-CSV $csvFile header("VMName","Parentvm","CustomSpec","Datastore","Host","FromSnapshot","DeleteIfPresent") foreach ($line in $csvData) { "`n-----------------------------------------------------" $VMName = $line.VMName write-host -ForeGroundColor Yellow "VM: $VMName`n" $destVMName=$line.VMName $srcVM = $line.Parentvm $cSpec = $line.
Setting Up Horizon 7 for Linux Desktops # Get the task object $task = Get-Task | where { $_.
Setting Up Horizon 7 for Linux Desktops Script Input This script reads one input file, which is described in Input File for the Sample PowerCLI Scripts to Deploy Linux Desktops.
Setting Up Horizon 7 for Linux Desktops return $input } #------------------------- Handle input ------------------------"-----------------------------------------------------" $vcAddress = GetInput -prompt "Your vCenter address" -IsPassword $false $vcAdmin = GetInput -prompt "Your vCenter admin user name" -IsPassword $false $vcPassword = GetInput -prompt "Your vCenter admin user password" -IsPassword $true "-----------------------------------------------------" $hostAdmin = GetInput -prompt 'Your ESXi host
Setting Up Horizon 7 for Linux Desktops } Disconnect-VIServer $vcAddress -Confirm:$false exit Script Execution The following messages are from an execution of the script: PowerCLI C:\scripts> .\ClonedVMs_JoinDomain.ps1 -------------------------------------------------Your vCenter address: 10.117.44.
Setting Up Horizon 7 for Linux Desktops n User password for the Linux VM n Login name of an AD user that is authorized to join machines to the domain n Password of the authorized AD user Script Content <# .SYNOPSIS run command "sudo /usr/bin/net ads join" via SSH .DESCRIPTION The tool is to run the command "sudo /usr/bin/net ads join" to join Linux machine to AD via SSH .
Setting Up Horizon 7 for Linux Desktops } } if ($IsPSCP) { if (Test-Path ".\pscp.exe") { write-host -ForeGroundColor Yellow 'SSH client "pscp.exe" found' } else { write-host -ForeGroundColor Red 'SSH client "pscp.exe" not found, please download from its official web site' exit } } } function RunCmdViaSSH { Param($VM_Name, $User, $Password, $Cmd, $returnOutput = $false) $VM= Get-VM $VM_Name $IP = $VM.guest.IPAddress[0] write-host "Run cmd on $VM_Name ($IP)" if($returnOutput) { $command = "echo yes | .\plink
Setting Up Horizon 7 for Linux Desktops "-----------------------------------------------------" $guestUser = GetInput -prompt 'Your VM guest OS user name' -IsPassword $false $guestPassword = GetInput -prompt 'Your VM guest OS user password' -IsPassword $true "-----------------------------------------------------" $adUser = GetInput -prompt 'Type the AD user name to join the AD' -IsPassword $false "" "`nPlease type the AD user password.
Setting Up Horizon 7 for Linux Desktops Script Execution The following messages are from an execution of the script: PowerCLI C:\scripts> .\ClonedVMs_JoinDomain_SSH.ps1 -------------------------------------------------Your vCenter address: 10.117.44.
Setting Up Horizon 7 for Linux Desktops Script Content <# Upload the configuration files config and viewagent-custom.conf to Linux VMs #> #------------------------- Functions ------------------------function GetInput { Param($prompt, $IsPassword = $false) $prompt = $prompt + ": " Write-Host $prompt -NoNewLine [Console]::ForegroundColor = "Blue" if ($IsPassword) { $input = Read-Host -AsSecureString $input = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.
Setting Up Horizon 7 for Linux Desktops write-host -ForeGroundColor Yellow '"config" file found' } else { write-host -ForeGroundColor Yellow '"config" file not found, skip it' } if(Test-Path $customConf_File) { $setCustomConf = $true write-host -ForeGroundColor Yellow '"viewagent-custom.conf" file found' } else { write-host -ForeGroundColor Yellow '"viewagent-custom.
Setting Up Horizon 7 for Linux Desktops { Write-Host "Upload File '$config_File' to '$destFolder' of VM '$VMName' with user '$guestUser'" Copy-VMGuestFile -HostUser $hostAdmin -HostPassword $hostPassword -VM $VMName -GuestUser $guestUser -GuestPassword $guestPassword -Confirm:$false -LocalToGuest -Destination $destFolder Source $config_File $cmd = "sudo mv .
Setting Up Horizon 7 for Linux Desktops Sample Script to Upload Configuration Files to Linux Virtual Machines Using SSH You can customize and use the following sample script to upload the configuration files config and viewagent-custom.conf to multiple Linux virtual machines (VMs). This script uses SSH to run commands on the Linux VMs. To copy and paste the script content without page breaks, use the HTML version of this topic, available from the Horizon 7 documentation page at https://www.vmware.
Setting Up Horizon 7 for Linux Desktops function Check_SSH_Client { Param($IsPlink, $IsPSCP) if ($IsPlink) { if (Test-Path ".\plink.exe") { write-host -ForeGroundColor } else { write-host -ForeGroundColor official web site' exit } } if ($IsPSCP) { if (Test-Path ".\pscp.exe") { write-host -ForeGroundColor } else { write-host -ForeGroundColor official web site' exit } } } Yellow 'SSH client "plink.exe" found' Red 'SSH client "plink.exe" not found, please download from its Yellow 'SSH client "pscp.
Setting Up Horizon 7 for Linux Desktops $VM= Get-VM $VM_Name $IP = $VM.guest.IPAddress[0] $command = "echo yes | .\pscp.
Setting Up Horizon 7 for Linux Desktops $VC_Conn_State = Connect-VIServer $vcAddress -user $vcAdmin -password $vcPassword if([string]::IsNullOrEmpty($VC_Conn_State)) { Write-Host 'Exit since failed to login vCenter' exit } else { Write-Host 'vCenter is connected' } #Read input CSV file $csvData = Import-CSV $csvFile $destFolder = "/home/$guestUser/" #Handle VMs one by one foreach ($line in $csvData) { "`n-----------------------------------------------------" $VMName = $line.
Setting Up Horizon 7 for Linux Desktops Script Execution The following messages are from an execution of the script: PowerCLI C:\scripts> .\UpdateOptionFile.ps1 -------------------------------------------------Please ensure your config file and view-agent.conf file are in current working directory. Your vCenter address: 10.117.44.
Setting Up Horizon 7 for Linux Desktops n Install the Smartcard redirection feature Script Content <# Upload the Linux Agent installer tar ball and re-install #> #----------------------------------------------------Functions-----------------------------------------------------------------function GetInput { Param($prompt, $IsPassword = $false) $prompt = $prompt + ": " Write-Host $prompt -NoNewLine [Console]::ForegroundColor = "Blue" if ($IsPassword) { $input = Read-Host -AsSecureString $input = [Runtime.
Setting Up Horizon 7 for Linux Desktops if (($UpgradeToManagedVM -ne "yes") -AND $UpgradeToManagedVM -ne "no") { write-host -ForeGroundColor Red "You need select 'yes' or 'no'(case sensitive)" exit } $installSmartcard = GetInput -prompt 'Install the Smartcard redirection feature ("yes" or "no")' IsPassword $false if (($installSmartcard -ne "yes") -AND $installSmartcard -ne "no") { write-host -ForeGroundColor Red "You need select 'yes' or 'no'(case sensitive)" exit } "---------------------------------------
Setting Up Horizon 7 for Linux Desktops { Write-Host 'vCenter is connected' } #Read input CSV file $csvData = Import-CSV $csvFile $destFolder = "/home/$guestUser/" #Handle VMs one by one foreach ($line in $csvData) { "`n-----------------------------------------------------" $VMName = $line.
Setting Up Horizon 7 for Linux Desktops Write-Host "Run upgrade cmd in VM '$VMName' with user '$guestUser': $cmd" Invoke-VMScript -HostUser $hostAdmin -HostPassword $hostPassword -VM $VMName -GuestUser $guestUser -GuestPassword $guestPassword -Confirm:$false -ScriptType Bash -ScriptText $cmd $cmd = "sudo shutdown -r +1&" Write-Host "Reboot to apply the View Agent installation" Invoke-VMScript -HostUser $hostAdmin -HostPassword $hostPassword -VM $VMName -GuestUser $guestUser -GuestPassword $guestPassword -C
Setting Up Horizon 7 for Linux Desktops Script Input This script reads one input file, which is described in Input File for the Sample PowerCLI Scripts to Deploy Linux Desktops.
Setting Up Horizon 7 for Linux Desktops } function Check_SSH_Client { Param($IsPlink, $IsPSCP) if ($IsPlink) { if (Test-Path ".\plink.exe") { write-host -ForeGroundColor } else { write-host -ForeGroundColor official web site' exit } } if ($IsPSCP) { if (Test-Path ".\pscp.exe") { write-host -ForeGroundColor } else { write-host -ForeGroundColor official web site' exit } } } Yellow 'SSH client "plink.exe" found' Red 'SSH client "plink.exe" not found, please download from its Yellow 'SSH client "pscp.
Setting Up Horizon 7 for Linux Desktops $VM= Get-VM $VM_Name $IP = $VM.guest.IPAddress[0] $command = "echo yes | .\pscp.
Setting Up Horizon 7 for Linux Desktops if (!(Test-Path $csvFile)) { write-host -ForeGroundColor Red "CSV File not found" exit } #----------------------------------------------------Functions-----------------------------------------------------------------function GetSourceInstallerMD5() { $agentInstallerPath = Convert-Path $agentInstaller; $md5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider; $md5HashWithFormat = [System.BitConverter]::ToString($md5.ComputeHash([System.IO.
Setting Up Horizon 7 for Linux Desktops #Check the uploaded installer md5sum $cmd = "md5sum VMware-*-linux-*" Write-Host "Run cmd '$cmd' in VM '$VMName' with user '$guestUser'" $output = RunCmdViaSSH -VM_Name $VMName -User $guestUser -Password $guestPassword -Cmd $cmd $returnOutput $true if($output.
Setting Up Horizon 7 for Linux Desktops Your VM guest OS user password: ******* -------------------------------------------------Type the Horizon Agent tar ball path. Please take care of the installer arch: .\VMware-viewagent-linuxx86_64-x.y.z-1234567.tar.
Setting Up Horizon 7 for Linux Desktops function GetInput { Param($prompt, $IsPassword = $false) $prompt = $prompt + ": " Write-Host $prompt -NoNewLine [Console]::ForegroundColor = "Blue" if ($IsPassword) { $input = Read-Host -AsSecureString $input = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.
Setting Up Horizon 7 for Linux Desktops VM 5). Restart VM Guest 6). Delete VM' -IsPassword $false $sleepTime = GetInput -prompt 'Wait time (seconds) between each VM' -IsPassword $false "-----------------------------------------------------" [Console]::ForegroundColor = "Yellow" switch ($action) { 1 { "Your selection is 1). Power On" } 2 { "Your selection is 2). Power Off" } 3 { "Your selection is 3) Shutdown" } 4 { "Your selection is 4). Restart VM" } 5 { "Your selection is 5).
Setting Up Horizon 7 for Linux Desktops { $VMName = $line.
Setting Up Horizon 7 for Linux Desktops For the operations power on, reatart VM, and restart VM guest, specify a wait time between virtual machines of at least 20 seconds to avoid a boot storm situation, which might cause some operations to fail. VMware, Inc.
Troubleshooting Linux Desktops 9 Certain issues might arise when you manage Linux desktops. You can follow various procedures to diagnose and fix problems.
Setting Up Horizon 7 for Linux Desktops Troubleshooting Copy and Paste between Remote Desktop and Client Host Copy and Paste between the remote desktop and client host takes more than three seconds for maximum supported data of 1 MB. This issue does not occur if you copy and paste a small data size. Problem When you configure 1 vCPU and 1 GB memory for SLED 11 SP3/SP4 desktop, it might take more than three seconds to copy and paste between the remote desktop and local client host.
Setting Up Horizon 7 for Linux Desktops Cause SUSE machine might not be sending messages correctly to Horizon Client after a restart or shutdown operation. Solution u Disconnect the desktop connection manually from iPad Pro Horizon Client. SLES 12 SP1 Desktop does not Auto Refresh after Drag and Drop SLES 12 SP1 does not auto refresh in a multimon mode when you drag and drop a gnome terminal.
Setting Up Horizon 7 for Linux Desktops Cause There might be several user error configuration or setup causes for the virtual machine state to be Unreachable or Waiting for Agent. n Verify that the option machine.id exists in the virtual machines vmx configuration file. If it does not exist, then verify that the virtual machine was added to the desktop pool correctly. Else recreate the desktop pool to let the broker rewrite the option to the vmx configuration file.