一、前言
为啥要用无人值守安装系统?很简单的答案,就是方便日常工作。
常规装系统的办法有哪些?
无人值守安装系统好处都有啥?
二、PXE
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统。
在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。
PXE可以引导多种操作系统,如:Windows95 / 98 / 2000 / windows2003 / windows2008 / winXP / win7 / win8,Linux系列系统等。
严格来说,PXE并不是一种安装方式,而是一种引导方式。进行PXE安装的必要条件是在要安装的计算机中必须包含一个PXE支持的网卡(NIC),即网卡中必须要有PXE Client。
PXE协议可以使计算机通过网络启动。此协议分为Client端和Server 端,而PXE Client则在网卡的ROM中。
当计算机引导时,BIOS把PXE Client调入内存中执行,然后由PXE Client将放置在远端的文件通过网络下载到本地运行。
运行PXE协议需要设置DHCP服务器和TFTP服务器。DHCP服务器会给PXE Client(将要安装系统的主机)分配一个IP地址,由于是给PXE Client分配IP地址,所以在配置DHCP服务器时需要增加相应的PXE设置。
此外,在PXE Client的ROM中,已经存在了TFTP Client,那么它就可以通过TFTP协议到TFTP Server上下载所需的文件了。
PXE工作流程
1、PXE Client向DHCP发送请求
2、DHCP服务器提供信息
3、DHCP客户机接收IP和服务器的互动
4、PXE客户端请求下载启动文件
5、Boot Server响应客户端请求并传送文件
pxeliunx.0:网络引导程序pxe文件
pxelinux.cfg/default:指定镜像的位置或ks文件位置
vmlinuz:引导内核
initrd.img:小型的linux操作系统,类似于windows的PE
6、请求下载自动应答文件
7、客户端安装操作系统
三、Kickstart
Kickstart工作原理
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件。
如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便会弹出对话框让安装者手工填写。
所以,如果ks.cfg文件涵盖了安装过程中所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处下载ks.cfg文件,然后就去忙自己的事情。
等安装完毕,安装程序会根据ks.cfg中的设置重启/关闭系统,并结束安装。
四、搭建PXE+Kickstart环境
安装DHCP、TFTP-Server、HTTP
tftp-server被xinted所管理,所以需要安装xinetd来管理启动tftp-server
DHCP
DHCP概念
DHCP是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
所有客户机的IP地址设定资料都由DHCP服务器集中管理,并负责处理客户端的DHCP请求;而客户端则会使用从服务器分配下来的IP地址。
在此不详细阐述DHCP工作原理,若想了解可参考:https://www.cnblogs.com/wajika/p/6537085.html
DHCP服务器IP分配方式
主要提供三种IP分配方式:
配置DHCP
DHCP指定监听网卡
DHCPDARGS=
DHCPDARGS=eth1
DHCPDARGS=eth0 eth1
注意:在实际生产环境中,可能会有多个网络环境而且环境不会互通,可以结合自己公司的情况进行优化:
TFTP
TFTP概念
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。
TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。
配置TFTP
HTTP
HTTP概念
由于我们要获取安装系统服务的yum源以及内核文件,虚拟根文件,这些文件都是大文件,在传输时我们必须保证其能够安全传输,所以我们选择了HTTP服务,当然了,选择FTP服务也是可以的。
HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。是互联网上广泛试用的协议。是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分等。
HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
配置httpd
各文件配置后面会讲,ks文件夹中可以自定义ks文件和所使用到的文件。
PXE引导(bootstrap)
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。
它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。不仅支持采用BIOS结构的主板,而且从6.0版也开始支持采用EFI结构的新型主板。
注意:SYSLINUX不支持NTFS文件系统,所以磁盘必须是FAT(FAT16/FAT32)文件系统。
配置PXE引导
default文件解析
启动httpd、tftp、dhcp
ks.cfg文件
通常,我们在安装操作系统的过程中,需要大量的和服务器交互操作,为了减少这个交互过程,kickstart就诞生了。
使用这种kickstart,只需事先定义好一个Kickstart自动应答配置文件ks.cfg(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了在安装过程中多次的人机交互,从而实现无人值守的自动化安装。
生成kickstart配置文件的三种方法:
ks.cfg文件组成大致分为3段
命令段:
键盘类型,语言,安装方式等系统的配置,有必选项和可选项,如果缺少某项必选项,安装时会中断并提示用户选择此项的选项
软件包段:
脚本段(可选):
以下是ks配置文件的内容
可以根据自己所需进行调整,ks文件需要用.cfg结尾,必须与default文件中指定的位置相同。
ks.cfg
ip.sh、ip.txt、zabbix_agent.sh是安装后所需要执行的脚本,配置在%post块内,使用wget下载下来,再进行执行。可以自行编写脚本实现功能,比如根据机器序列号进行IP配置,进行内核参数调优,权限设置,加入zabbix监控等等。
以下附加一份IP配置脚本,因为比较特殊,需要在网卡上配置vlan,打vlan标签。
五、小结
上面具体说了有关于pxe+kickstart的原理,以及linux的自动化安装配置。下面简单说下esxi的自动化配置,原理是一样的。
自动化配置安装esxi6.0
以下环境192.168.1.1是http、tftp和dhcp的地址。先安装所需要的工具包:
配置DHCP
配置HTTP
配置TFTP
服务配置就是这些,下面是ks文件:
作者介绍:
季城希,甜橙金融运维工程师,多年IDC运维经验。擅长IDC中服务器批量高效快速集成交付,精通各品牌型号服务器硬件产品及维护。
本文由 Funstec非凡实验室 作者:Albert 发表,转载请注明来源!