用SCCM 2012快速部署系统
2018-11-07
在局域网环境,如果需要批量安装系统的话,采取手工逐台安装方式显然是不适合的。SCCM 2012是管理员维护网络运行的常用工具,利用其提供的批量部署功能,可以灵活高效地完成系统的分发工作。同普通的安装方式相比,SCCM 2012提供的部署功能具有批量、高速、定制化安装等特点,大大提高了安装的效率,对于局域网的高效运维极为有利。
配置分发点服务属性
SCCM 2012安装在中心站点服务器上,在SCCM 2012管理控制台左下角点击“管理”项,在左侧点击“分发点”项,在右侧列表中选择合适的分发服务器(本例为简单起见,将主站点服务器作为分发点服务器),点击工具栏上的“属性”按钮,在打开窗口中的“PXE”面板中选择“为客户端启用PXE支持”项,会弹出提示信息,提醒用户需要在防火墙上开启UDP 67/68/69/4011端口。当选择了该项后,实际上在该分发服务器已经开始自动安装WDS角色了。选择“允许此分发点响应传入的PXE请求”和“启用未知计算机支持”项,使其更好地支持客户端的PXE连接请求。
为了提高安全性,可以选择“当计算机使用PXE时要求密码”项,输入所需的密码。在默认情况下,本机可以响应所有网络接口上的PXE请求。在实际的生产环境中,需要为本机配置多块网卡,分别用来处理管理流量和PXE分发流量。为此,可以选择“响应特定网络接口上的PXE请求”项,选择与之关联的网络接口。在“多播”面板中选择“启用多播以将数据同时发送到多个客户端”项,允许分发点服务器同时将系统安装映像包同时推送到多台客户机上。选择“启用计划的多播”项,在“最小会话大小(客户端)”栏中更改同时推送的客户端数量(默认为20个客户端)。
图1 创建任务序列向导
这样,只要客户端的数量达到该数量后,分发点服务器才会允许其下载系统安装映像包。点击确定按钮,保存配置信息。为了让部署操作顺利进行,需要配置合适的网络访问权限。在左侧选择“站点配置→站点”项,在右侧选择上述分发服务器,点击工具栏上的按钮“设置→软件分发”项,在打开窗口中的“网络访问账户”面板中选择“指定访问网络位置的账户”项,点击“设置”按钮,导入合适的域账户。这样,不受信任的计算机就可以顺利地进行远程安装系统操作。
添加操作系统映像包
在SCCM 2012控制台左下角点击“软件库”,在左侧选择“操作系统→操作系统映像包”项,点击工具栏上的“添加操作系统映像包”按钮,在向导界面中点击浏览按钮,选择操作系统映像(例如Windows 7安装盘中的“install.wim”文件,为了便于使用,可以将该文件保存到某共享目录中)。点击下一步按钮,输入该映像的名称(默认为“Windows 7 STARTER”),版本和备注信息。点击下一步按钮,完成导入操作。
注意,如果启用了多播功能,需要选择该映像的名称,点击工具栏上的“属性”按钮,在属性窗口中的“分发设置”面板中选择“允许通过多播传输此包(仅WinPE)”和“仅通过多播传输此包”项。点击应用按钮,保存配置信息。
添加任务序列项目
在左侧选择“操作系统→任务序列”项,点击工具栏上的“创建任务序列”按钮,在向导界面(如图1)中选择“安装现有的映像包”项,在下一步窗口中设置序列名称(例如“Win7xl”)和描述信息,点击浏览按钮,根据需要选择32位或64位的“Boot image”启动文件,在SCCM 2012中已经内置了上述启动映像包。点击下一步按钮,在安装Windows操作系统窗口中点击浏览按钮,选择上述添加的Windows 7的安装映像包。
注意,在该映像包中包括不同版本的系统安装包,在“映像”列表中显示所有版本的安装包,可以根据需要进行选择,例如选择“5-Windows 7 ULTIMATE”版本。
默认情况下,在安装时自动对目标计算机的磁盘进行分区和格式化。输入产品密钥,设置服务器授权模式,如果不想禁用本地管理员账户,可以选择“始终使用同一管理员密码”项,来统一设置本地管理员的密码。在下一步窗口中可以根据需要,选择加入的工作组还是域环境。如果加入域的话,需要点击设置按钮,指定有权限加入域的账户。点击下一步按钮,点击浏览按钮,选择Configuration Manager客户端包。这样,当部署操作系统完毕后,可以在目标计算机上安装SCCM 2012的客户端程序。在下一步的配置状态迁移窗口中取消所有的选择项目,其余的设置保持默认,点击完成按钮,创建该任务序列。
图2 部署任务序列向导
图3 分发内容向导界面
编辑任务序列属性
选择该任务序列,点击工具栏上的“编辑”按钮,在打开窗口中可以对WinPE启动、磁盘分区、网络设置、驱动程序等对象进行深入的调整。例如选择“对磁盘分区0”项,在右侧显示在默认情况下,对整个磁盘分为一个分区。可以将其删除,点击添加按钮,输入新的分区名称,设置分区类型,使用的大小,是否为启动分区等。这样,可以根据需要合理地对磁盘进行分区,得到多个磁盘分区。
部署任务序列
选择该任务序列,点击工具栏上的“部署”按钮,在向导界面(如图2)中的“集合”栏中点击浏览按钮,在选择集合窗口中选择特定的集合,以及对应集合中成员数量。所谓集合指的是规划好的某些计算机,例如所有台式机和服务器客户端、所有移动设备、所有系统、所有未知计算机等。可以根据需要选择所需的集合,例如选择“所有位置计算机”项,这样当新的计算机加入后,就可以自动安装操作系统。点击下一步按钮,选择“可供启动媒体和PXE使用”项,在“目的”列表中选择“可用”项,表示当存在多个任务序列的话,可以灵活选择。如果希望在特定的时段内,才执行系统的部署操作,可以在下一步窗口中设置该部署计划的可用和过期时间范围。其余的设置均保持默认,完成部署的配置操作。
分发启动映像包
在SCCM 2012控制台左侧选择“操作系统→启动映像包”项,选择所需的“Boot image”启动文件,点击工具栏上的“属性”按钮,在打开窗口中的“数据源”面板中选择“从PXE服务点部署此启动映像”项,可以自动创建执行PXE启动所需的文件。之后选择上述“Boot image”启动文件,点击工具栏上的“分发内容”按钮,在向导界面中点击下一步按钮,在指定内容目标窗口中点击按钮“添加→分发点”项,选择上述使用的分发点服务器,点击下一步按钮,完成分发操作。
这样,就将所需的“Boot image”启动文件分发到了指定位置。同样的,在左侧选择“操作系统→任务序列”项,选择上述任务序列项,点击工具栏上的“分发内容”按钮,在向导界面中显示分发的内容(如图3),包括SCCM 2012客户端程序,“Boot image”启动映像包,操作系统映像包等,点击下一步按钮,按照同样的方法,将其分发到指定的位置。
配置DHCP选项
图4 设置DHCP选项窗口
当分发完成后,在DC域控上对DHCP进行必要的配置。在服务器管理器中安装DHCP角色,在DHCP配置界面中设置其名称,IP范围(例 如 192.168.1.100到192.168.1.200等)等参数。在DHCP控制台左侧选择“作用域→作用域选项”项,默认只存在006 DNS和015 DNS项目。在其右键菜单上点击“配置选项”项,在打开窗口(如图4)中选择“066 启动服务器主机名”项,输入上述分发点服务器的IP。选择“067 启动文件名”项,在“字符串值”栏中输入“wdsnbp.com”文件的存储路径(例如“SMSBootx86wdsnbp.com”)。
注意,该文件分为32位和64位两个版本,该文件应在上述启动服务器上,将两者结合起来可以确定其位置,点击确定按钮保存配置信息。为了允许客户端在远程安装系统时,可以自定义计算机的名称,可以在SCCM 2012控制台左侧选择“资产和符合性→设备集合”项,在右侧选择“所有未知计算机”项,点击工具栏上的“属性”按钮,在打开窗口中的“集合变量”面板中点击添加按钮,在新变量窗口中输入变量的名称“OSDComputername”,点击确定按钮保存配置。
执行远程部署操作
配置好SCCM 2012和DHCP服务器后,当启动客户端连入网络后,开机进入主板BIOS设置界面,在启动顺序面板中将“Network boot From 网卡名”之类的项设置为首个引导设备,保存信息后重启系统,内置的PXE网卡会向DC上的DHCP服务发送广播包,来申请所需的IP,当获得IP后,会按照预设的DHCP选项参数,从指定的启动服务器上获取启动文件,当启动完成后,就会通过TFTP协议将相关的WinPE文件从分发点服务器下载到本地内存中。
之后加载WinPE环境,接着会运行SCCM安装向导,并显示所有可用的任务序列,选择所需的任务序列(例如“Win7xl”),就可以按照该任务序列的区域设置,确定键盘和输入方法后开始安装系统,具体操作和常规安装完全一致。
如果启用了多播功能,那么客户端的计算机数量必须达到预设值,否则将无法进行远程部署。因为设置了上述集合的变量,所以在远程启动时可以双击该变量名,修改客户端计算机的名称。由用户在本地所打开的终端称为虚拟终端tty,由用户在远程打开的终端称为伪终端pts。由于绝大多数情况下我们都是远程对Linux服务器进行管理,因而用户所使用的终端主要是伪终端pts。每个终端都有相应的编号,执行tty命令就可以查看到用户当前所在的终端编号。
进程中的终端信息
Linux系统中的进程与启动进程的终端之间是紧密关联的,比如我们直接执行不带任何选项的ps命令,将只显示当前用户在当前终端所启动的进程。
可以看到,当前用户只启动了2个进程,分别是“bash”和“ps”。其中“ps”就是刚才执行的ps命令所产生的进程,而“bash”则是当前终端所对应的终端进程,它也是ps进程的父进程。
如果希望查看系统中所有的进程,就需要为ps命令加上相应的选项,比如常用的选项组合“aux”,其中的选项“a”就表示显示与当前终端有关的所有进程,选项“x”表示显示与当前终端无关的所有进程,因而两个选项结合起来就表示显示系统中的所有进程了。
比如分屏查看当前系统中所有进程的详细信息。
在详细的进程信息中可以看到,很多进程的TTY字段显示为“?”,这表示该进程不是由用户在某个终端启动的,而是由系统内核所启动。
对于那些由用户执行命令所启动的进程都是与终端相关的,当把终端关闭,该终端中的所有进程也都会自动关闭。这是Linux系统一个非常重要的特点,下面的两个实例都是对这个特点的具体应用。
进程的后台启动
进程就是运行中的程序,我们只要在Shell命令行下输入并执行某条命令,就会启动一个相应的进程。Linux系统中的进程有前台进程和后台进程之分,通常情况下我们执行命令所产生的进程都是前台进程,前台进程的一个重要特点是会占据当前终端,当进程没有结束的时候,用户不能在当前终端中再进行其他的操作。
比如我们执行“nc -l-p 8000”命令侦听TCP8000端口(CentOS7中默认没有安装nc,如果已经配置好yum源,可以执行“yum install nc”命令安装),这条命令执行之后,将会一直处于运行状态,如果用户不按Ctrl+C键强制终止,该进程将一直占据当前终端。
如果在要执行的命令后面加上一个“&”符号,此时进程将转到后台运行,其执行结果不在屏幕上显示,该进程也不会占据当前终端,用户仍可以继续执行其他的操作。
比如,在后台执行nc命令侦听TCP8000端口。
当然,也可以直接执行命令启动一个前台进程,然后再通过按下Ctrl+Z组合键,将该进程转入到后台。只不过通过这种方式转入到后台的进程将处于停止状态,需要再通过执行bg命令使其在后台继续执行。
无论是通过在命令后面加“&”符号在后台执行的进程,还是通过Ctrl+Z组合键而转往后台的进程,它们都与当前终端相关。如果将当前终端关闭,那么这些在后台运行的进程也将全部关闭。这样如果我们希望能够通过nc命令在系统中始终监听TCP8000端口,这就很难实现了。
因而,如果希望某些进程能够始终在后台运行,那么可以通过nohup命令解除与当前终端之间的关系。比如,我们希望无论当前终端是否关闭,始终都在后台执行nc命令监听本机的TCP6000端口,那么可以执行下面的命令:
命令执行之后,将当前终端关闭,然后再次打开一个新的终端,执行“ps aux| grep nc”命令查找nc命令所产生的进程,可以看到由“nc -l -p 6000”命令产生的进程所对应的终端已经变为了“?”,即由系统内核启动,而不再与任何终端关联。
这样,这条命令所产生的进程就成为了系统的后台进程,如果管理员不用kill命令强制终止,这个进程将一直运行下去。
踢出系统中的可疑用户
下面再通过一个实例进一步说明进程和终端之间的关系。
由于Linux是一个多用户的操作系统,作为管理员就需要随时了解当前正在有哪些用户在登录系统。通过执行who命令可以查看当前正在登录系统的用户以及其相关信息。