pxe+ks实现自动安装Centos7
pxe介绍
PXE(Preboot eXecuteEnvironment,预启动执行环境)是由 Intel 公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持 PXE 技术),实现客户端从网络引导启动安装操作系统
kickstart介绍
自动应答文件,事先编辑好安装系统时的选项,实现系统自动安装
所需服务:syslinux、tftp、ftp、dhcp、kickstart
测试环境:使用vmware虚拟机测试,pxe主机和测试机需使用同一网络模式,关闭vmware自带的dhcp服务
环境:一台pxe主机,一台测试机。pxe机器ip 192.168.181.6
1、pxe主机配置
1、关闭防火墙
iptables -F
systemctl stop firewalld
2、安装dhcp,配置dhcp
部分相关参数说明:
allow bootp; 允许bootp引导
filename "pxelinux.0"; 引导驱动文件 pxelinux.0
next-server 192.168.181.6; 向指定ip查找引导驱动文件
此处pxe主机ip为192.168.181.6,设置dhcp子网范围192.168.181.100-200
yum install -y dhcp
[root@pioneer~]# vim /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style none;
ignore client-updates;
subnet 192.168.181.0 netmask 255.255.255.0{
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.181.6;
range dynamic-bootp 192.168.181.100 192.168.181.200;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.181.6;
filename "pxelinux.0";
}
systemctl restart dhcpd
systemctl enable dhcpd
3、安装taftp,配置tftp
由于客户端主机还没有ip,需要使用udp(69)服务tftp来获取引导和驱动文件
此处使用xinetd服务来管理tftp-server;
yum install -y tftp-server xinetd
[root@pioneer~]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type= dgram
protocol= udp
wait= yes
user= root
server= /usr/sbin/in.tftpd
server_args= -s /var/lib/tftpboot
disable= no
per_source= 11
cps= 100 2519
flags= IPv4
}
systemctl restart xinetd
systemctl enable xinetd
4、挂载iso镜像文件
用于提供pxe安装时,客户端获取系统安装文件;实现pxe主机的一些必要文件
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom/
5、安装syslinux服务
提供引导加载的服务程序,提供用于pxe启动的相关文件,相关目录/usr/share/syslinux下,有很多用于引导的相关文件
yum install -y syslinux
cd /var/lib/tftpboot
cp/usr/share/syslinux/pxelinux.0 .
cp/media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .
cp/media/cdrom/isolinux/{vesamenu.c32,boot.msg} .
编辑启动菜单项
复制的default文件,实际上就是pxe引导后客户端安装系统启动界面
mkdir pxelinux.cfg
cp /media/cdrom/isolinux/isolinux.cfgpxelinux.cfg/default
vim pxelinux.cfg/default
default vesamenu.c32 替换为 default linux
label linux菜单项所在apend行
由append initrd=initrd.imginst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
修改为append initrd=initrd.imginst.stage2=ftp://192.168.181.6 ks=ftp://192.168.181.6/pub/ks.cf quiet
6、配置vsftpd服务,复制光盘文件到ftp目录下
光盘文件已挂载到/media/cdrom/下
yum install -y vsftpd
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
systemctl enable vsftpd
cp -r /media/cdrom/* /var/ftp
7、创建ks文件
在系统安装后,在/root目录下会生成一个anaconda-ks.cfg,文件内容是由安装当前系统时配置的选项生成的;使用此文件作为ks.cfg文件
复制文件到ftp目录下
cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
chmod +r /var/ftp/pub/ks.cfg
编辑ks.cfg文件
vim /var/ftp/pub/ks.cfg
修改cdrom行为url--url=ftp://192.168.181.6
修改clearpart --none --initlabel行为clearpart --all --initlabel
pxe主机配置已完成
2、客户端配置
新建客户端虚拟机,需要注意的是磁盘格式选择scsi或sata,和网络模式需和pxe主机一致,之后启动测试机,自动从网络pxe启动,全程无干预即可安装成功
补充:
1、可以用http协议代替ftp,来完成镜像安装文件的传输
操作如下:
安装httpd服务,httpd提供web服务文件路径/var/www/html,创建镜像文件软链接到此目录下
ls -s /media/cdrom /var/www/html/cdrom
将之前存放在ftp共享文件路径下的ks.cfg文件拷贝到此/var/www/html/
cp /var/ftp/pub/ks.cfg /var/www/html/
编辑vim/var/lib/tftpboot/pxelinux.cfg/default
修改label linux菜单项所在apend行
由label linux菜单项所在apend行
由append initrd=initrd.imginst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
修改为append initrd=initrd.imginst.stage2=ftp://192.168.181.6 ks=ftp://192.168.181.6/pub/ks.cf quiet
修改为append initrd=initrd.imginst.stage2=http://192.168.181.6/media ks=http://192.168.181.6/ks.cfg quiet
编辑ks.cfg文件
vim /var/www/html/ks.cfg
修改url --url=ftp://192.168.181.6为url --url=http://192.168.181.6/media
2、主要的文件路径:
ftp方式
vim /var/ftp/pub/ks.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
http方式
vim /var/www/html/ks.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
3、使用ftp实现镜像文件传输时,可使用软链接将挂载镜像路径链接到ftp文件路径下
ls -s /var/ftp/cdrom /media/cdrom
4、使用system-config-kickstart图形工具来配置ks应答文件
yum install system-config-kickstart
system-config-kickstart #启动工具,配置完成后保存文件

5、pxelinux.cfg/default文件参数解释
default memu.c32 启动字符界面
default vesamenu.c32 启动图形界面
default linux 直接选择从linux项启动,linux项内容在文件后面补充
memdisk 将内存转换为磁盘使用
6、ks.cfg文件参数解释
7、在grub界面按tab键可手动编辑启动项参数


8、一份default、ks.cfg文件
本文来自博客园,作者:赛博狗尾草,转载请注明原文链接:https://www.cnblogs.com/gpysir/p/18800309
浙公网安备 33010602011771号