PXE安装优点,这种安装系统的方式可以不受光驱,光盘以及一些外部设备的限制,还可以做到无人值守,大大减轻了运维人员的工作负荷,像在一些主机数量庞大的机房进行批量安装,PXE将是你不二的选择。
首先给大家一个图来了解PXE的工作方式

1. pxe自启动 请求IP,
2. dhcp 根据配置文件,回应IP 并告知tftp位置 与pxelinux.0的位置
3. 通过pxelinux.0获取另3个文件的位置 向Tftp请求下载 pxelinux/default vmlinuz imitrd.img
4. 通过default 得知ks.cfg位置,请求ks.cfg文件,
5. 通过ks.cfg得知OS存放服务器位置,
6. 下载OS安装系统软件包
所以我们要搭建三个服务
-----以下是搭建dhcp服务(还是一样的就是多两个参数)----
yum install dhcp-server -y
vi /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.80.0 netmask 255.255.255.0 {
option routers 192.168.80.111;
option subnet-mask 255.255.255.0;
option time-offset -18000;
range dynamic-bootp 192.168.80.60 192.168.80.100;
next-server 192.168.80.110;//告诉客户端TFTP的位置
filename "pxelinux.0";//告诉客户端下载的文件名
}
systemctl start dhcpd //启动服务
----以下是搭建ftp服务器,用来提供光盘安装----
yum install -y vsftpd
mount /dev/cdrom /var/ftp/pub //把光盘挂载到匿名用户的家目录下去
让所有人都可以来访问
vi /etc/vsftpd/vsftpd.conf //编辑主配置文件
anonymous_enable=yes //开启匿名用户访问
systemctl start vsftpd //启动服务
----搭建tftp服务器,并可以使用systemctl来管理它----
yum install -y tftp-server tftp syslinux-tftpboot //安装服务
yum -y install xinetd
vi /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 //指定tftp的工作目录
disable = no //重点是吧yes改成no,让他启用
per_source = 11
cps = 100 2
flags = IPv4
}
systemctl start tftp
----------以下是安装启动引导菜单相关的软件包-----
yum -y install syslinux
cp -rf /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
把pxelinux.0放到tftp的家目录里去
cp /var/ftp/pub/isolinux/{boot.cat,boot.msg,grub.conf,isolinux.bin,splash.png,TRANS.TBL,vesamenu.c32,ldlinux.c32} /var/lib/tftpboot
把我们挂载光盘里的isolinux里的镜像的引导文件放到tftp的家目录里去
cp /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot/
initrd.img是一个小的映象
cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/
vmlinuz是可引导的、压缩的内核引导文件
也一并拷入到tftp的工作目录下
mkdir /var/lib/tftpboot/pxelinux.cfg
所有的配置文件都放在启动服务器的 /tftpboot/pxelinux.cfg/目录
cp /var/ftp/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
创建一个名为default的文件,就是pxelinux.0的默认配置文件,
vi /var/lib/tftpboot/pxelinux.cfg/default
default linux //修改
prompt 1
timeout 1
display boot.msg
.........
label linux
kernel vmlinuz
append initrd=initrd.img text ks=ftp://192.168.80.110/ks.cfg //后面去掉
这是linux的模板,我使用的是ftp的方式的
ks放在了ftp服务器(也就是自己)里ks.cfg
----------------以下是生成应答文件的方式(无人值守)--------------
我们装机完成后会生成一个文件
在root的家目录下 anaconda-ks.cfg
里面有你装这个服务器时候的配置
我们装系统的时候是访问ftp,所以要把这个文件拷贝到/var/ftp/里面来
cp ~/anaconda-ks.cfg /var/ftp/ks.cfg (改名为ks.cfg)
因为在default里面定义了,他就会访问ftp来找这个文件
chmod +r /var/ftp/ks.cfg (一定要给权限!!!)
----重点改的就是以下-----
# Use CDROM installation media
install //之前本来是cdrom,改成install
url --url="ftp://192.168.80.80/pub" //设置成通过ftp去访问光盘,和上面一行在一起
repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream
找到上面这一行一定要删除,因为之前安装是使用光盘安装,所以里面记录了,现在我们使用的是ftp去访问光盘,不删除就出现仓库源设置错误(也就是冲突了)
这样你裸机开机就可以自动装系统了
(但是这个系统和你当前是一样的,root密码和测试账号都是一样的)
1. pxe自启动 请求IP,
2. dhcp 根据配置文件,回应IP 并告知tftp位置 与pxelinux.0的位置
3. 通过pxelinux.0获取另3个文件的位置 向Tftp请求下载 pxelinux/default vmlinuz imitrd.img
4. 通过default 得知ks.cfg位置,请求ks.cfg文件,
5. 通过ks.cfg得知OS存放服务器位置,
6. 下载OS安装系统软件包