这里是工作中对一个pxe装机需求测试记录,所有操作都是在笔记本电脑上VMware虚拟机中实现,内容仅供参考。
环境介绍:
1、PXE测试服务器为一台1c2g的VMware虚拟机,网络模式为NAT模式,操作系统为CentOS7.9,IP地址为192.168.1.11。
2、需要准备一个CentOS7.9的ISO镜像包。
3、PXE服务其实是通过http/ftp、TFTP、DHCP服务来实现,这里安装在一台服务器上,可以分开部署。
搭建PXE服务器
1、配置本地yum源,这里不做介绍,可以参考:“yum本地源配置”。这里我们将本地源的挂载目录配置为:/mnt/cdrom
它主要的作用是用来安装软件和提供远程服务器需要的系统文件。
2、安装httpd,pxe装机需要用到httpd服务的功能。这里使用httpd,ftp跟httpd几乎一样。
yum -y install httpd
3、创建一个存放系统镜像文件目录,然后把镜像文件cp到该目录中。
mkdir /var/www/html/centos7
cp -a /mnt/cdrom/* /var/www/html/centos7/
4、启动httpd,设置开机启动。
systemctl start httpd
systemctl enable httpd
5、安装TFTP服务,修改配置文件并启动。这里修改一下tftp的根目录,因为还需要测试ubuntu系统,这里做一个区分,如果只安装一个系统,可以不用修改。
yum -y install tftp-server
vim /etc/xinetd.d/tftp
#将disable=yes 修改为
disable=no
#将 server_args = -s /var/lib/tftpboot 修改为
server_args = -s /var/lib/tftpboot/centos7 -c
vim /usr/lib/systemd/system/tftpd.service
#将 ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot 修改为
ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot/centos7
systemctl daemon-reload
systemctl restart tftp
systemctl enable tftp
6、安装PXE引导程序。
yum -y install syslinux
7、将linux内核、初始化镜像文件和pxe引导文件cp到tftp目录中。
cp /mnt/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7
cp /mnt/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/centos7
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/centos7
8、创建启动菜单目录。
mkdir /var/lib/tftpboot/centos7/pxelinux.cfg
9、配置启动菜单,启动菜单分为典型启动菜单和无人值守启动菜单。
无人值守菜单
cat <<EOF > /var/lib/tftpboot/centos7/pxelinux.cfg/default
default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img method=http://192.168.1.11/centos7 ks=http://192.168.1.11/centos7/ks.cfg
EOF
典型启动菜单,典型菜单在安装好dhcp后就可以安装系统了。
cat <<EOF > /var/lib/tftpboot/centos7/pxelinux.cfg/default
default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img method=http://192.168.1.11/centos7
EOF
10、安装DHCP服务器,并且添加配置,启动。客户端会请求到dhcp服务器,dhcp服务器会提供给客户端IP信息、tftp信息、pxe引导文件信息等。所以,在客户端网络环境中,不要配置其他的dhcp服务器了。
yum -y install dhcp
cat <<EOF >> /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200; #dhcp服务为客户端分配的ip范围
option domain-name-servers 8.8.8.8; #dns
option domain-name "internal.example.org";
option routers 192.168.1.1; #网关
option broadcast-address 192.168.1.255; #广播
default-lease-time 21600; #租约时间,默认值是600,单位是秒
max-lease-time 43200; #最大租约时间
next-server 192.168.1.11; #指定TFTP服务器的地址
filename "pxelinux.0"; #指定PXE引导程序的文件名
}
EOF
systemctl start dhcpd
systemctl enable dhcpd
11、准备ks.cfg文件,注意文件存放位置。这个是为了在安装系统的时候,自动去做相应配置,不需要人工干预,典型启动就不需要这个文件。第一次或者有cp此文件有问题的,建议通过图形界面,安装system-config-kickstart,自己配置保存一个文件。
cat <<EOF > /var/www/html/centos7/ks.cfg
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$Q/XYvFAh$qdLAUR8q7c3jjaGmefO5F/
# System language
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="ftp://192.168.1.11/centos7"
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype="xfs" --size=200
part / --fstype="xfs" --size=18980
%post --interpreter=/bin/bash
cd /etc/yum.repos.d
rm -rf *
echo -e "[base]" > base.repo
echo -e "baseurl=ftp://192.168.1.11/centos7" >> base.repo
echo -e "enabled=1" >> base.repo
echo -e "gpgcheck=0" >> base.repo
%end
#下面是手动添加的,保存出来的文件没有,意思就是最小化安装系统,如果需要安装其他包,可以写在%packages下面
%packages
@^minimal
%end
EOF
上面文件中root密码是1q2w3e4r
12、图形界面保存ks.cfg。
12.1、安装kickstart
yum -y install system-config-kickstart
12.2、打开kickstart
12.3、基本配置,根据自己的需求选择。
12.4、安装方法,选择http,如果你搭建的ftp就选ftp。
12.5、引导装载程序选择安装
12.6、分区信息,选择清除主引导记录,添加好自己的分区信息。
12.7、网络添加dhcp
12.8、认证
12.9、禁用防火墙,根据需求,可以不禁用。
12.10、根据需求,选择是否安装图形界面
12.11、最后根据自己的需求,写入脚本信息,可以不写,我这个是按照上面的ks.cfg文件截图的,其他没截图的均为默认。
12.12、最后保存文件即可
测试安装
1、关闭vmware中NAT模式网卡的dhcp服务。
2、创建一个虚拟机,不选择安装镜像,至少配置2g内存,硬盘记得配置为ks.cfg文件中配置分区的总和大小以上,以上ks文件只需要20G。
3、然后直接运行虚拟机,正常情况下,它会自动安装好操作系统并重启。
PXE安装CentOS7的系统介绍就到这里,ubuntu的配置约有不同,可以参考:PXE装机服务搭建(安装ubuntu)