操作系统批量装机所采用的安装方式主要有两种:kickstart和Cobbler
该实验的原理图:
实验中pe请求工作流程:
- pxe客户端发送udp广播请求: PXE 客户端从自己的PXE网卡启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向本网络中的DHCP服务器索取IP。
- DHCP服务器提供信息: DHCP服务器收到客户端的请求,验证是否来至合法的PXE 客户端的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。
- pxe客户端请求下载启动文件: 客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件
- TETP服务器响应客户端请求并传送文件: 当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM由TFTP通讯协议从tftp服务器 下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。
- 请求下载自动应答文件: 客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。接着会读取default文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。
- 客户端安装操作系统: 将ks.cfg文件下载回来后,通过该文件找到http镜像,并按照该文件的配置请求下载安装过程需要的软件包。 http镜像和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。
本次实验,将上面需要的三种服务安装在同一台机子上,
kickstart文件可以通过下面三种方式进行生成:
- 手动书写
- 通过system-config-kickstart图形工具
- 通过红帽的安装程序Anaconda自动生成
需要关闭防火墙, selinux,iptables
使用yum安装,system-config-kicstart: 启动时也是直接输入命令
搭建DHCp服务,自动分配ip地址
DHCP服务器主要实现在企业内部网络为客户端分配IP地址等网络参数。在我们的无人值守环境中,当客户端选择从网络启动后,就会通过发送广播数据包的形式寻找DHCP服务器,从DHCP获得IP地址等参数后才可以通过TFTP共享读取启动文件。
下载: yum -y install dhcp
安装后,DHCP服务的主配置文件为/etc/dhcp/dhcp.conf,我们可以修改配置文件以实现为客户端分配网络参数。
Copy样例文件到/etc/dhcp/dhcp.conf
然后修改: vim /etc/dhcp/dhcpd.conf(主要修改部分)
启动服务,检查端口:
2.搭建tftp服务,:
tftp服务为客户端提供了一种简单的文件共享,非常适用于传输小且简单的文件传输,的PEX启动文件,
yum install xinetd tftp tftp-server
vim /etc/xinetd.d/tftp;
查看端口信息:
获取pxelinux.0系统:
安装syslinux并拷贝pxeLinux.0文件到tftp服务器.
yum install syslinux -y 通过安装获得syslinux引导文件
之后将:文件进行拷贝: cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
将镜像放在光驱并运行下面的挂载命令,从光盘中复制镜像文件和启动配置文件,到tftp共享目录.
执行挂载命令: 将光驱挂载到主机上:
mount -o loop -t iso9660 /dev/sr0 /media
-o 是: 特殊选项:可以指定挂载的额外选项,比如读写权限、同步/异步等,如果不指定,则使用默认值(defaults)
在将镜像中的相关文件复制到tftp的根目录中.
执行拷贝命令: cp -a /media/isolinux/* /var/lib//tftpboot
然后进入到/var/lib//tftpboot
mkdir pxelinux.cfg
cd pxelinux.cfg
在该目录下创建default文件:
default vesamenu.c32
timeout 60
display boot.msg
menu background splash.png
menu title girl of beauty
label centos7 64 <Auto Installation>
menu label Install CentOS Linux ^7 x86_64 <Auto>
kernel vmlinuz
append initrd=initrd.img inst.stage2=ftp://192.168.181.6/pub inst.repo=ftp://192.168.181.6/pub inst.ks=ftp://192.168.181.6/ks.cfg
label centos7 64 <Manual Installation>
menu label Install CentOS Linux ^7 x86_64 <Manual>
kernel vmlinuz
append initrd=initrd.img inst.stage2=ftp://192.168.181.6/pub
label local
menu default
menu label Boot from ^local drive
localboot 0xffff
menu end
-
搭建ftp服务:
FTP是file Transfer Protocol的简写,及文件传输协议。目前市面上有很多可以实现FTP协议的软件,Vsftp就是一种利用FTP协议进行数据共享的软件,vsftp主要特色就是提供一种安全的数据共享服务。我们可以使用它作为Centos系统文件的共享服务平台,当客户端从网络启动正式进入到安装界面后,还需要读取Centos光盘中的系统文件,以完成最后的安装。这些文件就通过vsftp共享给网络用户。
安装: yum install vsftp -y
systemctl restart vsftp 重启服务
在将之前光驱挂载到其他指定位置:
umount /media
mount /dev/sr0 /var/ftp/pub
然后启动kickstart图形化页面:
执行命令:
然后可以使用ksvalidator ks.cfg 检查语法错误
将ks应答文件移动到/var/ftp下,然后重启服务
然后创建新的虚拟机进行测试:
光标移动到最后,然后回车,按住shift和+号移动到第一个位置,最终结果如下:
然后f10保存,退出
然后进入下面的界面,选择第一项.