在进行Windows Server 2012 R2虚拟化测试前,由于需要安装,部署和管理很多的服务器,自然会想到该如何提高效率和有效的管理。在Windows Server 2008的时代微软已经提供称作Windows部署服务(Windows Deloyment Services, WDS)的服务器角色,使用该服务器角色可以完成PXE和多播安装和部署服务器的任务。但是微软还有一个更强大的工具称为System Center Configuration Manager(SCCM)。SCCM其实是System Center家族中的一员,在System Center 2012 R2中,除Configuration Manager、Virtual Machine Manager和App Controller这两个我们在虚拟化中要使用的组件外,还包括Data Protection Manager、Endpoint Protection、Operations Manager、Orchestrator和Service Manager这些组件。
在微软官方文档中,这些组件中除Data Protection Manager、Operations Manager和Service Manager相互不能共存于同一台服务器外,其他组建都是可以共存的,因而这也为组件的测试带来了便利。
但是个人认为Configuration Manager的安装和配置比起Virtual Machine Manager来说是复杂许多的,前置条件非常多,特别对权限的配置,稍有不慎将影响软件的正常运行。另外Configuration Manager更多的是使用日志文件的方式记录作业的过程和错误,这也为使用软件带来的不小的麻烦。做开发的人都知道,日志文件是简单省事的做法,相当的不直观。虽然SCCM自带了日志工具Configuration Manager Trace Log Tool(位于安装目录下toolscmtrace.exe),但区分众多的日志,找到想要的信息也不是件容易的事,预计用户体验应该是下个版本的改进重点吧。
说了缺点,但是Configuration Manager 带来IT资产管理上的便利是显而易见的,所以遇到问题只能兵来将挡了。
一、准备安装的前置条件
1、安装Assessment and Deployment Kit (ADK)
ADK在Windows 8之前成为Windows Automated Installation Kit (AIK),其中包含很多组件,主要用于安装、部署和管理与微软产品相关的IT资产。可以在这里下载。这里的下载只是一个下载工具,下载整个包还是需要花较长的时间,因而建议提前准备。下载完成后在计划安装SCCM的服务器中安装ADK。
2、安装和配置SQL Server
多个System Center组件是可以共用一个数据库实例的,因而我们选择在另一台服务器上安装SQL Server,虽然增加了一些麻烦但却是值得的,另外如果考虑使用使用SQL Server集群,可以参考这里。对于SQL的安装和配置过程这里不再赘述,但是需要注意以下几个方面:
(1)SCCM 2012 R2支持SQL Server 2012,因而这里选择独立安装(stand-alone installation)SQL Server 2012。
(2)选择Database Engine Services、Integration Services和Management Tools - Complete等实例和工具。
(3)使用域账户运行服务,需要预先在Active Directory Users and Computers中新增一个域用户,用户名为sqlsvc。微软建议每个服务使用独立的运行账户,默认情况下SQL Server 2012会为每个服务预设一个独立的本地账户。简单起见,我为Database Engine Services、Analysis Services、Reporting Services和Integration Services等服务配置同一个域账户cloudsqlsvc。
(4)安装中文版SQL Server时请注意选择排序规则为SQL_Latin1_General_CP1_CI_AS,英文版默认就是这个。
(5)SQL Server安装完成后,在Microsfot Sql Server Management Studio中将SCCM服务器的在域中的计算机名cloudcloud-pm-ds01$添加为SQL Server的登录账号,并设置其属性Server Roles为sysadmin。SCCM使用计算机名作为凭证访问远程数据库。
在SQL Server计算机管理的本地用户和组中将cloudcloud-pm-ds01计算机账户加入Administrators组。
在SQL Server的C:WindowsSystem32LogFilesSum文件夹赋予cloudsqlsvc完全控制权限。
(6)在Microsfot Sql Server Management Studio中,调整CLOUD-PM-DA01服务器属性中的内存范围,SCCM将检查此项,不做限制安装过程将出现警告。
(7)在SQL Server Configuration Manager 中启用Named Pipes和TCP/IP协议。
(8)最后打开SQL Server所在服务器的防火墙限制,在Inbound Rules中打开1433、135、445和49155端口。对于1433、135和445端口比较好理解,但我对SCCM链接SQL Server时使用49155端口却很奇怪,在安装中未打开49155端口,通常无法成功连接数据库。这里有个小技巧,通常因防火墙原因无法连接,我们可以先关闭防火墙,正常连接后,通过命令netstat -an查看到底都使用了那些端口,然后开启防火墙,并只打开这些端口。
3、安装和配置Web Server (IIS)角色
(1)在SCCM服务器中安装Web Server(IIS)角色,如图选择相关组件。
(2)SCCM安装程序会在IIS中的配置应用以分发数据,因而需要在IIS中配置:
- 新增WebDAV Authoring Rules
- 修改WebDAV Settings中的值
- 启用Windows Authentication
(3)修改C:WindowsSystem32inetsrvconfigapplicationHost.config中的配置项<add fileExtension=".mdb" allowed="true" />
4、安装和配置DHCP Server和Windows Deploy Servies (WDS)服务器角色
这个步骤并非必须,如果计划使用SCCM的PXE和多播部署,那么就需要安装DHCP Server和WDS。另外在SCCM中如果配置启用PXE和多播部署时,WDS也会自动安装,这里我们选择先行在安装SCCM的服务器上安装WDS。
由于我们将DHCP Sever安装在SCCM同一服务器中,所以无需为DHCP Server配置066和067这两个Server Options,但如果DHCP Server安装在不同于SCCM的服务器中,那么就必须配置066 Boot Server Host Name的值为SCCM的服务器名或IP地址,配置067 Bootfile Name值为 smsbootx86wdsnbp.com。
另外,DHCP和WDS安装在同一服务器时,会同时使用67端口,因而需要在WDS安装过程中或WDS管理工具中勾选Do not listen on DHCP ports,同时也勾选Configure DHCP options to indicate that this is also a PXE server,这个选项会在DHCP中新增一个060 PXE Client的Server Options,其值为PXEClient。具体可以参考Configuring DHCP and WDS这篇文章。
5、安装.Net 3.5、Background Intelligent Transfer Service和Remote Differential Compression服务器功能。
在Windows Server 2012 R2中安装.Net 3.5需要用到Windows Server 2012 R2安装盘。如下图通过Specify an alternate source path选择一个指向Windows Server 2012 R2安装盘下的一个路径X:SourcesSxS,X为安装盘盘符。由于微软很多软件还需要.Net 3.5的支持,因而常常会需要这样做。
6、在域中配置SCCM计算机账户权限
在域服务器中打开ADSI Edit,在CN=System节点下新增一个值为System Management的container类型的对象。
在域服务器中打开Active Directory Users and Computers为System Management节点新增一个SCCM服务器的计算机账户,并使其拥有完成控制的权限,同时在高级中设置使权限应用于该对象和其下所有对象。
7、为SCCM扩展域架构
扩展架构,可以简单理解为为数据表新增字段。执行SCCM安装盘中SMSSETUPBINX64extadsch.exe程序以扩展域架构。完成后在域服务的系统根目录生成ExtADSch.log文件,日志记录Successfully extended the Active Directory schema,则预示扩展架构成功。