任务4.5 Shell脚本之一键部署PXE
微课:4-4.Shell实训4
任务目标
首先,在Linux操作系统下,让读者理解自动化管理程序的技术原理;其次,在Linux操作系统环境下,让读者了解应用类系统软件的开发思想。
任务分析
相比前面的任务,本任务的难度更大。首先,读者需要对Linux操作系统有深入了解,需对计算机网络的原理有一定了解。其次,读者能够在Linux操作系统中进行运维管理,以及具备排错的能力。再次,读者应深入了解编程的思想,能够开发应用程序。最后,在开发、调试过程中,读者需深入了解Linux底层技术,能够理解操作系统内核的启动过程,能够熟练管理和更改操作系统的底层配置文件。
任务描述
(1)使用函数编写PXE相关配套软件的Shell脚本程序,完成对所有服务的配置文件的开发。
(2)在调用函数环节实现逻辑控制,通过对每个组件的判断来完成PXE服务的安装,运行PXE以支持服务软件。
(3)设置操作系统内核文件,设置客户端服务器网络。
(4)自动化完成人机交互配置任务。
(5)远程启动安装程序,完成客户端/服务器操作系统的安装。
任务实施
编写一个Shell脚本程序,自动部署PXE服务母机所需服务配置,实现完全无人工干预,安装所需的服务配置。检测操作系统中是否存在相同的服务,如果有相同的服务,就跳过安装步骤,并提示管理员某个服务已存在。本任务结合生产环境进行开发,包含默认配置文件、dhcpd网络服务配置文件、ks.cfg配置清单文件、Shell脚本安装主程序。
1.Shell脚本安装主程序
Shell脚本安装主程序采用函数编写,动态调用配置文件,代码如下:
2.默认配置文件
默认通过操作系统引导界面配置文件,并在Shell脚本主程序中调用,代码如下:
3.dhcpd网络服务配置文件
为方便用户修改网络环境,所有网络配置IP地址全写入dhcpd配置文件中,执行Shell脚本程序时,在此文件中读取相应配置信息。详细代码如下所示:
4.install_pxe.ini为Shell脚本之环境变量
所需变量全部写入install_pxe.ini文件中,包含主机环境变量、网络IP环境变量、软件资料路径环境变量。当需要相应的环境变量数据时,我们从此配置文件中读取,再根据自己的网络环境进行更改,详细代码如下所示:
5.ks.cfg配置清单文件
ks.cfg配置清单文件用于保存系统安装过程中所需的人机交互配置信息,操作系统在安装过程中如分区等都直接读取ks.cfg配置清单文件中的信息,详细代码如下所示:
任务思考
学习完本任务的知识点后,请思考:开发大型的自动化Shell脚本应用程序,并在该程序的基础上进行封装,或者分析大型互联网公司数据中心的自动化部署操作系统软件。
任务评价
通过学习本任务的知识点,读者能够熟练编写出高可执行的自动化Shell脚本程序,可以提升Linux软件开发和编写Shell脚本程序的能力。