Dnsmasq 配置PXE批量安装系统
以下测试都是基于centos 7下的环境
需要安装的软件为
nginx 用来下载ks.cfg和系统镜像文件用的,也可以用ftp服务器来代替
dnsmasq 提供dhcp服务和tftp服务,也可以单独去安装
syslinux 提供pxe的启动文件pxelinux.0
执行以下命令安装
yum install dnsmasq syslinux -y
然后创建tftp的目录
mkdir /var/lib/tftp
拷贝pxe的启动文件pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftp/
挂载centos系统镜像,Pxe安装系统需要原系统镜像中的vmlinuz(引导程序) initrd.img(RAM的Linux) 两个支持网络安装的文件
从iso中拷贝内核镜像和文件系统镜像
我们挂载镜像在 /var/ftp/pub/ 这个目录下面,启动需要的文件在镜像的images目录下面
cp /var/ftp/pub/images/pxeboot/initrd.img /var/tftp/
cp /var/ftp/pub/images/pxeboot/vmlinuz /var/tftp/
准备默认的菜单配置文件
mkdir /var/lib/tftp/pxelinux.cfg/
vim /var/lib/tftp/pxelinux.cfg/default
内容如下
default linux
prompt 1
timeout 60
display boot.msg
label linux
kernel vmlinuz
append initrd=initrd.img text ks=http://172.17.3.10/ks.cfg ###指定ks.cfg文件下载路径###
后续需要生成ks.cfg
我们还需要配置下dnsmasq
vim /etc/dnsmasq.conf
配置如下
listen-address=172.17.3.10,127.0.0.1 ##指定监听IP domain=house.com ##域名 dhcp-range=172.17.3.220,172.17.3.230,1h ##IP地址分配范围## dhcp-option=3,172.17.3.254 ##网关 dhcp-boot=pxelinux.0 ##配置启动接口 enable-tftp ##打开tftp功能## tftp-root=/var/lib/tftp ##指定tftp目录## conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig
以上配置可参考如下图片,图片来自网络
最后我们把ks.cfg也就是kickstart文件放到nginx的目录下就可以了
最后启动dnsmasq就可以了。
其实dnsmasq也可以用tftp和dhcp这2个服务来代替
使用tftp和dhcp的方法如下
安装tftp和dhcp
yum install tftp-server dhcp -y
配置tftp-server
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 2 flags = IPv4 }
配置DHCP
vim /etc/dhcp/dhcpd.conf
ddns-update-style interim; ignore client-updates; allow booting; allow bootp; subnet 172.17.3.0 netmask 255.255.255.0 { option routers 172.17.3.254; option subnet-mask 255.255.255.0; option domain-name-servers 172.17.3.254; option time-offset -18000; # Eastern Standard Time range dynamic-bootp 172.17.3.80 172.17.3.88; default-lease-time 21600; max-lease-time 43200; next-server 172.17.3.10; filename "pxelinux.0"; }
其余步骤不变,到这里完结。