无人值守系统
使用光盘镜像来安装Linux系统的方法,坦白讲,该方法适用于只安装少量Linux系统的情况。如果生产环境中有数百台服务器都需要安装系统,这种方式就不合时宜了。这时,我们就需要使用PXE + TFTP +FTP + DHCP + Kickstart服务搭建出一个无人值守安装系统。这种无人值守安装系统可以自动地为数十台服务器安装系统,这一方面将运维人员从重复性的工作中解救出来,也大大提升了系统安装的效率
由于配置这个无人值守安装服务需要用到很多以前学到的东西,我们需要先快速配置一下。
部署相关服务程序
无人值守系统与客户端的设置
主机名称 | 操作系统 | IP地址 |
无人值守系统 | RHEL 7 | 192.168.10.10 |
客户端 | 未安装操作系统 | - |
首先配置DHCP服务程
DHCP服务程序用于为客户端主机分配可用的IP地址,而且这是服务器与客户端主机进行文件传输的基础,因此我们先行配置DHCP服务程序。首先按照表19-1为无人值守系统设置IP地址,然后按照图在虚拟机的虚拟网络编辑器中关闭自身的DHCP服务
然后我们安装DHCP服务程序。
别以为我-y写错地方了,这里也可以的,一样的。
然后配置我们DHCP主配置文件。
我们这里和前面说到的配置没有太大区别,就是开始allow允许了booting和bootp。开机的时候安装系统的一个协议。然后ddns-最后的interim是我们设置成内部,可以设置成none.因为不生效。
允许了BOOTP引导程序协议,旨在让局域网内暂时没有操作系统的主机也能获取静态IP地址;在配置文件的最下面加载了引导驱动文件pxelinux.0(这个文件会在下面的步骤中创建),其目的是让客户端主机获取到IP地址后主动获取引导驱动文件,自行进入下一步的安装过程。
next-server 下一跳的地址也就是网关的地址,其实我们现在也不需要,因为我们不需要上网。
filename是加载一个文件,就是当我们为用户分配好地址之后,他回去加载这个文件的意思。
这里DHCP有两个作用,第一个是分配网卡地址,第二个是执行pxelinux.0文件,当然现在还没有这个文件,我们待会创建。
重启服务并加入开机启动项,别忘了。
配置TFTP服务程序
下面我们配置一下TFTP服务程序。
vsftpd服务与TFTP服务。vsftpd是一款功能丰富的文件传输服务程序,允许用户以匿名开放模式、本地用户模式、虚拟用户模式来进行访问认证。但是,当前的客户端主机还没有安装操作系统,该如何进行登录认证呢?而TFTP作为一种基于UDP协议的简单文件传输协议,不需要进行用户认证即可获取到所需的文件资源。因此接下来配置TFTP服务程序,为客户端主机提供引导及驱动文件。当客户端主机有了基本的驱动程序之后,再通过vsftpd服务程序将完整的光盘镜像文件传输过去。
TFTP是一种非常精简的文件传输服务程序,它的运行和关闭是由xinetd网络守护进程服务来管理的。xinetd服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来响应用户的请求。需要开启TFTP服务程序,只需在xinetd服务程序的配置文件中把disable参数改成no就可以了。保存配置文件并退出,然后重启xinetd服务程序,并将其加入到开机启动项中(在RHEL 7系统中,已经默认启用了xinetd服务程序,因此在将其添加到开机启动项中的时候没有输出信息属于正常情况)。
下面我们配置tftp主配置文件。
它里面有个禁用的标识,我们不让他禁用,给他改成no。
然后我们重启xinetd服务并加入启动项。
TFTP服务程序默认使用的是UDP协议,占用的端口号为69,所以在生产环境中还需要在firewalld防火墙管理工具中写入使其永久生效的允许策略,以便让客户端主机顺利获取到引导文件。
配置SYSLinux服务程序
SYSLinux是一个用于提供引导加载的服务程序。与其说SYSLinux是一个服务程序,不如说更需要里面的引导文件,在安装好SYSLinux服务程序软件包后,/usr/share/syslinux目录中会出现很多引导文件
安装好之后我们进入/var/lib/tftpboot,这个目录大家记一下,这是我们tftp的家目录。
我们首先需要把SYSLinux提供的引导文件复制到TFTP服务程序的默认目录中,也就是前文提到的文件pxelinux.0,这样客户端主机就能够顺利地获取到引导文件了。另外在RHEL 7系统光盘镜像中也有一些我们需要调取的引导文件。确认光盘镜像已经被挂载到/media/cdrom目录后,使用复制命令将光盘镜像中自带的一些引导文件也复制到TFTP服务程序的默认目录中。
我们却让将光盘挂载到我们系统中用df -h查看,然后将文件复制进来,待会给我们客户端提供,他们也可以进行安装。
也就是这两个文件。
然后在TFTP服务程序的目录中新建pxelinux.cfg目录,虽然该目录的名字带有后缀,但依然也是目录,而非文件!将系统光盘中的开机选项菜单复制到该目录中,并命名为default。这个default文件就是开机时的选项菜单,如图Linux系统的引导菜单界面。
默认的开机菜单中有两个选项,要么是安装系统,要么是对安装介质进行检验。既然我们已经确定采用无人值守的方式安装系统,还需要为每台主机手动选择相应的选项,未免与我们的主旨(无人值守安装)相悖。现在我们编辑这个default文件,把第1行的default参数修改为linux,这样系统在开机时就会默认执行那个名称为linux的选项了。对应的linux选项大约在64行,我们将默认的光盘镜像安装方式修改成FTP文件传输方式,并指定好光盘镜像的获取网址以及Kickstart应答文件的获取路径:
我们先修改一下第一行修改为linux.第一行就是我们开机时候默认选择的那个菜单的名称。
开机里面有3个选项,安装检查排错,我们直接选择安装。然后我们直接来惊醒安装的意思。也就是选择linux。后面路径就是指向我们光盘镜像的这么一个路径。待会是通过网络来传输我们光盘镜像的。我们这个路径这里写成ftp也可以,我们用网络。然后我们这个服务提供了光盘的路径,然后ks.cfg。其中ks=就是kickstart,应答脚本的意思。我们先写上,现在没有这个文件,之后就会有。
配置httpd服务
因为我们是靠网络传输的,所以要却不料httpd服务,也就是我们的Apache
然后重启服务并且添加启动项。
然后我们将光盘里面的所有镜像文件复制到/var/www/html中。(时间可能比较长,3分钟左右)
然后我们进入里面看一下
都复制过来了。
然后我们再在html目录创建一个pub目录。这个得目的就是不用我们人为设置,全部写入到文件中让她自己执行,这一步就是我们安装时候需要选择那些网卡什么的流程,我们要全部自动化。
然后我们看一下这个文件,开始我们随便修改的一个文件,其实他就是一个ks文件,我们给他复制到pub目录中,改名为ks.cfg
然后我们编辑一下这个文件的内容
我们会看到里面内容特别多
第一个是我们把光盘修改为网络传输,
然后把第21行的时区修改成上海(Asia/Shanghai)
然后再把29行的磁盘选项设置为清空所有磁盘内容并初始化磁盘
所有以@开始的软件包的名称的话代表就是软件包的组。
这里的话配置文件没有支持分区配置,需要自己再添加,我们使用默认就可以,默认分区的话有3个/ 根分区 /swap交换分区 /boot 启动分区。
然后我们一定要一定要一定要清空一下我们的防火墙。
然后我们自己访问一下我们的网站,主要是访问ks.cfg文件,点击一下。
报错了。我们看一下什么原因。他告诉我们没有权限,那我们设置一下权限。
我们给他755权限。然后刷新一下,发现可以了。
然后我们开始使用,新建个虚拟机。按照流程,我们不选镜像,让他自己来装。
因为这个路径无所谓,我们安装在C盘占用内存,所以换一下。
为了避免说我们是不是用镜像安装的啊,我们把他给删除了,完全是无聊的一步,内核什么的自带的,我们选择大小无所谓。
好了,我们点击确定。
然后我们点击开机等着吧,很尴尬,报错了,我们看一下原因。
我们没有选择仅主机模式,现在我们再试一下。
在生产环境中,大家只需要将配置妥当的服务器上架,接通服务器和客户端主机之间的网线,然后启动客户端主机即可。