Linux虚拟交付代理

手动安装Linux Virtual Delivery Agent for Ubuntu

重要的是:

对于新安装,我们建议您使用简单的安装用于快速安装。轻松安装可以节省时间和人力,并且比本文中详细介绍的手动安装更不容易出错。

步骤1:为安装VDA准备Ubuntu

步骤1a:检查网络配置

确保网络连接和配置正确。例如,必须在Linux VDA上配置DNS服务器。

如果您使用的是Ubuntu 18.04 Live Server,请在/etc/cloud/cloud.cfg设置主机名前的配置文件:

preserve_hostname:真

步骤1b:设置主机名

为确保正确报告机器的主机名,请修改/etc/hostname文件中只包含计算机的主机名。

主机名

步骤1c:为主机名分配一个环回地址

请确保正确报告机器的DNS域名和FQDN (Fully Qualified domain name)。方法是改变下面的行设置文件中包含FQDN和主机名作为前两项:

127.0.0.1 hostname-fqdn hostname localhost

例如:

vda01 localhost

删除对的任何其他引用hostname-fqdn主机名从文件中的其他条目。

注意:

Linux VDA目前不支持NetBIOS名称截断功能。主机名不能超过15个字符。

提示:

只能使用a-z、a-z、0-9和“-”字符。避免使用下划线、空格和其他符号。主机名不能以数字开头,也不能以连字符结尾。此规则也适用于Delivery Controller主机名。

步骤1d:检查主机名

检查主机名是否设置正确:

主机名< !——NeedCopy >

该命令只返回机器的主机名,而不返回其FQDN。

验证FQDN是否设置正确:

Hostname -f 

这个命令返回机器的FQDN。

步骤1e:关闭组播DNS

默认设置有组播DNS (中数)启用,这可能导致不一致的名称解析结果。

禁用中数、编辑/etc/nsswitch.conf并更改包含以下内容的行:

dns . hosts: files mdns_minimal [NOTFOUND=return

:

主机:文件DNS

步骤1f:检查名称解析和服务可达性

验证您可以解析FQDN并ping域控制器和传递控制器:

Nslookup domain-controller-fqdn ping domain-controller-fqdn——NeedCopy >

如果无法解析FQDN或ping这些机器中的任何一台,请在继续之前检查步骤。

步骤1g:配置时钟同步

在vda、交付控制器和域控制器之间保持准确的时钟同步是至关重要的。将Linux VDA作为虚拟机托管可能会导致时钟倾斜问题。因此,建议使用远程时间服务进行时间同步。

安装chrony:

安装时间

作为根用户,编辑/etc/chrony/chrony.conf并为每个远程时间服务器添加一个服务器条目:

服务器peer1-fqdn-or-ip-address iburst
服务器peer2-fqdn-or-ip-address iburst

在典型部署中,从本地域控制器同步时间,而不是直接从公共NTP池服务器同步时间。为域中的每个Active Directory域控制器添加一个服务器条目。

删除任何其他服务器列出的条目包括环回IP地址、本地主机和公共服务器* .pool.ntp.org条目。

保存更改并重新启动Chrony守护进程:

Sudo systemctl restart chrony 

步骤1h:安装OpenJDK 11

Linux VDA要求OpenJDK 11的存在。

在Ubuntu 16.04上,按照以下步骤安装OpenJDK 11y:

  1. 下载最新的OpenJDK 11https://jdk.java.net/archive/
  2. 运行Tar ZXF openjdk-11.0.2_linux-x64_bin.tar.gz命令解压缩下载的软件包。
  3. (可选)运行Mv jdk-11.0.2/ <目标目录>命令将OpenJDK保存到目标目录。
  4. 运行Update-alternatives——install /usr/bin/ Java Java <自定义目录>/bin/ Java 2000命令设置Java运行时。
  5. 运行java - version命令验证Java版本。

在Ubuntu 20.04和Ubuntu 18.04上,使用以下方法安装OpenJDK 11:

Sudo apt-get install -y openjdk-11-jdk 

步骤1i:安装PostgreSQL

Linux VDA要求PostgreSQL Version 9。x在Ubuntu上:

Sudo apt-get install -y libpostgresql- java 

步骤1j:安装Motif

Sudo apt-get install -y libxm4 

步骤1k:安装其他包

Sudo apt-get install -y libsasl2-modules- gsapi -mit Sudo apt-get install -y libsasl2-modules- gsapi -mit Sudo apt-get install -y krb5-user Sudo apt-get install -y libgtk2.0-0 

步骤2:准备虚拟化环境

在受支持的管理程序上运行Linux VDA作为虚拟机时,需要进行一些更改。根据所使用的管理程序平台进行以下更改。如果在裸金属硬件上运行Linux机器,则不需要进行任何更改。

修复Citrix Hypervisor时间同步问题

当启用Citrix Hypervisor时间同步特性时,在每个半虚拟化Linux虚拟机中,您都会遇到NTP和Citrix Hypervisor的问题,两者都试图管理系统时钟。为了避免时钟与其他服务器不同步,请确保每个Linux客户机中的系统时钟与NTP同步。此时需要关闭主机时间同步功能。HVM模式无需修改。

在某些Linux发行版上,如果您正在运行一个安装了Citrix VN Tools的半虚拟化Linux内核,您可以在Linux虚拟机中检查Citrix Hypervisor时间同步功能是否存在并启用:

Su - cat /proc/sys/xen/independent_wallclock 

该命令返回0或1:

  • 0—时间同步功能已开启,需要关闭。
  • 1—关闭时间同步功能,任务结束。

如果“/proc/sys/xen/independent_wallclock”文件不存在,则不需要执行以下步骤。

如果开启,则在文件中写入1来关闭时间同步功能:

Sudo echo 1 > /proc/sys/xen/independent_wallclock 

要使此更改在重新启动后保持不变,请编辑/etc/sysctl.conf文件然后加上一行:

xen。独立时钟= 1

要验证这些更改,请重新启动系统:

Su - cat /proc/sys/xen/independent_wallclock 

该命令返回值为1。

修复Microsoft Hyper-V的时间同步问题

安装了Hyper-V Linux Integration Services的Linux虚拟机,可以通过Hyper-V时间同步特性使用主机操作系统的时间。为了确保系统时钟保持准确,请在启用NTP服务的同时启用该功能。

来自管理操作系统:

  1. 打开Hyper-V Manager控制台。
  2. 对于Linux虚拟机,请选择集成服务
  3. 确保时间同步被选中。

注意:

与VMware和Citrix Hypervisor不同,VMware和Citrix Hypervisor会关闭主机时间同步,避免与NTP冲突。Hyper-V时间同步可以同时存在,补充NTP时间同步。

修复ESX和ESXi的时间同步问题

当启用VMware时间同步特性时,在每个半虚拟化Linux虚拟机中,您都会遇到NTP和管理程序的问题,两者都试图同步系统时钟。为了避免时钟与其他服务器不同步,请确保每个Linux客户机中的系统时钟与NTP同步。此时需要关闭主机时间同步功能。

如果您正在运行半虚拟化的Linux内核,并安装了VMware Tools:

  1. 打开vSphere Client。
  2. 修改Linux虚拟机设置
  3. 虚拟机属性对话框,打开选项选项卡。
  4. 选择VMware工具
  5. 先进的盒子,清楚同步主机时间

步骤3:将Linux虚拟机加入Windows域

Linux VDA支持几种将Linux机器加入AD域的方法:

根据您选择的方法遵循说明。

注意:

当Linux VDA中的本地帐户和AD中的帐户使用相同的用户名时,会话启动可能会失败。

Samba Winbind

安装或更新所需的软件包

Sudo apt-get install winbind samba libnss-winbind libpam-winbind krb5-config krb5-locale krb5-user 

启用Winbind守护进程在机器启动时启动

Winbind守护进程必须配置为在机器启动时启动:

Sudo systemctl enable winbind 

注意:

确保winbind脚本位于/etc/init.d

配置Kerberos

开放/etc/krb5.conf作为root用户,并进行如下设置:

注意:

基于AD基础结构配置Kerberos。以下设置适用于单域、单森林模型。

[libdefaults]

default_realm =领域

Dns_lookup_kdc = false

(领域)

领域= {

admin_server =domain-controller-fqdn

kdc =domain-controller-fqdn

[domain_realm]

domain-dns-name领域

.domain-dns-name领域

domain-dns-name此处参数为DNS域名,如example.com.的领域Kerberos领域名称是大写的,例如EXAMPLE.COM

配置Winbind认证

手动配置Winbind,因为Ubuntu没有这样的工具authconfigRHEL是yast2, SUSE是yast2。

开放/etc/samba/smb.conf,并进行如下设置:

(全球)

工作组=工作组

安全= ADS

领域=领域

加密密码= yes

Idmap配置*:range = 16777216-33554431

仅Winbind可信域= no

Kerberos方法= secrets和keytab

Winbind刷新票证= yes

模板shell = /bin/bash

工作组第一个场地进了吗领域,领域是大写的Kerberos领域名。

配置nsswitch

开放/etc/nsswitch.conf,并追加winbind改为以下几行:

Passwd: compat winbind
组:compat winbind

加入Windows域

您的域控制器必须是可访问的,并且您必须具有具有将计算机添加到域的权限的Active Directory用户帐户:

sudo网络广告加入REALM -U用户

在哪里领域Kerberos领域名是大写的,以及用户是具有将计算机添加到域的权限的域用户。

重新启动winbind

Sudo systemctl restart winbind 

为Winbind配置PAM

执行以下命令,并确保Winbind NT/Active Directory认证而且登录时创建主目录可选选项:

Sudo pam-auth-update 

提示:

winbind守护进程只有在计算机加入到某个域时才会保持运行。

验证域成员资格

交付控制器要求所有VDA机器,无论是Windows还是Linux,在Active Directory中都有一个计算机对象。

运行网络广告命令来验证计算机是否加入了域:

Sudo net ads testjoin 

执行以下命令验证额外域和计算机对象信息:

Sudo网广告信息

Kerberos配置验证

要验证Kerberos是否正确配置,以便与Linux VDA一起使用,请验证系统keytab文件已创建并包含有效的密钥:

Sudo klist -ke 

此命令显示可用于主体名称和密码套件的各种组合的密钥列表。运行Kerberoskinit命令使用这些密钥通过域控制器验证计算机:

sudo kinit -k MACHINE\$@REALM 

机器名和领域名必须用大写字母指定。美元符号($)必须用反斜杠(\)转义,以防止shell替换。在某些环境中,DNS域名与Kerberos域名不同。确保使用了领域名。如果命令执行成功,则无输出。

验证机器帐户的TGT票据已经使用以下方法缓存:

Sudo klist 

检查使用机器的帐户详细信息:

Sudo网广告状态

验证用户身份验证

使用wbinfo验证域用户是否可以通过域进行身份验证的工具:

Wbinfo——krb5auth=域\\用户名%密码

此处指定的域是AD域名,而不是Kerberos域名。对于bash shell,反斜杠(\)字符必须用另一个反斜杠转义。该命令返回一条指示成功或失败的消息。

要验证Winbind PAM模块是否正确配置,请使用以前未使用过的域用户帐户登录Linux VDA。

SSH localhost -l domain\\username id -u 

注意:

执行SSH命令前,必须确保SSH服务已开启且处于正常工作状态。

方法返回的uid创建了相应的Kerberos凭据缓存文件id - u命令:

Ls /tmp/krb5cc_uid 

验证用户的Kerberos凭据缓存中的票据是否有效且未过期:

中< !——NeedCopy >

退出会话。

退出< !——NeedCopy >

可以通过直接登录到Gnome或KDE控制台来执行类似的测试。继续步骤6:安装Linux VDA加入域验证后。

提示:

如果用户身份验证成功,但使用域帐户登录时无法显示桌面,请重新启动计算机,然后再试一次。

任务认证服务

在域控制器上配置任务

假设您已经在Active Directory域控制器上安装并配置了Quest软件,并且已被授予在Active Directory中创建计算机对象的管理权限。

允许域用户登录到Linux VDA机器

启用域用户在Linux VDA机器上建立HDX会话。

  1. 在“Active Directory用户和计算机”管理控制台中,打开该用户帐户的Active Directory用户属性。
  2. 选择Unix帐户选项卡。
  3. 检查Unix-enabled
  4. 设置主GID编号到实际域用户组的group ID。

注意:

这些指令对于设置使用控制台、RDP、SSH或任何其他远程协议登录的域用户是等效的。

在Linux VDA上配置Quest

围绕SELinux策略实施工作

默认的RHEL环境完全强制了SELinux。这种强制会干扰Quest使用的Unix域套接字IPC机制,并阻止域用户登录。

解决这个问题的方便方法是禁用SELinux。作为根用户,编辑/etc/selinux/config然后改变SELinux设置:

禁用SELINUX =

这个改变需要重新启动机器:

重新启动< !——NeedCopy >

重要的是:

请谨慎使用此设置。在禁用SELinux策略实施之后重新启用可能会导致完全锁定,即使对于根用户和其他本地用户也是如此。

配置VAS守护进程

必须启用并断开Kerberos票据的自动更新。必须禁用身份验证(脱机登录):

Sudo /opt/quest/bin/vastool configure vas vasd auto-ticket-renew-interval 32400 Sudo /opt/quest/bin/vastool configure vas vas_auth allow-disconnect -auth false 

该命令将更新间隔设置为9小时(32400秒),这比默认的10小时票据生命周期少1小时。在票证生命周期较短的系统上,将此参数设置为较低的值。

配置PAM和NSS

如果需要使用HDX和其他服务(如su、ssh、RDP)登录域用户,需要手动配置PAM和NSS。

Sudo /opt/quest/bin/vastool configure PAM Sudo /opt/quest/bin/vastool configure NSS 

加入Windows域

使用Quest将Linux计算机加入Active Directory域vastool命令:

Sudo /opt/quest/bin/vastool -u user join domain name 

该用户是具有将计算机加入Active Directory域的权限的任何域用户。domain-name为该域的DNS域名,例如example.com。

验证域成员资格

交付控制器要求所有VDA机器,无论是Windows还是Linux,在Active Directory中都有一个计算机对象。验证加入quest的Linux机器是否在域上:

Sudo /opt/quest/bin/vastool info domain 

如果计算机已加入域,此命令将返回域名。如果机器没有加入任何域,则会出现以下错误:

错误:找不到域名。
错误:VAS_ERR_CONFIG: at ctx.c:414在_ctx_init_default_realm
在vas.conf中没有配置Default_realm。计算机不能加入域

验证用户身份验证

要验证Quest可以通过PAM对域用户进行身份验证,请使用以前未使用过的域用户帐户登录Linux VDA。

SSH localhost -l domain\\username id -u 

方法返回的UID创建了相应的Kerberos凭据缓存文件id - u命令:

Ls /tmp/krb5cc_uid 

验证Kerberos凭据缓存中的票据是否有效且未过期:

/opt/quest/bin/vastool klist 

退出会话。

退出< !——NeedCopy >

继续步骤6:安装Linux VDA加入域验证后。

Centrify组合

加入Windows域

安装了Centrify DirectControl Agent后,使用Centrify将Linux计算机加入Active Directory域毗邻命令:

su - adjoin -w - v -u user domain-name 

用户参数为具有将计算机加入Active Directory域的权限的任何Active Directory域用户。的域名参数是要加入Linux机器的域名。

验证域成员资格

交付控制器要求所有VDA机器,无论是Windows还是Linux,在Active Directory中都有一个计算机对象。要验证加入centrify的Linux机器是否在域中:

Su - adinfo 

验证加入域值是有效的,并且CentrifyDC模式返回连接.如果模式仍然停留在启动状态,则Centrify客户端遇到了服务器连接或身份验证问题。

更全面的系统和诊断信息可使用:

Adinfo——sysinfo all Adinfo——diag 

测试到各种Active Directory和Kerberos服务的连通性。

Adinfo——test 

继续步骤6:安装Linux VDA加入域验证后。

SSSD

配置Kerberos

执行以下命令安装Kerberos:

安装krb5-user 

要配置Kerberos,请打开/etc/krb5.conf以root用户,设置参数:

注意:

基于AD基础结构配置Kerberos。以下设置适用于单域、单森林模型。

[libdefaults]

default_realm =领域

Dns_lookup_kdc = false

(领域)

领域= {

admin_server =domain-controller-fqdn

kdc =domain-controller-fqdn

[domain_realm]

domain-dns-name领域

.domain-dns-name领域

domain-dns-name此处参数为DNS域名,如example.com。的领域是大写的Kerberos领域名,例如EXAMPLE.COM。

加入域名

SSSD必须配置为使用Active Directory作为其身份提供程序,使用Kerberos进行身份验证。但SSSD不提供AD客户端加入域和管理系统keytab文件的功能。你可以使用adclirealmd,或Samba代替。

注意:

本节仅提供adcli而且Samba

  • 如果你使用adcli加入域需要完成以下步骤:
  1. 安装adcli

    Sudo apt-get adcli 
  2. 加入域adcli

    删除旧的系统keytab文件并使用以下方法加入域:

    Su - rm -rf /etc/krb5.keytabadclijoin domain-dns-name -U user -H hostname-fqdn 

    用户是具有将计算机添加到域的权限的域用户。的hostname-fqdn是机器的FQDN格式的主机名。

    - h选项是必要的adcli生成Linux VDA要求的host/hostname-fqdn@REALM格式的SPN。

  3. 验证系统keytab。

    对于Ubuntu 20.04机器,运行adcli testjoin命令测试是否已加入域。

    对于Ubuntu 18.04或Ubuntu 16.04机器,运行Sudo klist -ket命令,确保已创建system keytab文件。

    验证每个密钥的时间戳是否与计算机加入域的时间相匹配。

  • 如果你使用Samba加入域需要完成以下步骤:
  1. 安装包。

    安装samba krb5-user 
  2. 配置Samba

    开放/etc/samba/smb.conf,并进行如下设置:

    (全球)

    工作组=工作组

    安全= ADS

    领域=领域

    客户端签名= yes

    客户端使用spnego = yes

    Kerberos方法= secrets和keytab

    工作组第一个场地进了吗领域,领域是大写的Kerberos领域名。

  3. 加入域Samba

    您的域控制器必须可访问,并且您必须有一个Windows帐户,具有将计算机添加到域的权限。

    sudo网络广告加入REALM -U用户

    在哪里领域Kerberos领域名是大写的,以及用户是具有将计算机添加到域的权限的域用户。

设立SSSD

安装或更新所需的软件包:

安装所需的SSSD和配置包(如果尚未安装):

Sudo apt-get install SSSD 

如果软件包已经安装,建议更新:

Sudo apt-get install -only-upgrade SSSD 

注意:

默认情况下,Ubuntu中的安装过程会配置nsswitch.conf和PAM自动登录模块。

配置SSSD

在启动SSSD守护进程之前,需要更改SSSD配置。对于某些版本的SSSD,/etc/sssd/sssd.conf配置文件默认不安装,需要手动创建。作为根用户,创建或打开/etc/sssd/sssd.conf并进行以下设置:

(sssd)

服务= nss, PAM

Config_file_version = 2

域=domain-dns-name

[域/domain-dns-name

Id_provider = AD

Access_provider = AD

Auth_provider = krb5

krb5_realm =领域

如果TGT更新生命周期大于14天,则设置更高的krb5_renewable_lifetime

Krb5_renewable_lifetime = 14d

#如果TGT ticket lifetime小于2小时,则将krb5_renew_interval设置为较小的值

Krb5_renew_interval = 1h

Krb5_ccachedir = /tmp

krb5_ccname_template = FILE:%d/krb5cc_%U . txt

# ldap_id_mapping设置也是默认值

Ldap_id_mapping = true

Override_homedir = /home/%d/%u

Default_shell = /bin/bash

Ad_gpo_map_remote_interactive = +ctxhdx

注意:

Ldap_id_mapping设置为真正的因此SSSD本身负责将Windows sid映射到Unix uid。否则,Active Directory必须能够提供POSIX扩展。PAM服务ctxhdx添加到ad_gpo_map_remote_interactive。

domain-dns-name此处参数为DNS域名,如example.com。的领域是大写的Kerberos领域名,例如EXAMPLE.COM。NetBIOS域名无需配置。

有关配置设置的信息,请参见sssd.conf和sssd.conf的手册页sssd-ad

SSSD守护进程要求配置文件必须只有所有者读权限:

Sudo chmod 0600 /etc/sssd/sssd.conf 

启动SSSD守护进程

运行以下命令立即启动SSSD守护进程,并使守护进程在机器启动时启动:

Sudo systemctl start SSSD Sudo systemctl enable SSSD 

PAM配置

执行以下命令,并确保瑞士认证而且登录时创建主目录可选选项:

Sudo pam-auth-update 

验证域成员资格

交付控制器要求所有VDA机器(Windows和Linux VDA)在Active Directory中有一个计算机对象。

  • 如果你使用adcli若要验证域成员资格,请运行Sudo adcli info domain-dns-name命令显示域信息。

  • 如果你使用Samba若要验证域成员资格,请运行Sudo网络广告测试加入命令来验证计算机是否已加入到域sudonet广告信息命令验证额外域和计算机对象信息。

验证Kerberos配置

要验证正确配置Kerberos以用于Linux VDA,请验证已经创建了system keytab文件并包含有效的密钥:

Sudo klist -ke 

此命令显示可用于主体名称和密码套件的各种组合的密钥列表。运行Kerberoskinit命令使用这些密钥通过域控制器验证计算机:

sudo kinit -k MACHINE\$@REALM 

机器名和领域名必须用大写字母指定。美元符号($)必须用反斜杠(\)转义,以防止shell替换。在某些环境中,DNS域名与Kerberos域名不同。确保使用了领域名。如果命令执行成功,则无输出。

验证机器帐户的TGT已经使用以下方法缓存:

Sudo klist 

验证用户身份验证

SSSD没有提供命令行工具来直接使用守护进程测试身份验证,只能通过PAM来完成。

为了验证SSSD PAM模块的配置是否正确,请使用以前没有使用过的域用户帐户登录Linux VDA。

SSH localhost -l domain\\username id -u klist exit 

方法返回的Kerberos票据命令对该用户是正确的,并且没有过期。

作为根用户,验证为前一个操作返回的uid创建了相应的票据缓存文件id - u命令:

Ls /tmp/krb5cc_uid 

可以通过登录到KDE或Gnome Display Manager执行类似的测试。继续步骤6:安装Linux VDA加入域验证后。

PBIS

下载所需的PBIS包

例如:

sudo wget https://github.com/BeyondTrust/pbis-open/releases/download/8.8.0/pbis-open-8.8.0.506.linux.x86_64.deb.sh 

使PBIS安装脚本可执行

例如:

Sudo chmod +x pbis-open-8.8.0.506.linux.x86_64.deb.sh 

运行PBIS安装脚本

例如:

Sudo sh pbis-open-8.8.0.506.linux.x86_64.deb.sh 

加入Windows域

您的域控制器必须是可访问的,并且您必须具有具有将计算机添加到域的权限的Active Directory用户帐户:

Sudo /opt/pbis/bin/domainjoin-cli join domain name user 

用户是域用户,具有将计算机添加到Active Directory域的权限。的域名表示域的DNS名称,例如example.com。

注意:若要将Bash设置为默认shell,请运行sudo /opt/pbis/bin/config LoginShellTemplate/bin/bash命令。

验证域成员资格

交付控制器要求所有VDA机器(Windows和Linux VDA)在Active Directory中有一个计算机对象。验证一个pbis加入的Linux机器在域上:

/opt/pbis/bin/domainjoin-cli query 

如果计算机已加入域,该命令将返回当前加入的AD域和OU信息。否则,只显示主机名。

验证用户身份验证

为了验证PBIS能够通过PAM对域用户进行身份验证,请使用未使用过的域用户帐号登录Linux VDA。

Sudo SSH localhost -l domain\\user id -u 

方法返回的UID创建了相应的Kerberos凭据缓存文件id - u命令:

Ls /tmp/krb5cc_uid 

退出会话。

退出< !——NeedCopy >

继续步骤6:安装Linux VDA加入域验证后。

步骤4:安装。net Core Runtime 3.1作为先决条件

在安装Linux VDA之前,请先安装。net Core Runtime 3.1https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-managers

安装。net Core Runtime 3.1后,运行这dotnet命令查找运行时路径。

根据回显信息,设置. net Core运行时二进制路径。例如,回显信息为“/aa/bb/dotnet”,则. net的二进制路径为“/aa/bb”。

步骤5:下载Linux VDA包

进入Citrix虚拟应用程序和桌面下载页面。展开相应版本的Citrix虚拟应用程序和桌面,单击组件下载与您的Linux发行版相匹配的Linux VDA包。

步骤6:安装Linux VDA

步骤6a:安装Linux VDA

使用Debian包管理器安装Linux VDA软件:

Ubuntu 20.04

Sudo DPKG -i xendesktopvda_.ubuntu20.04_amd64.deb 

针对Ubuntu 18.04

Sudo DPKG -i xendesktopvda_.ubuntu18.04_amd64.deb 

针对Ubuntu 16.04

Sudo DPKG -i xendesktopvda_.ubuntu16.04_amd64.deb 

Ubuntu 20.04 Debian依赖列表:

Libqt5widgets5 >= 5.7~ ibus >= 1.5 libsasl2-modules- gsapi -mit >= 2.1。~ postgresql >= 12 libpostgresql-jdbc-java >= 42.2 openjdk-11-jdk >= 11 imagemagick >= 8:6.9.10 ufw >= 0.36 ubuntu-desktop >= 1.450 libxrandr2 >= 2:1.5.2 libxtst6 >= 2:1.2.3 libxm4 >= 2.3.8 util-linux >= 2.34 gtk3-nocsd >= 3 bash >= 5.0 findutils >= 4.7.0 sed >= 4.7 cups >= 2.3 libmspack0 >= 0.10 libgoogle-perftools4 >= 2.7~ libpython2.7 >= 2.7~ 

Ubuntu 18.04的Debian依赖列表:

Libqt5widgets5 >= 5.7~ libmspack0 >= 0.6 ibus >= 1.5 libss3 -tools >= 2:3.35 postgresql >= 9.5 libpostgresql-jdbc-java >= 9.2 openjdk-11-jdk >= 11 gtk3-nocsd >=3 imagemagick >= 8:6.8.9.9 ufw >= 0.35 ubuntu-desktop >= 1.361 libxrandr2 >= 2:1.5.0 libxtst6 >= 2:1.2.2 libxm4 >= 2.3.4 util-linux >= 2.27.1 bash >= 4.3 findutils >= 4.6.0 sed >= 4.2.2 cups >= 2.1 libldap-2.4-2 >= 2.4.42 libsasl2-module -gssapi-mit >= 2.1。~ python-请求>= 2.9.1 libgoogle-perftools4 >= 2.4~ xserver-xorg-core >= 2:1.18 xserver-xorg-core << 2:1.19 x11vnc>=0.9.13 python-websockify >= 0.6.1 

Ubuntu 16.04 Debian依赖列表:

Libqt5widgets5 >= 5.5~ libmspack0 >= 0.5 python- pku -resources >= 20.7.0 libss3 -tools >= 2:3.28 postgresql >= 9.5 libpostgresql-jdbc-java >= 9.2 imagemagick >= 8:6.8.9.9 ufw >= 0.35 ubuntu-desktop >= 1.361 libxrandr2 >= 2:1.5.0 libxtst6 >= 2:1.2.2 libxm4 >= 2.3.4 util-linux >= 2.27.1 bash >= 4.3 findutils >= 4.6.0 sed >= 4.2.2 cups >= 2.1 libldap-2.4-2 >= 2.4.42 libsasl2-module -gssapi-mit >= 2.1。~ python-请求>= 2.9.1 libgoogle-perftools4 >= 2.4~ xserver-xorg-core >= 2:1.18 xserver-xorg-core << 2:1.19 x11vnc>=0.9.13 python-websockify >= 0.6.1 

注意:

有关此版本的Linux VDA支持的Linux发行版和Xorg版本的矩阵,请参见系统需求

步骤6b:升级Linux VDA(可选)

您可以从前两个版本和LTSR版本升级现有安装。

sudo dpkg -i / 

注意:

升级现有安装将覆盖/etc/xdl.下的配置文件在进行升级前,请确保备份文件。

步骤7:配置Linux VDA

安装完成后,需要运行脚本ctxsetup.sh对Linux VDA进行配置。在进行任何更改之前,脚本会验证环境并确保安装了所有依赖项。如果需要,您可以在任何时候重新运行脚本以更改设置。

您可以使用提示手动运行脚本,也可以使用预配置的响应自动运行脚本。在继续之前查看脚本的帮助:

sudo /opt/Citrix/VDA/sbin/ctxsetup.sh——help 

提示配置

运行带有提示问题的手动配置:

sudo /opt/Citrix/VDA/sbin/ctxsetup.sh 

自动配置

对于自动安装,可以使用环境变量提供安装脚本所需的选项。如果提供了所有必需的变量,脚本不会提示用户输入任何信息,从而允许脚本化的安装过程。

支持的环境变量包括:

  • Ctx_xdl_support_ddc_as_cname = y | n—Linux VDA支持通过DNS CNAME记录指定下发控制器名称。默认为N。
  • CTX_XDL_DDC_LIST = ' list-ddc-fqdns '—Linux VDA要求在向交付控制器注册时使用一个由空格分隔的fqdn (Delivery Controller Fully Qualified Domain Names)列表。至少必须指定一个FQDN或CNAME别名。
  • CTX_XDL_VDA_PORT =端口号—Linux VDA通过TCP/IP端口与下发控制器通信,默认为80端口。
  • Ctx_xdl_register_service = y | n—Linux虚拟桌面服务在开机后启动。默认为“Y”。
  • Ctx_xdl_add_firewall_rules = y | n—Linux虚拟桌面业务要求允许传入的网络连接通过系统防火墙。您可以在系统防火墙中自动开放Linux虚拟桌面所需的端口(默认为80和1494端口)。默认为“Y”。
  • Ctx_xdl_ad_integration =1 | 2 | 3 | 4 |—Linux VDA需要Kerberos配置设置,通过Delivery Controllers进行身份验证。Kerberos配置由系统上安装和配置的Active Directory集成工具确定。指定要使用的支持的活动目录集成方法:
    • 1 - Samba Winbind
    • 2 -任务认证服务
    • 3 -集中直接控制
    • 4 - SSSD
    • 5 - pbis
  • Ctx_xdl_hdx_3d_pro = y | n—Linux虚拟桌面支持HDX 3D Pro,这是一套图形加速技术,旨在优化丰富图形应用程序的虚拟化。HDX 3D Pro需要安装兼容的NVIDIA GRID显卡。选择“HDX 3D Pro”时,配置VDI桌面(单会话)模式下的“Virtual Delivery Agent”-(即“CTX_XDL_VDI_MODE=Y”)。
  • Ctx_xdl_vdi_mode = y | n—配置VDI (dedicated desktop delivery model)或hosted shared desktop delivery model。对于HDX 3D Pro环境,将该变量设置为y。该变量默认为N。
  • CTX_XDL_SITE_NAME = dns名称—Linux VDA通过DNS发现LDAP服务器。如果需要将查询结果限制在本端站点,请指定DNS站点名称。此变量设置为<一>默认情况下。
  • CTX_XDL_LDAP_LIST = ' list-ldap-servers '—Linux VDA通过查询DNS发现LDAP服务器。如果DNS不能提供LDAP服务记录,您可以提供一个带LDAP端口的LDAP fqdn的空格分隔列表。例如,ad1.mycompany.com:389。此变量设置为<一>默认情况下。
  • CTX_XDL_SEARCH_BASE = search-base-set—Linux VDA通过Active Directory域的根目录(例如:DC=mycompany,DC=com)的搜索基查询LDAP。但是,为了提高搜索性能,可以指定一个搜索基(例如,OU=VDI,DC=mycompany,DC=com)。此变量设置为<一>默认情况下。
  • CTX_XDL_FAS_LIST = ' list-fas-servers '—FAS (Federated Authentication Service)服务器通过AD组策略配置。Linux VDA不支持AD组策略,但是您可以提供一个以分号分隔的FAS服务器列表。顺序必须与“AD组策略”中配置的顺序一致。如果删除了任何服务器地址,则使用<一>文本字符串,不修改服务器地址的顺序。
  • CTX_XDL_DOTNET_ RUNTIME_PATH = path-to-install-dotnet-runtime-安装。net Core Runtime 3.1以支持新的代理服务的路径(ctxvda).默认路径为“/usr/bin”。
  • CTX_XDL_DESKTOP _ENVIRONMENT = gnome /伴侣—会话中使用的GNOME或MATE桌面环境。如果不指定该变量,则使用当前安装在VDA上的桌面。但是,如果当前安装的桌面是MATE,则必须将该变量值设置为伴侣

    注意:

    您还可以通过以下步骤更改目标会话用户的桌面环境:

    1. 创建一个.xsession$ HOME / <用户名>VDA目录。
    2. 编辑.xsession文件以基于发行版指定桌面环境。

      适用于CentOS、Ubuntu和Debian上的MATE桌面

      MSESSION= " $(type -p mate-session) "
      if [-n " $MSESSION "];然后
      exec mate-session
      fi

      用于CentOS上的GNOME桌面

      GSESSION= " $(type -p gnome-session) "
      if [-n " $GSESSION "];然后

      export GNOME_SHELL_SESSION_MODE=classic exec GNOME -session——session= GNOME -classic fi **适用于Ubuntu和Debian上的GNOME桌面**

      GSESSION= " $(type -p gnome-session) "
      if [-n " $GSESSION "];然后

      执行gnome-session fi
    3. 将700文件的权限共享给目标会话用户。
  • Ctx_xdl_start_service = y | n—Linux VDA配置完成后,是否启动Linux VDA服务。默认为“Y”。
  • CTX_XDL_TELEMETRY_SOCKET_PORT—用于监听Citrix Scout的socket端口。默认端口号为7503。
  • CTX_XDL_TELEMETRY_PORT—与Citrix Scout通信的端口。默认端口号为7502。

设置环境变量并运行configure脚本:

export CTX_XDL_SUPPORT_DDC_AS_CNAME=Y|N export CTX_XDL_DDC_LIST= ' list- dlc -fqdns ' export CTX_XDL_VDA_PORT=port-number export CTX_XDL_REGISTER_SERVICE=Y|N export CTX_XDL_ADD_FIREWALL_RULES=Y|N export CTX_XDL_AD_INTEGRATION=1|2|3|4|5 export CTX_XDL_AD_INTEGRATION=1|2|3|4|5 export CTX_XDL_HDX_3D_PRO=Y|N export CTX_XDL_VDI_MODE=Y|N export CTX_XDL_SITE_NAME=dns-site-name | '' export CTX_XDL_LDAP_LIST= ' list-ldap-servers ' | '' export CTX_XDL_SEARCH_BASE=search-base-set | '' export CTX_XDL_FAS_LIST= ' list- fas_servers ' |'' export CTX_XDL_DOTNET_RUNTIME_PATH=path-to-install-dotnet-runtime export CTX_XDL_DESKTOP_ENVIRONMENT= gnome | mate | '' export CTX_XDL_TELEMETRY_SOCKET_PORT=port-number export CTX_XDL_TELEMETRY_PORT=port-number export CTX_XDL_START_SERVICE=Y| sudo -E /opt/Citrix/VDA/sbin/ctxsetup.sh 

执行sudo命令时,输入- e选项,将现有环境变量传递给它创建的新shell。我们建议您使用前面的命令创建一个shell脚本文件#!/bin/bash作为第一行。

或者,您可以使用一个命令指定所有参数:

sudo CTX_XDL_SUPPORT_DDC_AS_CNAME = Y | N \ CTX_XDL_DDC_LIST = ' list-ddc-fqdns \ CTX_XDL_VDA_PORT =端口号\ CTX_XDL_REGISTER_SERVICE = Y | N \ N \ CTX_XDL_AD_INTEGRATION CTX_XDL_ADD_FIREWALL_RULES = Y | = 1 | 2 | 3 | 4 | 5 \ N \ CTX_XDL_VDI_MODE CTX_XDL_HDX_3D_PRO = Y | = Y | N \ CTX_XDL_SITE_NAME = dns名称\ CTX_XDL_LDAP_LIST = ' list-ldap-servers \ CTX_XDL_SEARCH_BASE = search-base-set \ CTX_XDL_FAS_LIST = ' list-fas-servers \ CTX_XDL_DOTNET_RUNTIME_PATH = path-to-install-dotnet-runtime \ CTX_XDL_DESKTOP_ENVIRONMENT = gnome |伴侣\ CTX_XDL_TELEMETRY_SOCKET_PORT=port-number \ CTX_XDL_TELEMETRY_PORT=port-number \ CTX_XDL_START_SERVICE=Y|N \ /opt/Citrix/VDA/sbin/ctxsetup.sh 

删除配置更改

类所做的配置更改,在某些情况下可能必须删除ctxsetup.sh脚本,无需卸载Linux VDA包。

在继续之前,请查看关于此脚本的帮助:

sudo /opt/Citrix/VDA/sbin/ctxcleanup.sh——help 

删除配置更改:

sudo /opt/Citrix/VDA/sbin/ctxcleanup.sh 

重要的是:

该脚本从数据库中删除所有配置数据,并使Linux VDA不可操作。

配置日志

ctxsetup.sh而且ctxcleanup.sh脚本在控制台上显示错误,并将附加信息写入配置日志文件/ tmp / xdl.configure.log

重新启动Linux VDA服务以使更改生效。

卸载Linux VDA软件

查看是否安装了Linux VDA,以及安装包的版本号。

DPKG -l xendesktopvda 

浏览更多详细资料:

显示xendesktopvda 

卸载Linux VDA软件。

DPKG -r xendesktopvda 

注意:

卸载Linux VDA软件会删除关联的PostgreSQL和其他配置数据。但是,在安装Linux VDA之前设置的PostgreSQL包和其他依赖包不会被删除。

提示:

本节中的信息不包括删除依赖包,包括PostgreSQL。

步骤8执行XDPing命令

运行sudo / opt / Citrix / VDA / bin / xdp检查Linux VDA环境的常见配置问题。有关更多信息,请参见xdp

步骤9:运行Linux VDA

类配置了Linux VDA之后ctxsetup.sh脚本,使用以下命令控制Linux VDA。

启动Linux VDA:

启动Linux VDA服务。

Sudo systemctl start CTXHDX Sudo systemctl start ctxvda 

停止Linux VDA:

停止Linux VDA服务。

Sudo systemctl stop ctxvda Sudo systemctl stop CTXHDX !——NeedCopy >

注意:

在你停止之前ctxvda而且ctxhdx服务,运行Service ctxmonitorservice stop命令停止monitor服务守护进程。否则,监视器服务守护进程将重新启动您停止的服务。

重启Linux VDA:

重新启动Linux VDA服务。

Sudo systemctl stop ctxvda Sudo systemctl restart CTXHDX Sudo systemctl restart ctxvda 

查看Linux VDA状态:

查询Linux VDA服务的运行状态。

Sudo systemctl status ctxvda Sudo systemctl status CTXHDX 

步骤10:在Citrix Virtual Apps或Citrix Virtual desktop中创建机器目录

创建机器目录和添加Linux VDA机器的过程类似于传统的Windows VDA方法。有关如何完成这些任务的更详细说明,请参见创建机器目录而且管理机器目录

对于创建包含Linux VDA机器的机器目录,有一些限制将其与为Windows VDA机器创建机器目录区别开来:

  • 操作系统请选择:
    • Multi-session操作系统托管共享桌面交付模型的选项。
    • 单一会话操作系统VDI专用桌面交付模型的选项。
  • 不要在同一个机器目录中混合使用Linux和Windows VDA机器。

注意:

早期版本的Citrix Studio不支持“Linux操作系统”的概念。但是,选择Windows Server操作系统服务器操作系统选项意味着一个等效的托管共享桌面交付模型。选择Windows Desktop操作系统桌面操作系统选项意味着每台机器只提供一个用户交付模型。

提示:

如果将一台计算机删除并重新加入Active Directory域,则必须将该计算机重新删除并添加到计算机编目中。

步骤11:在Citrix Virtual Apps或Citrix Virtual desktop中创建交付组

创建交付组和添加包含Linux VDA机器的机器目录的过程几乎与Windows VDA机器相同。有关如何完成这些任务的更详细说明,请参见创建交付组

对于创建包含Linux VDA机器目录的交付组,应用以下限制:

  • 确保您选择的AD用户和组已正确配置为登录到Linux VDA机器。
  • 不允许未经身份验证的(匿名)用户登录。
  • 不要将交付组与包含Windows计算机的计算机目录混合。

有关如何创建机器目录和交付组的信息,请参见Citrix虚拟应用程序和桌面7 2112