前面介绍了光盘安装和 U盘安装,但如果需要同时部署 10台服务器、100台服务器呢?采用无人值守安装,简单地讲,无人值守安装就是搭建一台安装服务器,将其他所有未安装的服务器作为客户端,客户端从服务器上下载所需的软件,并安装所有的客户端服务器,客户端服务器只要修改启动顺序为网络启动,就可以从服务器安装。这种安装方式大大简化了运维工程师的工作量,但是服务器端的搭建比较复杂,不适合初学者使用。
如果是初学者,请先跳过无人值守安装,因其设置复杂,所需 Linux知识众多,可以在读完本书后续章节后再来学习。
实现网络安装操作系统,有几个问题需要先明确。第一,既然是网络安装,那么客户端在启动时必须获取 IP地址,由谁(DHCP)分配 IP地址?第二,由谁(PXE)把客户端启动所必需的软件从服务器端传递到客户端?第三,由谁(Kickstart)定义客户端的安装选择?比如,选择什么语言?安装什么样的软件包?管理员密码是什么?第四,安装过程已经启动,本地安装是通过光盘或 U盘保存安装所需的软件包的,那么网络安装通过谁(HTTP、FTP、NFS)来发送所需的软件包?下面我们一一说明这些问题。
1.DHCP是什么
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种局域网的网络协议,它可以使 Client端(客户端)从 Server端(服务器端)自动获取 IP地址、子网掩码、网关及 DNS等网络配置信息,从而简化了 Client端的配置和操作,是局域网常用服务。
2.PXE是什么
PXE(Pre-boot Execution Environment)是由英特尔设计的协议,它可以使计算机通过网络启动。协议有 Server端和 Client端,PXE Client保存在网卡的 ROM中,当计算机启动时,BIOS把 PXE Client调入内存中执行,然后 PXE Client通过网络将放在 PXE Server端的启动文件下载到本地运行。注意,PXE Client和 PXE Server之间传递数据是通过 TFTP进行的,所以需要配置 TFTP服务器。
3.Kickstart是什么
Kickstart 是一种无人值守的安装方式。它把安装过程中所有需要人工干预填写的各种参数记录下来,并保存在一个名为 ks.cfg的文件中。如果安装过程中出现需要填写的参数,那么安装程序会从 ks.cfg中查找需要的配置。如果 ks.cfg文件把所有需要填写的参数都记录完整,那么安装过程中就不需要人为参与,从而实现自动安装。
4.HTTP、FTP、NFS是什么
HTTP、FTP、NFS都是 Linux中文件共享的方式,在这里使用一种就可以了,我们选择 HTTP服务。它的主要作用就是把安装过程中所需的软件包发布到网络上(注意,PXE发布的是启动必需文件),Client可以通过网络获取所需的软件包。
(1)准备工作:最少需要两台服务器,一台作为服务器端,一台作为安装的客户端(客户端可以是多台电脑)。在服务器端配置无人值守安装,客户端从服务器端获取系统。需要关闭防火墙和 SELinux,它们会干扰试验过程。需要搭建 yum源。
(2)在服务器上配置 DHCP服务。
(3)在服务器上配置 TFTP服务。
(4)在服务器上搭建用来发布安装软件包的服务,如 HTTP、FTP或 NFS等服务。我们在这里选择安装 Apache服务,使用 HTTP发布软件包。
(5)在服务器上由 Kickstart生成 ks.cfg(自动应答配置文件)。
(6)客户机的网卡支持 PXE(现在的网卡一般都支持)。
(7)客户机的主板支持网络启动(现在的主板一般都支持)。
试验过程按照第 2.4.2节介绍的步骤进行。
1.准备工作
(1)在服务器端关闭防火墙和 SELinux。注意一定要关闭,否则后续会报错。
(2)在服务器上搭建本地光盘作为 yum源的服务器。
① 将 CentOS 7.x的安装光盘放入服务器。
② 挂载光盘到指定目录。
③ 切换所在目录到 yum配置文件目录。
④ 把基本 yum源修改一下文件名,让它失效。
⑤ 修改光盘 yum源文件。
该文件的内容按照下面修改:
2.在服务器上安装并配置 DHCP服务
(1)安装 DHCP服务。
(2)需要修改一下配置文件/etc/dhcp/dhcpd.conf。但是这个文件默认不存在,在/usr/share/doc/dhcp-4.2.5/中有一个配置文件的模板文件 dhcpd.conf.example,把它复制到/etc/dpcp/下,并重新命名。
(3)修改配置文件。本节不是讲解 DHCP服务的,所以我们把不需要的服务全部注释掉,只启用最基本的功能。
(4)启动 DHCP服务,并让 DHCP服务开机自启动。
3.在服务器上安装并配置 TFTP服务
(1)安装 tftp-server服务。
(2)修改 TFTP服务配置文件。
(3)启动 TFTP服务。
(4)手工建立 TFTP服务器目录。
(5)复制客户端所需的引导文件到/tftpboot目录下。注意:如果安装的是 Basic Server(基本服务器),那么引导文件是没有被安装到系统中的,需要手工安装。
然后再复制引导文件 pxelinux.0到/tftpboot/目录下。
(6)复制客户端所需的配置文件到/tftpboot/目录下,配置文件在第一张光盘中。
所有文件复制完之后,最终/tftpboot/目录下及/tftpboot/pxelinux.cfg/目录下的文件如下所示:
(7)修改配置文件的内容。
4.搭建 Apache服务器,用来发布安装用软件包
(1)安装 Apache服务。
(2)把 CentOS 7.x安装光盘的所有内容复制到默认网页主目录。目前 CentOS 7.x的DVD版本只有一张光盘了,大小在 4GB左右,请在硬盘留足空间。
(3)启动 Apache服务,并保证 Apache服务开机自启动。
5.由 Kickstart生成 ks.cfg
因为手工书写配置文件过于烦琐,所以我们采用图形界面工具生成 ks.cfg(自动应答配置文件)。但是我们在安装时采用的是“最小安装”,并没有安装图形界面,所以需要先安装图形界面。
(1)安装图形界面。
注意 :执行 startx 命令,启动图形界面,需要在 Linux 本地字符界面中才可以,不能在远程工具中执行。
(2)启用 Kickstart工具。
· Basic Configuration(基本配置)界面:调整语言、键盘、时区和 root口令等,如图 2-63所示。
图2-63 基本配置
· Installation Method(安装方法)界面:选择“Perform new installation”(执行新安装),Installation source选择“HTTP”,指定 HTTP服务器的 IP地址和 HTTP目录(这里写“/”),如图 2-64所示。
图2-64 安装方法
· Boot Loader Options(引导装载程序选项)界面:这里选择“Install new boot loader”(安装新引导装载程序)和“Install boot loader on Master Boot Record (MBR)”(在主引导记录中安装引导装载程序)这两个选项。注意:不用设置GRUB密码,GRUB密码我们会在 Linux启动管理章节进行讲解,如图 2-65所示。
图2-65 引导装载程序选项
· Partition Information(分区信息)界面:选择“Clear Master Boot Record”(清除主引导记录),选择“Remove all existing partitions”(删除所有现存分区),否则在安装到分区步骤时,会出现确认提示,无法实现全自动安装。然后单击“Add”(添加)按钮添加所需分区,这里我们划分了/boot分区、swap分区和/分区,如图 2-66所示。
图2-66 分区信息
· Network Configuration(网络配置)界面:单击“Add Network Device”(添加网络设备)按钮,输入网络设备名,此处指定为 ens33(CentOS 7.5之后的系统网卡设备文件名稳定为 ens33,不再随机计算生产);网络类型指定为 DHCP,如图 2-67所示。
图2-67 网络配置
· Authentication(验证)界面:在“Use Shadow Passwords”(使用屏蔽密码)选项中,选择“SHA512”加密方式,如图 2-68所示。
图2-68 验证
· Firewall Configuration(防火墙配置)界面:“SELinux”选择“Disabled”(关闭),“Security level”选择“Disable firewall”(关闭),如图 2-69所示。
图2-69 防火墙配置
· Display Configuration(显示设置)界面:不要勾选“Install a graphical environment”(安装图形环境)选项,我们还是按照服务器的安装习惯,不安装图形界面,如图 2-70所示。
图2-70 显示设置
· Package Selection(软件包选择)界面:选择需要的软件包,这里建议还是采用最小化安装,不选择过多的附加软件包,如图 2-71所示。
图2-71 软件包选择
· 其他页面全部保持默认设置即可。选择“File”→“Save”命令,指定文件名和位置并保存。文件名指定为 ks.cfg,保存目录指定为/root/目录。
(3)复制 ks.cfg文件到 Apache主目录下。
启动客户端(注意这是另外一台测试 Linux的客户端,客户端的网络需要和服务器端的网络连通),修改 BIOS界面,选择启动方式为网络启动,如图 2-72所示。
图2-72 网络优先启动
如果一切顺利,那么客户端会自动安装 Linux系统,不需要用户做任何配置。
无人值守安装的服务器端配置相对复杂,新手不容易掌握。如果刚开始学习,则掌握光盘安装方法即可,在以后工作中用到或对无人值守安装感兴趣时再来学习。