首先介绍下kickstart的工作原理和环境需要:
kickstart是借助pxe协议实现的
Pxe是由intel设计的协议,他可以是计算机通过网络启动,在网络发展越来越迅速的今天,这项协议和技术更显珍贵,此项协议通过网络爸网络上的计算机系统下载安装到本地计算机,要通过网络传送就需要ip地址,因此在过程中就需要服务器端有dhcp服务器,还有就是ftp服务器,还需配置tftp服务器,用于提供客户端pxe引导所必须的文件
以下是无人值守安装的过程详解:
第一步:PXE Client向DHCP发送请求
首先,将支持PXE的网络接口卡(NIC)的客户端的BIOS设置成为网络启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向网络中的DHCP服务器索取IP地址等信息。
第二步:DHCP服务器提供信息
DHCP服务器收到客户端的请求,验证是否来至合法的PXE Client的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。
第三步:PXE客户端请求下载启动文件
客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。
第四步:Boot Server响应客户端请求并传送文件
当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM 由 TFTP 通讯协议从Boot Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。
第五步:请求下载自动应答文件
客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。或许你会说,刚才PXE不是已经获取过IP地址了吗?为什么现在还需要一次?这是由于PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件。由于它们需要的内容不同造成PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序。从而进行两次获取IP地址过程。
接着会读取该文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。
第六步:客户端安装操作系统
将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。
OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。这个时候注意,在重新引导的过程中一定要将BIOS修改回从硬盘启动,不然的话又会重复的自动安装操作系统。
在上面介绍中PXE client是需要安装Linux的计算机,TFTP Server、DHCP Server和NFS Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核都放置在Linux Server上TFTP服务器的根目录下。而Linux根文件系统存放于NFS Server的共享目录中。
PXE client在工作过程中,需要三个二进制文件:bootstrap、Linux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。
以下是案例截图
安装kicktart
安装ftp
Tftp默认安装过
由于tftp服务区是依赖于超级守护进程 我们要编辑文件 /etc/xinetd.d/tftp,所该的值表示由用户请求的时候唤醒 disable 的参数值默认yes改为no
修改后启动tftp服务 由于依赖于超级守护进程 我们启动的方法用下面方法:
由于刚开始一个机器没有任何东西 他需要到tftp上下载一些驱动和引导内核我们要把一些驱动和内核文件拷过去
由于机器从tftp服务器上下载的时候也需要一些系统给的提示文件之类的东西 我们还需要给拷贝一些东西到指定建立的目录内
配置tftp服务器:
安装dhcp
配置dhcp服务器
启动dhcp服务
启动ftp服务
切换到光盘 把光盘文件拷到ftp的pub目录
配置pxe 切换到 根目录下的cd /tftpboot/pxelinux.cfg/ vim 打开 default (自己建立的目录)
配置kickstart
下面截图中的脚本是为了让机器安装后不与其他机器重名
将ks.cfg 拷贝到ftp目录下 可以让机器安装系统时能找到文件
以下截图为安装的过程 完全做到无人操作 可以用于批量网络安装
安装后重启
重启后自动获得地址
脚本的作用 在重启后的到的地址的同时给主机一个名字