PXE实现自动化安装linux系统流程
实验环境:本地vm下centos7:192.168.137.130 主机模式(网络配置)
简介:
PXE:pre-boot execution environment——预启动环境
需知:同一个网段,ip范围,网关
所需安装服务:
httpd tftp-server xinetd dhcp syslinux kickstart
所需配置文件:
find / -name default
find / -name dhcp.conf
find / -name tftp
操作步骤
一:配置yum源
注:centos7镜像yum源配置,先将原有yum源的repo文件备份后,删除;再新建一个repo文件:例:development.repo文件:内容如下;
创建后,执行yum clean all、yum makecache、yum list出现可安装包列表,即创建成功
cd /etc/yum.repo.d
[development]
name=development
baseurl=http://192.168.137.130/pub/iso/ #根据实际情况填写:http服务目录下的镜像文件
enabled=1
gpgcheck=0
二:安装服务
yum install httpd xinetd tftp-server dhcp syslinux system-config-kickstart -y
三:配置服务:案例
dhcp配置:
find / -name dhcp.conf
dhcp模板:find / -name dhcp.conf.example
vi /etc/dhcp/dhcpd.conf
ddns-update-style interim; #设置DHCP服务器模式
ignore client-updates; #禁止客户端更新
subnet 192.168.137.0 netmask 255.255.255.0 { #同一网段DHCP服务器配置,设置IP网段和子网掩码
range 192.168.137.132 192.168.137.135; #自动分配的IP地
default-lease-time 3600; #默认租期时间
max-lease-time 7200; #最大租约时间
filename "pxelinux.0"; #启动文件
next-server 192.168.137.130; #tftp服务器ip
host ns {
hardware ethernet 00:sd:ds:55:s7:88; #MAC地址
fixed-address 192.168.137.137 #给固定机器指定ip
}
}
tftp配置:< 将disable的yes值修改为no ,保存退出>
find / -name tftp
vi /etc/xinetd.d/tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot -c
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
syslinux配置:
find / -name pxelinux.0
find / -name menu.c32
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux.0
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/menu.c32
cp initrd.img /var/lib/tftpboot/initrd.img
cp vmlinuz /var/lib/tftpboot/vmlinuz
准备:initrd.img 、 vmlinuz文件,放在tftpboot目录下
kickstart配置:
find / -name anaconda-ks.cfg
cp /root/anaconda-ks.cfg /var/www/html/pub/ks/ks.cfg
修改ks.cfg文件:
注释 cdrom 添加 url --url=http://192.168.137.130/pub/iso
注释 graphical 添加 text
末尾添加:reboot
ks文件内容案例可参考:https://blog.csdn.net/Helios32/article/details/117280133
default配置:《自建default文件或find / -name isolinux.cfg cp isolinux.cfg /tftpboot/pxelinux.cfg/default》,赋权chmod 644 default
default vesamenu.c32
timeout 100
prompt 0
label 1
menu label ^1) Install Centos7
menu default
kernel vmlinuz
append initrd=initrd.img method=http://192.168.137.130/pub/iso ks=http://192.168.137.130/pub/ks/ks.cfg
四:启动服务
systemctl enable xinetd
systemctl start xinetd
systemctl enable httpd
systemctl start httpd
systemctl start dhcpd
五:新建客户端,不选择iso文件,直接启动