分类 精品文章 下的文章

  在安装完VMware虚拟化以后,虚拟化系统会自带证书,对于vshpere web client来说,凡是新的WEB环境,都会提示接受自带的签名证书。并且,这些证书由VMware自带的证书颁发机构VMCA来颁发和续期。而VMCA颁发的证书用来加密VMware各组件之间通信流量,保证数据传输的安全。大部分企业的虚拟化环境,都是内部局域网,vsphere 的通信流量安全对于当前企业的其他安全(数据,网络,门户,等等)来说,可谓是不值一提。而我忽然来了性趣,想从头到尾摸摸这个vsphere的证书。百度上用遍了各种关键词,没搜到我想要的内容,要么是千篇一律的复制,要么就是复制VMware官方KB,看的我云里雾里,毫无头绪。高潮依然很远,那种欲罢不能的感觉,谁人理解。最后求助谷歌,阅篇无数,最终摸清了前后门路。一番折腾,热血沸腾的我,心也渐渐的静了下来。现在我把过程逐一记录,便于回味。

此教程基于嵌入式 Platform Services Controller(PSC)模式的 VCSA6.7 U3,ESXi 6.7 U3,Windows 2016 CA服务器。也适用于Windows Platform Services Controller模式的VCenter!且适用于vSphere 6.x系列。

一,安装配置CA服务器

1,安装Windows CA服务器,具体过程参考这里Horizon系列之替换各组件自签名SSL证书,只看第一章节即可。

2,在CA服务器上,运行对话框或者命令提示符中输入certtmpl.msc,打开证书模板控制台。

24581-2za601wvgqb.png

3,右键单击从属证书颁发机构,点击复制模板。在兼容性标签里,证书颁发机构选择Windows server 2016,证书接收人,根据自己的客户端环境选择。

92620-k3pa67at2ed.png

4,点击常规标签,输入模板显示名称:vSphere 6.x VMCA,并勾选在 Active Directory 中发布证书

28062-cnp2673h3fn.png

5,点击扩展标签,单击密钥用法,然后单击编辑。勾选数字签名证书签名CRL 签名使这个扩展成为关键扩展

90282-wjbnst9p4ig.png

6,点击安全标签,选中Authenticated UsersAdministrator,确保勾选写入注册权限

05841-9zvqtzqm83.png

7,在运行对话框或者命令提示符中输入certsrv.msc,右键单击证书模板,然后单击新建-要发布的证书模板

34467-epdk0i6rvgr.png

8,选择新建的vSphere 6.x VMCA模板。单击确定

06488-jj6hjkxkbks.png

二,配置自定义VMCA

1,通过5480或者DCUI开启VCSA的ssh访问,然后登录ssh,输入下面的命令

shell.set --enable True
shell
chsh -s /bin/bash root
mkdir /tmp/certs

启用 Bash shell:shell.set --enable True #这一步不输入也可以。
访问 Bash shell:shell
将默认的Appliance Shell更改为 Bash Shell:chsh -s /bin/bash root
生成csr文件使用的临时目录:mkdir /tmp/certs

85187-gpuiz1vs96h.png

2,输入/usr/lib/vmware-vmca/bin/certificate-manager,打开证书管理界面。

如果是Windows Platform Services Controller模式的VC,则路径为:C:\Program Files\VMware\vCenter Server\vmcad\certificate-manager,后续步骤中需要的路径,输入Windows的绝对路径即可。

93925-srj8fu0w0jf.png

3,输入2,以选择(Replace VMCA Root certificate with Custom Signing Certificate and replace all Certificates)

88142-qnzse7dq0bq.png

参数具体说明:

#输入n,然后输入VC的SSO用户名和密码
Do you wish to generate all certificates using configuration file : Option[Y/N] ? : n
Please provide valid SSO and VC privileged user credential to perform certificate operations.
Enter username [Administrator@vsphere.local]:administrator@vdi.com
Enter password:
Please configure certool.cfg with proper values before proceeding to next step.
Press Enter key to skip optional parameters or use Default value.
#这里自定义,国家,省,市,组织等信息
Enter proper value for 'Country' [Default value : US] : CN
#这里输入VC的FQDN
Enter proper value for 'Name' [Default value : CA] : vcenter.lzuvdi.com
Enter proper value for 'Organization' [Default value : VMware] : lzuvdi
Enter proper value for 'OrgUnit' [Default value : VMware Engineering] : lzuvdi
Enter proper value for 'State' [Default value : California] : gansu
Enter proper value for 'Locality' [Default value : Palo Alto] : lanzhou
#输入VC的IP
Enter proper value for 'IPAddress' (Provide comma separated values for multiple IP addresses) [optional] : 192.168.80.105
#这里自定义邮箱,格式必须是邮箱格式
Enter proper value for 'Email' [Default value : email@acme.com] : mail@lzuvdi.com
#下面两个对话都输入VC的FQDN
Enter proper value for 'Hostname' (Provide comma separated values for multiple Hostname entries) [Enter valid Fully Qualified Domain Name(FQDN), For Example : example.domain.com] : vcenter.lzuvdi.com
Enter proper value for VMCA 'Name' :vcenter.lzuvdi.com

4,输入1,以选择Generate Certificate Signing Request(s) and Key(s) for VMCA Root Signing certificate,输入第一步新建的临时目录/tmp/certs,回车,会生成csr文件,此时,停留在这个界面即可。

Windows Platform Services Controller下注意路径的书写格式,比如 D:\vmca\customssl

70856-avjiga7qmtr.png

5,用ftp工具登录VCSA,导航到证书存放的临时目录,已经生成csr和key。vmca_issued_csr.csrvmca_issued_key.key

12802-lp20twq9bg.png

6,下载vmca_issued_csr.csr到本地,并改名为vmca.csr,用记事本打开vmca.csr,全选并复制里面的内容

04851-xd1qbgdoqu.png

7,浏览器输入http://CA服务器IP/certsrv,回车,如我的:http://192.168.80.115/certsrv,输入域管理员用户名和密码,注意用户名的书写格式。

72505-sciragfnunh.png

8,点击申请证书,单击高级证书申请,在Base-64 编码的证书申请输入框中粘贴第6步复制的csr内容,证书模板选择vSphere 6.x VMCA,点击提交

35798-zzyg8n2ew1j.png

9,选择Base 64 编码,单击下载证书,保存文件名称为vmca.cer

10,返回到证书申请主页,点击下载 CA 证书、证书链或 CRL,选择Base 64,单击下载 CA 证书,保存文件名称为root.cer,用记事本打开root.cer,全选并复制里面的内容

87731-cyg9qgmbzvp.png

11,用记事本打开第9步保存的vmca.cer,在-----END CERTIFICATE-----下面粘贴上一步复制的内容,并保存

84647-3rq91zjsry6.png

三,更换VMCA证书

1,把vmca.cer上传到/tmp/certs,返回到ssh界面,输入1,以选择Continue to importing Custom certificate(s) and key(s) for VMCA Root Signing certificate

2,输入证书和key的路径,证书是我们合成的vmca.cer,key是请求生成csr文件时生成的key文件,

Please provide valid custom certificate for Root.
File : /tmp/certs/vmca.cer

Please provide valid custom key for Root.
File : /tmp/certs/vmca_issued_key.key

Windows Platform Services Controller下注意证书路径的书写格式,比如 D:\vmca\customssl\vmca.cer

44805-3vgsqgr03lb.png

3,输入y ,进行更换操作,整个更换过程,大概需要10分钟左右,在这个过程中VC无法访问,Windows Platform Services Controller模式的VC可能会更慢,需耐心等待。

47225-a8kwxsgl2on.png

4,更换成功提示

88904-vgdbb6unmm.png

5,域终端(加域客户端成员)中测试证书

浏览器中打开VC的IP地址,小绿锁出现,且状态正常

40260-oeeolhuqzmq.png

再来试试用FQDN,小绿锁出现,且状态正常

11340-ovjgsr2wgo.png

6,独立终端(独立工作组)中测试证书

提示链接不安全

02734-f06yjuhx3n7.png

试试用FQDN,一样会警告

21577-8zdraihmzff.png

这是怎么回事呢,域客户端会自动从域证书服务器中接收并安装当前环境中CA的根证书,这样,VMCA就有了归属的颁发机构,而独立工作站不会有这个根证书,如何解决,安装根证书即可。

7,在独立工作站中安装第三章节第10步保存的root.cer证书,双击打开证书,点击安装证书,选择本地计算机,单击下一步,选择将所有的证书都放入下列存储,在证书存储中选择受信任的根证书颁发机构,下一步,直至完成。

89737-yaw5uxv9zc.png

8,在浏览器中输入VC的IP

23677-p95unofx53.png

输入FQDN

89752-zweriik91hs.png

让人欣慰的小绿锁又回来了!

9,如果需要安装VC的VMCA证书,则直接安装第二章节第11步保存的vmca.cer证书即可。这里可以通过域控的GPO来给客户端安装。

编辑GPO并浏览到计算机管理--策略--Windows设置--安全设置--公钥策略-受信任的根证书颁发机构,右键单击导入。导入上面的CA证书,然后执行gpupdate /force刷新策略,域客户端重启即可。

31881-brbrnnagu4u.png

独立工作站双击CA证书,安装到受信任的根证书颁发机构即可。

这一步操作是为了让客户端用FQDN登录VCSA的5480的证书不报错,如果VC是基于Windows的,则这些操作可省略。

08329-1yq90p21y4s.png

四,VC组件证书续期

1,登录VC,打开证书管理界面

计算机 SSL 证书

64756-pgd9iurlta.png

解决方案证书

13262-cd0hp7v1lyr.png

篇幅关系,我只演示续期vsphere-webclient证书,当前证书有效期至:2022/5/7 上午11:07

38316-gycg5epfcvj.png

点击续订

44497-9tshlvfeqf.png

提示续订成功

49443-vc3ipqvcqf.png

五,ESXi主机证书续期

1,在VC管理界面,右键单击主机,选择证书,点击续订证书,有可能会报如下错误

44347-35hun0ty5fe.png

2,点击VC的FQDN名称,单击设置,点击高级设置,单击编辑设置,搜索vpxd.certmgmt.certs.minutesBefore,把值1440改为10,然后保存。

43461-o6jgsnuklz.png

根据第1步操作,依次为集群内所有主机续订证书,续期后的证书状态

04657-9idrm4wrjqw.png

3,登录ESXi主机测试证书,证书正常

79698-hpc6monlufi.png

因为这个证书没有ESXi主机的IP信息,所以用IP登录还是会提示证书不可信。如果想用IP登录,那么VC中加入主机的时候就要用IP。

92573-pcsin3cl21r.png

参考链接:

https://kb.vmware.com/articleview?docid=2111219&lang=zh_CN
https://kb.vmware.com/s/article/2112009
https://kb.vmware.com/s/article/2112016
https://kb.vmware.com/s/article/2107727
https://kb.vmware.com/s/article/2123386
https://communities.vmware.com/thread/613940

  之前写过两篇Horizon Linux虚拟桌面的文章

1,Horizon系列之安装配置CentOS7虚拟桌面

2,Horizon系列之安装配置Ubuntu18虚拟桌面

  第一篇是基于winbind 使用smb加域进行域用户验证,第二篇是通过开源软件PBISO来加域。这两种模式都需要虚拟机加域,如果桌面多,则域的维护工作较重,今天就基于一种轻量级的目录访问协议LDAP来做域用户的验证,它的原理很简单,使用Linux系统内置的系统安全服务守护进程 (System Security Services Daemon, SSSD)通过LDAP和域控通信。通过只读方式,读取域用户,来实现Linux桌面用户的管理和登录,且虚拟机不用加域,只需要虚拟机和域控通过ldap协议通信即可,易维护。如果对安全系数要求较高,还可以建立只读普通域用户,授权对特定的OU为只读模式,但是前期配置步骤稍微有点多,此文主要以如何让Linux7和域控通过ldap协议通信,并且实现Linux下常用的sudo权限。

[scode type="blue"]
软件版本:Centos7.6 horizon 7.9,horizon从7.2开始支持SSSD和LDAP验证
域名:lzuvdi.local
域控制器:ad.lzuvdi.local
[/scode]

虚拟机须禁用ipv6,禁用virbr0,禁用NMtool,并配置默认搜索域和DNS,具体操作看这里Horizon系列之安装配置CentOS7虚拟桌面

一,准备CA证书

安装域证书看这里,Horizon系列之替换各组件自签名SSL证书

1,导出CA证书

打开证书颁发机构,右键选择域证书,点击所有任务,单击备份CA,下一步

60107-9cf9mc7z516.png

勾选私钥和CA证书和证书数据库和证书数据库日志,选择保存位置,下一步

01991-ilkoq8xdbk.png

密码选项留空,设置密码也可以,但是必须要记住,后面要用到。下一步,单击完成备份。

05023-kpm8omd83s.png

2,安装SSSD和LDAP组件

yum install -y sssd nss-pam-ldapd sssd-ad sssd-tools

94349-wxymgiuur1h.png

3,生成所需文件和目录

authconfig --enablesssd --enablesssdauth --enableldap --enableldapauth --disableforcelegacy --enableldaptls --disablekrb5 --ldapserver ldap://ad.lzuvdi.local --ldapbasedn "dc=lzuvdi,dc=local" --enablemkhomedir --update

然后

systemctl restart sssd

4,把第1步备份的CA证书上传到/etc/openldap/cacerts

43741-jwfog4bi52.png

5,转换证书为LDAP可识别的证书格式

openssl pkcs12 -in lzuvdi-AD-CA.p12 -out ad.pem

第一次提示输入备份时设置的密码,我备份CA时密码为空,则这里也留空。第二次提示设置一个PEM证书的密码,输入即可。

12839-e4viebz4ws.png

75778-6nqn0dt5gz7.png

二,配置LDAPS

1,打开ldp.exe

83075-0iphj7o0oxnm.png

2,点击左上角连接,单击连接,端口输入636,勾选SSL,单击确定。

50979-25tejguai8p.png

此时左上角的链接已变为ldaps

3,点击左上角连接,单击绑定,勾选作为当前已登录用户绑定,单击确定。

37841-zcmyce6sbjo.png

4,点击浏览-搜索,在DN一栏输入域控DC和OU信息,进行查询,如我建立的VDI_Users

67708-omviakvwz8p.png

5,正常查询到我建立的65个用户

51135-tlwwawmswk.png

此时,说明LDAPS正常工作

[scode type="blue"]下面关键内容仅对打赏用户开放,之前通过微信打赏的用户,微信联系我获取密码,谢谢![/scode]

做完horizon桌面以后,在仪表板中的系统运行状态里会有提示,连接服务器的ssl证书无效。

如果需要更换vSphere自带的SSL证书看这里VMware之使用自签名证书替换vSphere各组件自带SSL证书

10712-zn8wqsvpvl9.png

如果安装了安全服务器,也会有提示

58441-olrwiejx28q.png

如果配置了事件数据库,在事件日志中也会有相应的提示

53438-78rvlvr6x64.png

这里可以使用域证书服务来解决这个问题。

一,安装配置CA服务器

安装一台Windows server 2016虚拟机,更改主机名,然后加域,也可以直接在域控中安装证书服务。

59588-761h5wdvlhk.png

1,安装域证书服务

服务器角色中选择Active Directory证书服务,下一步

28611-gm9jyhwau18.png

角色服务中选择证书颁发机构证书颁发机构Web注册,下一步,直至安装完成

89955-g1ptt0fkr3b.png

在服务器管理中打开配置证书服务

05630-rysvaplqz4.png

选择证书颁发机构证书颁发机构Web注册(选择web注册是为了方便后面通过网页申请证书),下一步

53407-9xfkvnvh6rh.png

选择企业CA,下一步,选择根CA

16295-xyqn9rdzl9.png

选择创建新的私钥

06433-gdxsviurb9p.png

密钥长度2048

37664-kl817rutgq.png

其他默认即可,下一步直至安装完成。

08268-xj5dq11hv3p.png

二,配置CA模板

1,在服务器管理器中,打开证书颁发机构,右键单击证书模板,单击管理,打开证书模板控制台

78273-5xrcyfnyw4a.png

右键单击Web 服务器,选择复制模板

11620-jpa3iray69.png

2,单击常规选项卡,在模板显示名称字段中,输入 Horizon 作为新模板的名称。

67816-1714mu9b203.png

3,单击兼容性选项卡,证书颁发机构选择Windows Server 2016,证书接收人选择Windows 7 / Server 2008 R2,如果是其他版本的服务器,根据真实情况选择即可。

84561-6shbo1l2jld.png

3,单击请求处理选项卡。勾选允许导出私钥

54346-3h69xc1pwkl.png

如果ca服务器是单独的虚拟机,则

4,单击安全选项卡,分别选中Authenticated UsersAdministrator,确保勾选写入注册权限

Authenticated Users

84117-9m4cljt2dg.png

Administrator

82762-f3rfgme847.png

5,右键单击证书模板,选择新建,点击要颁发的证书模板

40166-91d8d7cmop.png

6,选中新建的模板Horizon,单击确定。

61423-6sya65mmkt6.png

[scode type="blue"]下面关键内容仅对打赏用户开放,之前通过微信打赏的用户,微信联系我获取密码,谢谢![/scode]

环境:Horizon 7.8 Windows 2016 RDS许可服务器,Windows2016 RDS会话主机模板

一,准备RDS许可服务器

1,安装一台Windows server 2016服务器,更改计算机名称,并加域。关于Windows加域自动激活,参考下面的链接

大客户VL版本Windows客户端加域自动激活详细教程

43407-ji7hufi40mm.png

2,安装远程桌面服务组件

43080-o7mtbn8xaah.png

选择远程桌面授权

65651-n539dnft7tk.png

3,打开RD授权管理器,右键单击服务器名称,选择激活服务器,弹出服务器激活向导,点击下一步

26244-uuvd97sju5k.png

4,选择Web浏览器,单击下一步

72889-le7b0ya7fon.png

弹出产品id窗口,复制产品ID

45311-f4m3sp4s7u5.png

5,打开远程桌面服务器授权网站:https://activate.microsoft.com/ 选择启用许可证服务器,点击下一步

50694-vq7g63effbm.png

6,在产品id中粘贴第4步复制的产品id,填写公司信息,选择国家为中国,点击下一步,继续下一步

36871-c3sjat8ozlm.png

7,生成许可证id

92693-30g09juyfve.png

复制许可证id,粘贴到许可证服务器激活向导窗口中,点击下一步。

97898-dtsh6gqd4b.png

8,选择立即启动许可证安装向导

21567-6aj4lr5828i.png

9,在许可激活网页中点击是,许可证程序选择企业协议,点击下一步

67028-e65ebafiokl.png

10,产品类型选择Windows server 2016远程桌面服务每用户客户端访问许可证,数量根据自己需求任意填写,协议号码填写(6565792,4954438,6879321,5296992)其中之一。

44826-tbbof8o0rlf.png

11,生成许可证ID,复制许可

39167-1czw8qso9cz.png

12,粘贴到许可ID安装向导窗口中,下一步

10864-k1tjwyr9r9.png

许可id安装完毕

13,右键单击服务器名称,选择复查配置

37779-kzunboctnbj.png

点击添加到组

81714-wrv9bi0i7q.png

500个用户的许可正式申请成功

66154-hphprerwrh.png

至此RDS许可服务器搭建完成

如果做windows 2008 或者windows 2012的rds桌面,根据上述步骤选择相应的系统版本即可。

[scode type="blue"]下面关键内容仅对打赏用户开放,之前通过微信打赏的用户,微信联系我获取密码,谢谢![/scode]

[ppblock ex="原创不易,打赏后即可获取文章密码!"]

二,准备RDS服务器模板

1,安装一台Windows 2016服务器,不用加域。

在服务器角色中选择远程桌面服务

00600-9932wpe6znq.png

在角色服务中,选择远程桌面会话主机点击下一步

50204-twfpwb4r0fo.png

备注:如果是 Windows 2012、Windows 2012 R2,还需要安装桌面体验功能。

2,安装horizon agent,勾选Vmware Horizon View Composer Agent选项,下一步直至安装完成。

37479-opkpj6129e.png

如果需要配置即时克隆的桌面,则只选择Vmware Horizon Instant Clone Agent,和上面的composer 不能同时安装,还需要在view 管理界面添加即时克隆管理员。

3,关闭虚拟机的休眠功能,用管理员打开命令提示符,执行下面的命令

powercfg.exe /hibernate off

4,虚拟机关机,做快照。

5,新建Windows 2016的虚拟机自定义规范win2016,网络使用dhcp。

01734-2fmurj7k7tj.png

填写加域信息

51245-sluvj67h8cp.png

6,在域控制器中打开组策略管理器,右键组策略对象,点击新建,输入GPO名称

12271-42xnqmxo55d.png

7,右键新建的GPO,点击编辑

定位到计算机配置--策略--管理模板--Windows组件--远程桌面服务--远程桌面会话主机

a,点击授权--使用指定的远程桌面许可证服务器 已启用,填写rds许可证服务器rds.lzuvdi.com

91764-0yic0hco8sfp.png

b,点击授权--设置远程桌面授权模式,已启用,按用户

55668-w6fk25w3p6.png

如果模板虚拟机是Windows 2008r2 或者Windows 2012R2,还需要如下操作。
2016不用做
c,点击连接--限制连接的数量,已启用。数量为1

72058-f42w6yf1jh6.png

8,在组策略管理器中,右键单击要存放Windows 2016 RDS虚拟机的AD容器,点击链接现有GPO

48279-743vlncjk8n.png

选择RDS-license GPO,单击确定。

46573-iyah3rym3y.png

三,配置RDS场

1,新建自动场

45161-9zupwywh7v.png

2,选择View Composer链接克隆

64329-ifro17ny73m.png

3,选择RDS主机AD容器

86925-9jc9q0wlokg.png

选择自定义规范win2016

89618-79mol3j1rc9.png

等待置备

58641-5rw0etazj9g.png

四,配置RDS桌面池

1,选择RDS桌面池

48915-77284mdu4ld.png

2,选择创建好的RDS场

90100-lf5yz5q89y.png

点击下一步然后授权用户

五,登录测试RDS桌面

重要:配置权限,将分配给RDS桌面的用户加入Domain Admins组,

41683-qzfhxkziexa.png

否则登录桌面的时候会报下面的错

78729-i9m51y0ezy.png

rds许可服务器是域成员,在整个域环境中提供rds许可,获取rds许可需要用户有域管理员权限。

21014-94ul7pw4pwl.png

登录一个桌面

80428-3rrkv4nls5e.png

查看RDS许可信息

83870-jw4gj9vqsj.png

正确获取许可

95717-d061hxr1tq.png

登录两个桌面。500个许可,已经用了两个。

34003-8mp07mqbax.png

在RDS许可服务器中查看授权信息

90582-0c7w8hm2mda8.png

[/ppblock]

Ubuntu的VGPU的配置跟CentOS类似,也是需要先加域,过程参考Horizon系列之安装配置Ubuntu18虚拟桌面,只需要做到加域,验证sudo权限以及域用户能进桌面步骤即可,horizon agent 不需要安装,如果已经安装了,需要执行下面的命令卸载

    /usr/lib/vmware/viewagent/bin/uninstall_viewagent.sh

ESXI主机安装GPU驱动以及给虚拟机分配VGPU过程参考这里Horizon系列之CentOS虚拟桌面安装配置VGPU

环境:

Vcenter6.7 ESXI6.7 Horizon7.8 Ubuntu18.04 GRID VGPU7.2

一,安装配置虚拟桌面模板

1,禁用自带的驱动

echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

没有禁用驱动之前是这样的

lsmod |grep nouveau

06490-geamo42cf6.png

update-initramfs -u

15795-cax750ccxrg.png

重启虚拟机

lsmod |grep nouveau

34600-xzd7o0v8e5.png

无任何输出,则说明自带驱动已经禁用

[scode type="blue"]下面关键内容仅对打赏用户开放,之前通过微信打赏的用户,微信联系我获取密码,谢谢![/scode]

[ppblock ex="原创不易,打赏后即可获取文章密码!"]
2,安装vgpu驱动的依赖组件

apt-get install make gcc g++ lib32ncurses5 lib32z1

3,上传vgpu的驱动,然后安装

chmod +x NVIDIA-Linux-x86_64-410.107-grid.run
service lightdm stop
./NVIDIA-Linux-x86_64-410.107-grid.run

提示预安装脚本失败,忽略它,点击继续

58073-bso7rj3uhm5.png

忽略GCC版本的兼容性,要求是7.3,默认安装的是7.4,忽略即可

61130-1ycxoxao54h.png

点击OK

97535-q2d4ls8eqcp.png

安装过程

70783-ejhmo7fcdkg.png

选择yes,需要安装32位的兼容库

74552-v7vexpasp3p.png

安装并覆盖

53384-vfsjoz71wc.png

选择更新

06820-x2l5tjkj72.png

安装完成

01892-64etrdikyag.png

重启虚拟机,然后执行

nmvidia-smi

36013-zyg9755zqj.png

输出如上信息,则vgpu驱动安装成功

4,上传Linux系统的horizon agent解压并安装

./install_viewagent.sh -A yes

安装agent 的时候可能会出现以下错误

06070-cjxlp5grp1.png

执行

dpkg-reconfigure gdm3

选择gdm3,然后回车,继续执行./install_viewagent.sh -A yes安装agent

79220-kcr8vk2uc3.png

安装完成后继续执行

dpkg-reconfigure gdm3

选择lightdm,然后回车,horizon 要求lightdm作为显示管理器。

5,编辑/etc/vmware/viewagent-custom.conf文件,去除SSODesktopType=UseGnomeUbuntu前面的#

6,生成grid配置文件

这一步是为了登录桌面执行nvidia-settings 能看到license的配置项,这个文件里直接可以配置许可服务器的IP和端口。

cp /etc/nvidia/gridd.conf.template /etc/nvidia/gridd.conf
vi /etc/nvidia/gridd.conf

编辑内容如下:

去除EnableUI=TRUE前面的#

然后按:wq! 保存

7,清理之前登录测试在/home/文件夹下自动创建的用户文件夹,以及horizon agent安装程序和vgpu驱动,删除在/var/lib/AccountsService/users/ 下生成的域用户文件

8,创建linux版本的客户机自定义规范,然后克隆ubuntu为模板

二,创建桌面池

新建桌面池,选择自动,专用桌面,完整克隆。3D渲染器选择 NVIDIA GRID VGPU,其他自定义,然后等待置备。

三,测试桌面

1,horizon client登录

71879-tpsfljgsq3m.png

05438-c1wtypa67mn.png

如果不输入许可,桌面非常卡,并且有以下限制:

帧速率上限为每秒3帧。
GPU资源分配有限,这将阻止某些应用程序正常运行。
在支持CUDA的vGPU上,CUDA被禁用。

总结:不管是centos,还是ubuntu,在分配许可的时候直接在/etc/nvidia/gridd.conf文件中配置好许可IP和端口。

[/ppblock]

Windows的VGPU非常简单,一路点鼠标下一步,没有什么难度,Linux的vgpu桌面还是有点坑。

环境:Vcenter6.7 ESXI6.7 Horizon7.8 Centos7.6 GRID VGPU7.2

不同的ESXI和VGPU版本支持的功能不尽相同,在配置之前一定要确定。

一,安装配置VGPU驱动

1,上传GPU的驱动到主机的存储空间,开启主机的ssh,然后登录主机,把驱动复制到/tmp文件夹下,迁移或关闭主机上所有的虚拟机,然后将主机置入维护模式,并安装驱动。

esxcli system maintenanceMode set --enable=true
esxcli software vib install -v /tmp/NVIDIA-VMware_ESXi_6.7_Host_Driver-410.107-1OEM.670.0.0.8169922.x86_64.vib

如果是升级驱动则用下面命令:

esxcli software vib update -v /tmp/NVIDIA-VMware_ESXi_6.7_Host_Driver-410.107-1OEM.670.0.0.8169922.x86_64.vib

87488-yqxx4xkw65.png

卸载驱动用下面的命令:

esxcli software vib remove -n NVIDIA-VMware_ESXi_6.7_Host_Driver

2,查看驱动是否安装成功

esxcli software vib list | grep -i nvidia

41570-iy7j1dkz7i.png

nvidia-smi

85076-ur3fa78kowo.png

备注:Tesla M60,Tesla M6和基于Pascal GPU架构的GPU,例如Tesla P100或Tesla P4,支持纠错码(ECC)内存,以提高数据完整性。图形模式下的特斯拉M60和M6 GPU默认情况下禁用ECC内存。NVIDIA vGPU不支持ECC内存。如果启用了ECC内存,则NVIDIA vGPU无法启动。因此,如果使用的是NVIDIA vGPU,则必须确保在所有GPU上禁用ECC内存。早期的M10,M60 还需要手动将模式转为图形模式,出厂默认是计算模式,近几年出的卡不需要,转换方法参考官方文档。

如果nvidia-smi执行报错,先查看ecc是否关闭

nvidia-smi -q

14283-gbetp2cpmc.png

如果没有关闭,执行下面命令关闭ecc

如果要将主机上所有GPU 或分配给VM的vGPU的ECC状态更改为关闭,请运行以下命令:

nvidia-smi -e 0

如果要将特定GPU 或vGPU的ECC状态更改为关闭,请运行以下命令:

nvidia-smi -i id -e 0

id 是执行 nvidia-smi后显示的GPU 或vGPU的索引 即Bus-Id。
比如要禁用Bus-ID为00000000:31:00.0的GPU的ECC

nvidia-smi -i 00000000:31:00.0 -e 0

关闭ecc 的情况下如果还是报错,官网查看驱动版本和当前esxi是否兼容,确定版本没有问题的情况下继续报错,则点击这里确定主机的BIOS设置是否规范。

确认上述步骤无任何问题,把主机退出维护模式,然后重启服务器

esxcli system maintenanceMode set --enable=false
reboot

3,vcenter中选中主机,点击配置,单击图形

85654-831uxx52oxe.png

图形设备标签下,选择物理GPU,选择直接共享,单击确定,多个GPU,重复操作即可

39251-l2nmezqavf.png

主机图形标签下,选择物理GPU,选择直接共享,单击确定,多个GPU,重复操作即可

97642-3gaxgszy3i9.png

4,如果集群内有多个GPU服务器,可以开启VGPU的vmotion 模式。

点击vcenter实例名称,点击配置,选择高级设置并单击编辑,弹出的窗口中,搜索关键字VGPU,勾选已启用,单击确定。此时vgpu 的vmotion功能已开启。

47932-oa1mq09axi.png

下表列出了支持VMware vmotion和vGPU的suspend-resume的软件版本

Guest OSNVIDIA vGPU - VMware vSphereReleasesPass-Through GPU - VMware vSphere Releases
Red Hat Enterprise Linux 7.0-7.6 and later compatible 7.x versions6.7, 6.5, 6.06.7, 6.5, 6.0
CentOS 7.0-7.6 and later compatible 7.x versions6.7, 6.5, 6.06.7, 6.5, 6.0
Red Hat Enterprise Linux 6.6 and later compatible 6.x versions6.7, 6.5, 6.06.7, 6.5, 6.0
CentOS 6.6 and later compatible 6.x versions6.7, 6.5, 6.06.7, 6.5, 6.0
Ubuntu 18.04 LTS6.7, 6.5, 6.06.7, 6.5, 6.0
Ubuntu 16.04 LTS6.7, 6.5, 6.06.7, 6.5, 6.0
Ubuntu 14.04 LTS6.7, 6.5, 6.06.7, 6.5, 6.0
SUSE Linux Enterprise Server 12 SP36.7, 6.5, 6.06.7, 6.5, 6.0

并且只有以下GPU支持vmotion

Tesla M6
Tesla M10
Tesla M60
Tesla P4
Tesla P6
Tesla P40
Since 7.1: Tesla T4

二,配置虚拟机模板

[scode type="blue"]下面关键内容仅对打赏用户开放,之前通过微信打赏的用户,微信联系我获取密码,谢谢![/scode]

Ubuntu的虚拟桌面配置也很简单,根据步骤肯定会成功。以下基于horizon7.8 ubuntu18.04.2。

如果需要配置CentOS的桌面,参考这里 Horizon系列之安装配置CentOS7虚拟桌面

一,配置虚拟机模板

1,在线安装open vmtools

apt-get install open-vm-tools-desktop

34485-cu8eqs1ojit.png

2,安装ssh服务端,ubuntu默认自带ssh客户端,服务端需要自己安装

apt-get install openssh-server

06518-fkebqjfmsaa.png

3,卸载自带的vi编辑器,默认自带的编辑器是个精简版,非常难用,用过的都知道

apt-get remove vim-common

24653-zcew0y972pp.png

4,安装完整版本的vi编辑器

apt-get install vim

73277-4quvdxhh0b.png

5,安装必需的依赖包,

apt-get install python python-dbus python-gobject lightdm

00193-r73w4zt6scs.png

在安装过程中选择 lightdm 作为显示管理器

67400-h28aawxzffc.png

6,安装 PowerBroker Identity Services Open (PBISO) 身份验证工具

打开https://github.com/BeyondTrust/pbis-open/releases,找到以linux.x86_64.deb.sh结尾的文件,下载并安装。

wget https://github.com/BeyondTrust/pbis-open/releases/download/9.0.1/pbis-open-9.0.1.525.linux.x86_64.deb.sh
chmod +x pbis-open-9.0.1.525.linux.x86_64.deb.sh
./pbis-open-9.0.1.525.linux.x86_64.deb.sh

88634-8fd9qe00dhn.png

7,加域

[scode type="blue"]下面关键内容仅对打赏用户开放,之前通过微信打赏的用户,微信联系我获取密码,谢谢![/scode]

[ppblock ex="原创不易,打赏后即可获取文章密码!"]

执行下面的命令加域

domainjoin-cli join lzuvdi.com administrator

35669-h8mfex03fbt.png

查看加域结果

60420-io1skur3f0n.png

8,配置域环境

依次执行下面的命令

/opt/pbis/bin/config UserDomainPrefix lzuvdi 
/opt/pbis/bin/config AssumeDefaultDomain true 
/opt/pbis/bin/config LoginShellTemplate /bin/bash 
/opt/pbis/bin/config HomeDirTemplate %H/%U

[scode type="yellow"]备注:lzuvdi 是域名[/scode]

41428-f4tng7a9qpl.png

9,查找用户

id user01
id user02

91263-an4zqzmmagp.png

10,设置域用户权限,user01属于Domain Admins组,user02只属于Domain Users

编辑visudo加入下面一行,使得Domain Admins组有sudo权限

%domain^admins ALL=(ALL) NOPASSWD:ALL

46956-mzikd6yg7e.png

11,测试sudo权限

user01可以正常使用sudo权限,提示user02不在sudo文件中。

57928-sjlqnjzfh9a.png

12,编辑 /etc/pam.d/common-session 文件

session [success=ok default=ignore] pam_lsass.so

重新安装或更新 Horizon Agent for Linux 后,必须重复此步骤

13,编辑 /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf 文件并附加以下行

allow-guest=false
greeter-show-manual-login=true

75153-dcdd6e4vw2o.png

14,上传Linux系统的horizon agent解压并安装,然后重启

./install_viewagent.sh -A yes

59625-qdnr46trgq.png

15,测试域用户登录桌面

85906-mwi8c16ce3k.png

37491-q5wh82zjpbe.png

16,编辑/etc/vmware/viewagent-custom.conf文件

去除SSODesktopType=UseGnomeUbuntu前面的#

66714-959t1ax5a9m.png

17,清理之前登录测试在/home/%D/文件夹下自动创建的用户文件夹,以及horizon agent程序和pbis程序,删除在/var/lib/AccountsService/users/ 下生成的域用户文件

18,创建linux版本的客户机自定义规范,然后克隆ubuntu为模板

二,创建桌面池

选择自动完整桌面池。创建过程选择第18步创建好的客户机规范。

三,测试桌面

1,web登录

99388-5sdh65sjpq5.png

86898-oqxknuuobl.png

2,客户端登录

30056-al3iels12us.png

88246-mvpdve9u6dp.png

[/ppblock]

一个VDI项目中,客户要求使用Linux系统。Windows的桌面,一路点鼠标下一步,没有什么难度,而Linux,搜遍全网,没有一篇正经文档,当然与我搜索的姿势也有关,参考VMware官方文档,如同嚼蜡。做完Linux桌面,其实发现并没有想象中的那么复杂,只不过步骤繁多,需要耐心。

如果需要做Ubuntu的桌面,参考这里 Horizon系列之安装配置Ubuntu18虚拟桌面

配置linux桌面,最重要的则是加域,horzion支持以下几种方式

1,OpenLDAP 服务器直通身份验证
2,针对 Microsoft Active Directory 的系统安全服务守护进程 (System Security Services Daemon, SSSD)LDAP 身份验证
3,加入 Winbind 域
4,PowerBroker Identity Services Open (PBISO) 身份验证

此文基于winbind加域,horizon 7.8,CentOS 7.6。

一,配置虚拟机模板

1,禁用ipv6,编辑文件/etc/sysctl.conf,添加下面的行:

net.ipv6.conf.all.disable_ipv6 =1
net.ipv6.conf.default.disable_ipv6 =1

保存并退出文件。
执行下面的命令来使设置生效。

sysctl -p

82041-ho7l7k4k07.png

2,禁用virbr0,

ifconfig virbr0 down
brctl delbr virbr0
systemctl disable libvirtd

12887-hce6944p2l5.png

3,禁用NMtool

systemctl stop NetworkManager
systemctl disable NetworkManager

54817-9jwos2cnjad.png

4,更改默认搜索域和DNS

在网卡配置文件加入

DNS1=192.168.80.100
DNS2=192.168.80.200
DOMAIN=lzuvdi.com

重启网络服务

28480-0pxxkr62apwb.png

5,配置yum,安装 winbind、samba 和 Kerberos 软件包,并把smb和winbind 加入开机自启

yum install -y samba samba-winbind krb5-workstation samba-winbind-clients authconfig-gtk
systemctl enable smb
systemctl enable winbind

6,图形界面加域,

authconfig-gtk

70178-fwyrgr15798.png

User Account Database:Winbind
Winbind Domain:LZUVDI
Security Model:ads
Winbind ADS Realm:LZUVDI.COM
Winbind Domain Controllers:ad1.lzuvdi.com,ad2.lzuvdi.com
Template Shell:/bin/bash

Advanced Options 勾选Create home directories on the first login

62628-xw2wzu1m6v7.png

Identiity Authentication 中点击 Join Domain

55867-mz0wnatwnpi.png

选择Save,输入域管理员密码加域,然后点击Apply,重启虚拟机系统。

7,查看加域信息

在域控中打开用户管理器,vdi虚拟机已加入域控

61730-sskvkydw0gh.png

虚拟机上查看域信息

net ads info

04329-82cpl6tih0u.png

新建用户

04553-g9ybtflxoxj.png

查找用户

id user01
id user02

08447-wax93hi8bqa.png

两个账号确实存在,虚拟机成功加域,为什么查找不到用户,换个方式

id user01@lzuvdi
id user02@lzuvdi

67439-puv4jukr2p.png

知道为什么吗?

[scode type="blue"]下面关键内容仅对打赏用户开放,之前通过微信打赏的用户,微信联系我获取密码,谢谢![/scode]