如何在windows容器内安装Horizon Connection Server

前言:

        部门最近一段时间内开发,运维的这个SaaS服务叫做HLCM,全称是Horizon Lifecycle Management, 这个部署和升级服务可以帮助客户在VMware运维的 VMware Cloud on AWS(简称VMC) 数据中心内,自动部署一套即时可用的Horizon View环境。对于Horizon View来说,Horizon Connection Server是其中的核心组件,之前都是部署在windows server上,移植性比较差,所以提出了在windows container 中部署的需求。

探索过程:

        众所周知,Horizon Connection Server部署的前提要确保服务器已经加入了域环境(这里对于加域为必要前提的原因大致为需要借助域认证等一系列域功能),所以首要解决的问题是windows container 的加域问题,大致经历了一下几个阶段的尝试。这里需要说明的是,由于windows nanocore 镜像包含的功能十分有限,我们选择了windows servercore 镜像。

  • 类比普通windows server加域过程

NETDOM JOIN(加入域命令) %COMPUTERNAME% (获取客户端计算机名称,也可以直接输入计算机名。) /DOMAIN:dc.com(所需加入的域名) /UserD:luogr(用户帐号) /PasswordD:P@ssw0rd(用户密码) /REBOOT(加入域后是否需要重启)

        使用此方法会一直提示:There was no offline join operation pending.(匪夷所思的开始)网上能找到的原因比较有限,不过相关offline的内容大多提到了脱机,这也引出了我即将尝试的第二种方法。

  • 脱机加域

        在2008之前的域环境下,一般我们执行加域操作的时候,必须有可用的网络连接,才可以成功。但是在Windows server 2008 R2之下,这一操作得到改善,我们可以利用Windows server2008 R2的离线加域功能,在不需要网络连接的前提下,在域中预先使用djoin.exe命令创建好计算机帐号,然后将生成的文本文件导入到客户端计算机上执行djoin.exe命令,就可以完成离线加域操作。

执行离线加域只需要执行下面两个步骤即可:

(一) 在AD中预先创建客户端计算机账户,将账户信息保存到文件中

djoin /provision /domain <domain_name> /machine <destination computer> /savefile <filename.txt> [/machineou <OU name>] [/dcname <name of domain controller>] [/reuse] [/downlevel] [/defpwd] [/nosearch] [/printblob]

(二) 将保存的文件导入到客户端计算机,用djoin命令调用该文件,将计算机离线加入域

djoin /requestodj /loadfile <filename.txt> /windowspath <path to the Windows directory of the offline p_w_picpath> /localos

       采用脱机加域出现了更加匪夷所思的现象,显示所有成功,但是加域并没有成功,好像没有操作过任何东西一样,不过也算学习到了一种全新的加域方式。顺便总结一下脱机加域的优势。

       脱机加入域是一个新过程,运行 Windows® 7 或 Windows Server® 2008 R2 的计算机可使用该过程加入域,而无需连接域控制器。这使得可以在未连接到企业网络的位置将计算机加入域。

       例如,组织可能需要在数据中心部署大量虚拟机。通过脱机加入域,虚拟机可以在安装操作系统之后的初始启动过程中加入域。不需要另外重新启动,即可实现加入域。这样可显著减少大规模部署虚拟机所需的总时间。

       加入域会在运行 Windows 操作系统的计算机与 Active Directory(R) 域之间建立信任关系。此操作需要更改 Active Directory 域服务 (AD DS) 和加入域的计算机的状态。在过去,若要使用以前版本的 Windows(R) 操作系统完成加入域,加入域的计算机必须正在运行,并且拥有网络连接以连接域控制器。脱机加入域相对于以前的要求提供了以下优势:

  1. 计算机不需要任何网络通信,即可完成 Active Directory 状态更改。

     
  2. 与域控制器之间不需要任何网络通信,即可完成计算机状态更改。

     
  3. 每个更改集可在不同的时间完成。
  • 通过gMSA实现域的功能

        这里推荐两篇国外的博客

https://blogs.msdn.microsoft.com/containerstuff/2017/01/30/create-a-container-with-active-directory-support/

https://hansstan.wordpress.com/2017/07/05/using-group-managed-service-accounts-with-iis/

        根据这两篇参考,大概知道,Windows容器不提供Active Directory支持,而且由于其性质,它们还不能作为完整的加入域的对象,但是可以通过使用全局管理服务帐户(gMSA)来支持一定级别的Active Directory功能。

        有关gMSA的具体内容这里不再赘述,详见https://blogs.technet.microsoft.com/askpfeplat/2012/12/16/windows-server-2012-group-managed-service-accounts

猜你喜欢

转载自blog.csdn.net/cwz59186/article/details/100185257