Setting Up Horizon 7 for Linux Desktops Modified on 4 JAN 2018 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, 2018 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 12 13 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 Broker PowerCLI Commands 76 8 Bulk Deployment of Horizon 7 for Manual Desktop Pools 79 Overview of Bulk Deployment of Linux Desktops Overview of Bulk Upgrade of Linux Desktops 79 81 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 82 84 84 Sample Script to Join Cloned Virtual Machines to AD Domain 88 Sample Script to Join Cl
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 chapter 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.4 introduces several new features for Linux desktops.
Setting Up Horizon 7 for Linux Desktops The following list presents the key features for Horizon Linux Desktops. Active Directory Integration with PBIS Open Beginning with Horizon 7 version 7.4 release, Linux-based desktops can authenticate with Active Directory using PowerBroker Identity Services Open (PBISO). This feature is supported only on Ubuntu 14.04 and 16.04 systems.
Setting Up Horizon 7 for Linux Desktops For SLES 12 SP1, you must use the default package with kernel level kernel-default-3.12.49-11.1. If you upgraded the package, the multi-monitor feature fails and the desktop is shown in one monitor. VMware Horizon HTML Access does not support the multi-monitor feature in Horizon 7 for Linux desktops. Lossless PNG Images and videos that are generated on a desktop are rendered on the client device in a pixel-exact manner. H.264 Encoder H.
Setting Up Horizon 7 for Linux Desktops Clipboard Redirection With the clipboard redirection feature, you can copy and paste a rich text or a plain text between a client host and a remote Linux desktop. You can set the copy/paste direction and the maximum text size using Horizon Agent options. This feature is enabled by default. You can disable it during installation. Single Sign-on Single sign-on (SSO) is supported on the following Linux distributions.
Setting Up Horizon 7 for Linux Desktops USB Redirection The USB Redirection feature is available beginning with the Horizon 7 version 7.2 release. The feature gives you access to locally attached USB devices from remote Linux desktops. You must install the USB Redirection components and USB VHCI driver kernel module to use the USB feature. Ensure that you have been granted sufficient privileges to use the USB device that you want to redirect. Note USB 3.0 protocol is supported in Horizon 7 version 7.
Setting Up Horizon 7 for Linux Desktops 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. However, the CAVP and CMVP testing requirement to include the new operational environments in VMware's NIST CAVP and CMVP certificates remains to be completed on the product roadmap.
Setting Up Horizon 7 for Linux Desktops Overview of Configuration Steps for Horizon 7 for Linux Desktops When you install and configure Horizon 7 for Linux desktops, you must follow a different sequence of steps depending on whether you install 2D graphics or 3D graphics on the virtual machines. 2D Graphics - Overview of Configuration Steps For 2D graphics, take the following steps: 1 Review the system requirements for setting up a Horizon 7 for Linux deployment.
Setting Up Horizon 7 for Linux Desktops n See Configure RHEL 6 for vDGA. n See Configure RHEL 7 for vSGA. 6 Install Horizon Agent on the Linux virtual machine. See Install Horizon Agent on a Linux Virtual Machine. 7 Create a desktop pool that contains the configured Linux virtual machines. See Create a Manual Desktop Pool for Linux. Bulk Deployment With View Administrator, you can only deploy Linux virtual machines in a manual desktop pool.
Setting Up Horizon 7 for Linux Desktops Table 1‑2. Required Platform and Horizon 7 Software Versions Platform and Software Supported Versions vSphere platform version n vSphere 6.0 U2 or a later release n vSphere 6.5 or a later release Horizon environment n Horizon Connection Server 7.4 Horizon Client software n Horizon Client 4.7.0 for Android n Horizon Client 4.7.0 for Windows n Horizon Client 4.7.0 for Linux n Horizon Client 4.7.0 for Mac OS X n Horizon Client 4.7.
Setting Up Horizon 7 for Linux Desktops Table 1‑4. Account Name and Account Type Account Name Account Type Used By root Linux OS built-in Java Standalone Agent, mksvchanserver, shell scripts vmwblast Created by Linux Agent installer VMwareBlastServer Linux OS built-in or AD user or LDAP user Python script Desktop Environment Horizon 7 for Linux supports multiple desktop environments on different Linux distributions.
Setting Up Horizon 7 for Linux Desktops 2 Run the appropriate commands in Table 1‑6 for your specific Linux distribution. Table 1‑6. Commands to Install Desktop Environments 3 Linux Distribution New Default Desktop Environment RHEL/CentOS 6 KDE RHEL/CentOS 7 KDE SLED 11 SP4 KDE Ubuntu 14.04/16.04 KDE Ubuntu 16.04 MATE 1.16 Ubuntu 14.04 MATE 1.8 Ubuntu 16.04 Gnome Flashback (Metacity) # apt install gnome-session-flashback Ubuntu 14.
Setting Up Horizon 7 for Linux Desktops n For RHEL/CentOS 6.x and SLED 11 SP3/SP4, for the SSO login session to use KDE, remove all the desktop startup files, except for the KDE startup file, from the /usr/share/xsession directory. Use the following set of commands as an example. # # # # cd /usr/share/xsessions mkdir backup mv *.desktop backup mv backup/kde*.desktop .
Setting Up Horizon 7 for Linux Desktops USB Redirection and Client Drive Redirection (CDR) features are sensitive to network conditions. If the network condition is bad, such as limited bandwidth with time delay and packet loss, the user experience becomes poor. In such condition, the end user might experience one of the following. n Copying remote files can be slow. In this situation, transmit smaller sized files instead. n USB device does not appear in the remote Linux desktop.
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 3 Synchronize user information (except password) from the Active Directory to the OpenLDAP server. 4 Configure the OpenLDAP server to delegate password verification to a separate process such as saslauthd, which can perform password verification against the Active Directory. 5 Configure the Linux desktops to use an LDAP client to authenticate users with the OpenLDAP server.
Setting Up Horizon 7 for Linux Desktops 2 Install PBISO on your Linux VM. sudo ./pbis-open-8.5.6.2029.linux.x86_64.deb.sh 3 Install Horizon 7 Agent for Linux. 4 Use PBISO to join the Linux desktop to the AD domain. In the following example, lxdc.vdi is the domain name and administrator is the domain user name. sudo domainjoin-cli join lxdc.vdi administrator 5 Set up the default configuration for domain users.
Setting Up Horizon 7 for Linux Desktops 8 Reboot your system and log in. Note n If the /opt/pbis/bin/config AssumeDefaultDomain option is set to false, you must update the SSOUserFormat=@ setting in the /etc/vmware/viewagent-custom.conf file. n When using the Horizon instant-clone floating desktop pool feature, to avoid losing the DNS Server setting when the new network adapter is added to the cloned VM, modify the resolv.conf file for your Linux system.
Setting Up Horizon 7 for Linux Desktops In AD, if a user's UserPrincipalName (UPN) attribute and sAMAccount attribute do not match and the user logs in with the UPN, SSO will fail. The workaround is for the user to log in using the name that is stored in sAMAccount. View does not require the user name to be case-sensitive. You must ensure that the Linux operating system can handle case-insensitive user names. n For Winbind, the user name is case-insensitive by default.
Setting Up Horizon 7 for Linux Desktops Smart card redirection supports only one certificate on the card. If more than one certificate is on the card, the one in the first slot is used and the others are ignored. This is a Linux limitation. Note n Smartcard supports the following winbind value. Else the smartcard SSO and manual login fails.
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 first ensure that the chosen desktop environment is installed on your desktop before specifying to use it.
Setting Up Horizon 7 for Linux Desktops Note The three security options, SSLCiphers, SSLProtocols, and SSLCipherServerPreference are for the VMwareBlastServer process. When starting the VMwareBlastServer process, the Java Standalone Agent passes these options as parameters. When Blast Secure Gateway (BSG) is enabled, these options affect the connection between BSG and the Linux desktop. When BSG is disabled, these options affect the connection between the client and the Linux desktop.
Setting Up Horizon 7 for Linux Desktops The following configuration example shares the d:\ebooks and C:\spreadsheets folders, makes both folders read-only, and prevents the client from sharing more folders. cdrserver.forcedByAdmin=true cdrserver.sharedFolders=d:\ebooks,;c:\spreadsheets, cdrserver.permissions=R In the previous example, the comma "," placed after ebooks and spreadsheets is mandatory for correct option parsing. Any "R" included in the cdrserver.
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 n Instant-clone floating desktop pool To create a manual desktop pool with a vCenter virtual machine, you must install Horizon Agent on all virtual machines.
Setting Up Horizon 7 for Linux Desktops Prerequisites n Verify that Horizon Agent is installed on the Linux guest operating systems. See Install Horizon Agent on a Linux Virtual Machine. n Verify that vCenter Server is added to Horizon Connection Server. Procedure 1 In View Administrator, add a manual desktop pool. Select Catalog > Desktop Pools > Add . 2 Select Manual Desktop Pool.
Setting Up Horizon 7 for Linux Desktops Support for Managing Operations n Disable or Enable desktop pool n Clone automated desktop pool n Delete desktop pool You can either remove virtual machines from View Manager or delete virtual machines from the disk Support for Remote Settings Table 7‑1.
Setting Up Horizon 7 for Linux Desktops n Remove-UserOwnership Note Do not change Remote Display Protocol settings. This setting must always be the same as desktop pool creation. Setting Option Default display protocol VMware Blast Allow user to choose protocol No 3D Renderer n Manage using vSphere Client for 2D or vSGA or vDGA n NVIDIA GRID vGPU For more information, see View Administration guide.
Setting Up Horizon 7 for Linux Desktops Setting Value 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. 2 In Horizon Administrator, select Catalog > Desktop Pools > Add. 3 Select Automated Desktop Pool and click Next.
Setting Up Horizon 7 for Linux Desktops d Resource pool e Datastores 11 On the Advanced Storage Options page, select the appropriate storage options and click Next. 12 On the Guest Customization page, select your guest customization for Linux and click Next. 13 On the Ready to Complete page, review the details and select Entitle users after this wizard finishes. 14 Click Finish.
Setting Up Horizon 7 for Linux Desktops 2 Manually install Open VMware Tools (OVT) on your Ubuntu 14.04 or Ubuntu 16.04 machine using the following command: apt-get install open-vm-tools See Prepare a Linux Machine for Remote Desktop Deployment for additional information. 3 Install any dependency packages that are required for the Linux distribution. See Install Dependency Packages for Horizon Agent for more information. 4 Install Horizon Agent for Linux in the Linux VM. sudo ./install_viewagent.
Setting Up Horizon 7 for Linux Desktops 7 (Optional) If you want to add an NFS mount in the /etc/fstab file of the master Linux VDI instantclone agent, use one of the following methods. n Add a 'soft' flag in /etc/fstab, such as: 10.111.222.333:/share n /home/nfsmount nfs rsize=8192,wsize=8192,timeo=14,soft,intr,tcp If you do not want to use the 'soft' flag in /etc/fstab, you cannot configure the /etc/fstab in the master Linux VM image.
Setting Up Horizon 7 for Linux Desktops In Horizon Administrator, you can view the desktop VMs as they are added to the pool by selecting Catalog > Desktop Pools. After you create the pool, do not delete the master image or remove it from the vCenter Server inventory if the pool exists. If you remove the master image VM from the vCenter Server inventory by mistake, you must add it back and then do a push image using the current image. What to do next Entitle users to access the pool.
Setting Up Horizon 7 for Linux Desktops Create a Full-Clone Automated Desktop Pool Add-AutomaticPool -DefaultProtocol Blast -AllowProtocolOverride $false -threedRender usevc|vgpu ` -Pool_id -Vc_id ` -NamePrefix " ` -templatePath ` -VmFolderPath ` -ResourcePoolPath ` -dataStorePaths ` -customizationSpecName ` [more parameters] For Linu
Setting Up Horizon 7 for Linux Desktops Assign or Remove User To or From the VM in Dedicated Desktop Pool n Assign myuser user to LinuxVM-01 VM which is in a dedicated desktop pool. Update-UserOwnership -Machine_id (Get-DesktopVM -Name "LinuxVM-01").machine_id -Sid (Get-User Name "myuser" | Where-Object {$_.cn -eq "myuser"}).sid n Remove myuser user from LinuxVM-01 VM which is in a dedicated desktop pool. Remove-UserOwnership -Machine_id (Get-DesktopVM -Name "LinuxVM-01").
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 14 Shut down the virtual machine and create a snapshot. 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 n Clone type, which can be linked or full n Whether to disable vSphere VM console 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 { Param($VMToDisableConsole) $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 { Write-Host 'Exit since failed to login vCenter' 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.
Setting Up Horizon 7 for Linux Desktops # Start the Clone task using the above parameters $task = $vm.CloneVM_Task($vm.parent, $destVMName, $cloneSpec) # 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 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.com/support/pubs/view_pubs.html. 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 else { write-host official web site' exit } } if ($IsPSCP) { if (Test-Path { write-host } else { write-host official web site' exit } } } -ForeGroundColor Red 'SSH client "plink.exe" not found, please download from its ".\pscp.exe") -ForeGroundColor Yellow 'SSH client "pscp.exe" found' -ForeGroundColor Red 'SSH client "pscp.
Setting Up Horizon 7 for Linux Desktops Check_SSH_Client -IsPlink $true -IsPSCP $true "-----------------------------------------------------" write-host -ForeGroundColor Blue 'Please ensure your config file and viewagent-custom.
Setting Up Horizon 7 for Linux Desktops } #Read input CSV file $csvData = Import-CSV $csvFile $destFolder = "/home/$guestUser/" #Handle VMs one by one foreach ($line in $csvData) { "`n-----------------------------------------------------" $VMName = $line.VMName write-host -ForeGroundColor Yellow "VM: $VMName`n" #Try to delete the configuration file from home folder on destination VM $cmd = "rm -rf config viewagent-custom.
Setting Up Horizon 7 for Linux Desktops Your vCenter admin user password: ******* -------------------------------------------------Your VM guest OS user name: ViewUser Your VM guest OS user password: ******* Sample Script to Upgrade Horizon Agent on Linux Desktop Machines You can customize and use the following sample script to upgrade Horizon Agent on multiple Linux virtual machines (VMs). This script uploads the installer tar ball to each VM before installing Horizon Agent.
Setting Up Horizon 7 for Linux Desktops 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 exit } "-----------------------------------------------------" #$csvFile = Read-Host 'Csv File ' $csvFile = '.\CloneVMs.
Setting Up Horizon 7 for Linux Desktops foreach ($line in $csvData) { "`n-----------------------------------------------------" $VMName = $line.
Setting Up Horizon 7 for Linux Desktops { Write-Host $VMName": Uploaded installer's MD5Sum does NOT match the local installer's MD5Sum"; Write-Host $VMName": Skip the installation. Please check your network and VMware Tools status"; exit; } } Disconnect-VIServer $vcAddress -Confirm:$false exit Script Execution The following messages are from an execution of the script: PowerCLI C:\scripts> .\InstallAgent.
Setting Up Horizon 7 for Linux Desktops n Administrator password for the vCenter Server n Administrator login name for the ESXi host n Administrator password for the ESXi host n User login name for the Linux guest operating system n User password for the Linux guest operating system n Horizon Agent tar ball path n Upgrade to managed VM n Install the Smartcard redirection feature Script Content <# Upload the Linux Agent installer tar ball and re-install #> #----------------------------------
Setting Up Horizon 7 for Linux Desktops write-host official web site' exit } } if ($IsPSCP) { if (Test-Path { write-host } else { write-host official web site' exit } } } -ForeGroundColor Red 'SSH client "plink.exe" not found, please download from its ".\pscp.exe") -ForeGroundColor Yellow 'SSH client "pscp.exe" found' -ForeGroundColor Red 'SSH client "pscp.
Setting Up Horizon 7 for Linux Desktops "-----------------------------------------------------" $acceptEULA = GetInput -prompt 'Accept Linux View Agent EULA in tar bundle ("yes" or "no")' IsPassword $false if ($acceptEULA -ne "yes") { write-host -ForeGroundColor Red "You need accept the EULA with 'yes'(case sensitive)" exit } $vcAddress = GetInput -prompt "Your vCenter address" -IsPassword $false $vcAdmin = GetInput -prompt "Your vCenter admin user name" -IsPassword $false $vcPassword = GetInput -prompt "Y
Setting Up Horizon 7 for Linux Desktops [System.BitConverter]::ToString($md5.ComputeHash([System.IO.File]::ReadAllBytes($agentInstallerPath))); $md5Hash = ($md5HashWithFormat.replace("-","")).
Setting Up Horizon 7 for Linux Desktops $cmd = "tar -xzf VMware-*-linux-*.tar.
Setting Up Horizon 7 for Linux Desktops Sample Script to Perform Operations on Linux Virtual Machines You can customize and use the following sample script to perform operations on multiple Linux virtual machines (VMs). The operations include powering on, powering off, shutting down, restarting, and deleting the VMs. This script can delete virtual machines from vCenter Server but not from View.
Setting Up Horizon 7 for Linux Desktops $input = Read-Host -AsSecureString $input = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBST R($input)) } else { $input = Read-Host } [Console]::ResetColor() return $input } function IsVMExists ($VMExists) { Write-Host "Checking if the VM $VMExists [bool]$Exists = $false Exists" #Get all VMS and check if the VMs is already present in VC $listvm = Get-vm foreach ($lvm in $listvm) { if($VMExists -eq $lvm.
Setting Up Horizon 7 for Linux Desktops } 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). Restart VM Guest" } 6 { "Your selection is 6). Delete VM" } default { "Invalid selection for action: $action" exit } } [Console]::ResetColor() $csvFile = '.\CloneVMs.
Setting Up Horizon 7 for Linux Desktops { Get-VM $VMName | Stop-VM -Confirm:$false } 3 { Get-VM $VMName | Shutdown-VMGuest -Confirm:$false } 4 { Get-VM $VMName | Restart-VM -Confirm:$false } 5 { Get-VM $VMName | Restart-VMGuest -Confirm:$false } 6 { if (IsVMExists ($VMName)) { Delete_VM ($VMName) } } default{} } Start-Sleep -s $sleepTime } Disconnect-VIServer $vcAddress -Confirm:$false exit Script Execution The following messages are from an execution of the script: PowerCLI C:\scripts> .\VMOperations.
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.