虚拟机:virtualbox
内部系统:centos8
DHCP服务程序配置
关闭系统dhcp服务
关闭防火墙和安全子系统
systemctl stop firewalld.service
setenforce 0
下载dhcp服务
dnf install -y dhcp-server
编辑DHCP服务配置文件
vim /etc/dhcp/dhcpd.conf
#删除文件内容,添加以下内容
allow booting;
allow bootp;
ddns-update-style none;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.10.100 192.168.10.200;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.10.10;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.10.10;
filename "pxelinux.0";
}
启动程序并设置开机自启
systemctl restart dhcpd
systemctl enable dhcpd
TFTP服务程序配置
安装TFTP服务软件包
dnf install -y tftp-server xinetd
编写TFTP服务配置文件
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
}
启动程序并设置开机自启
systemctl restart xinetd
systemctl enable xinetd
SYSLinux服务程序配置
安装SYSLinux服务程序
注:SYSLinux是一个用于提供引导加载的服务程序
dnf install -y syslinux
配置服务程序
更换目录
cd /var/lib/tftpboot
将SYSLinux提供的引导文件复制到TFTP的服务程序中
#最后面那个点代表当前目录
cp /usr/share/syslinux/pxelinux.0 .
挂载镜像文件
查看挂载文件目录
将光盘镜像中自带引导文件复制到TFTP服务程序的默认目录中
#前面部分是自己的镜像路径,还要注意最后那个.不要少
cp /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/images/pxeboot/* .
cp /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/isolinux/* .
在TFTP服务程序的目录中新建pxelinux.cfg目录
#还是注意复制路径,是自己的镜像路径
mkdir pxelinux.cfg
cp /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/isolinux/isolinux.cfg pxelinux.cfg/default
编辑default配置文件
#该文件是只读文件,保存的时候在命令模式键入wq!就可以保存更改了
vim pxelinux.cfg/default
修改第1行
修改第64行
append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet
VSFtpd服务程序配置
安装VSFtpd服务程序
#先退出目录
cd
dnf install -y vsftpd
开启匿名访问模式
vim /etc/vsftpd/vsftpd.conf
修改匿名用户访问的NO改为YES
启动服务并设置开机自启
systemctl restart vsftpd
systemctl enable vsftpd
目录中的光盘镜像文件全部复制到vsftpd服务程序的工作目录中
cp -r /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/* /var/ftp
创建KickStart应答文件
将此文件复制到vsftpd服务程序的工作目录中
cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
设置该文件权限
使用chmod命令设置该文件的权限,确保所有人都有可读的权限,以保证客户端主机顺利获取到应答文件及里面的内容
chmod +r /var/ftp/pub/ks.cfg
编辑配置文件
注:行数以自己文件的行数为主
vim /var/ftp/pub/ks.cfg
修改第5行
repo --name="AppStream" --baseurl=ftp://192.168.10.10/AppStream
修改第22行
url --url=ftp://192.168.10.10/BaseOS
在18行下面添加一行内容
network --bootproto=dhcp --device=enp0s9 --onboot=on --ipv6=auto --activate
验证程序
新建虚拟机,注意这里不要选择镜像文件
这里的处理器选择2 cpu
网络设置为仅主机网络
把网络的启动顺序调换至第一个
配置好之后开始安装
shell脚本
#!/bin/bash
#关闭防火墙和安全子系统
systemctl stop firewalld.service
setenforce 0
#dhcp
dnf install -y dhcp-server
#清空内容
echo -n > /etc/dhcp/dhcpd.conf
#添加内容
cat<<EOF >>/etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style none;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.10.100 192.168.10.200;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.10.10;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.10.10;
filename "pxelinux.0";
}
EOF
#启动
systemctl restart dhcpd
systemctl enable dhcpd
#TFTP
dnf install -y tftp-server xinetd
echo -n > /etc/xinetd.d/tftp
cat<<EOF >> /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
}
EOF
#启动
systemctl restart xinetd
systemctl enable xinetd
#syslinux
dnf install -y syslinux
cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 .
cp /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/images/pxeboot/* .
cp /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/isolinux/* .
mkdir pxelinux.cfg
cp /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/isolinux/isolinux.cfg pxelinux.cfg/default
#编辑配置文件
chmod 777 pxelinux.cfg/default
sed -i '2c default linux' "pxelinux.cfg/default"
sed -i '64c append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet' 'pxelinux.cfg/default'
#配置vsftpd
cd
dnf install -y vsftpd
sed -i '12c anonymous_enable=YES' "/etc/vsftpd/vsftpd.conf"
#启动
systemctl restart vsftpd
systemctl enable vsftpd
cp -r /run/media/jyh/CentOS-8-4-2105-x86_64-dvd/* /var/ftp
cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
chmod +r /var/ftp/pub/ks.cfg
#编辑ks.cfg
sed -i '5c repo --name="AppStream" --baseurl=ftp://192.168.10.10/AppStream' "/var/ftp/pub/ks.cfg"
sed -i '22c url --url=ftp://192.168.10.10/BaseOS:' "/var/ftp/pub/ks.cfg"
sed -i '18a network --bootproto=dhcp --device=enp0s3 --onboot=on --ipv6=auto --activate' "/var/ftp/pub/ks.cfg"