实验前准备
什么是PXE?
PXE是一种基于网络的启动技术,它集成了在计算机的BIOS或UEFI中,允许计算机从网络服务器下载并启动操作系统或其他软件。
应用场景
- 无盘工作站:在教育和科研机构中,无盘工作站通过PXE启动操作系统,从网络服务器获取所有需要的文件和应用程序,便于系统管理和维护。
- 服务器部署:在数据中心,PXE被广泛用于自动化服务器部署,管理员可以通过PXE大规模部署操作系统和应用程序,显著提高部署效率和一致性。
- 系统恢复和应急启动:当计算机的本地存储设备故障时,可以通过PXE启动应急操作系统,进行数据恢复和系统修复。
- 虚拟化环境:在虚拟化环境中,PXE被用于启动虚拟机,使其可以从网络加载操作系统和应用程序,简化虚拟机的管理和配置。
优点
- 规模化:能够同时装配多台服务器,提高部署效率。
- 自动化:实现安装系统和配置各种服务的自动化,减少人工干预。
总结
PXE是一种强大的网络引导技术,它提供了一种快速、高效、集中化的方式来处理计算机的操作系统安装、配置和维护。随着计算机网络的发展和虚拟化技术的普及,PXE在各种IT环境中得到了广泛的应用,特别是在大规模计算机部署和维护中发挥着重要作用。
安装需求
VMware虚拟机 rhel7镜像文件
VMware虚拟机安装rhel7
正式实验
环境配置
[root@172 ~]# systemctl stop firewalld && systemctl disable firewalld ##关闭防火墙以及开机自启
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@172 ~]#
[root@172 ~]#
[root@172 ~]# setenforce 0 ###关闭SELinux以及开机自启
[root@172 ~]#
[root@172 ~]# vim /etc/selinux/config
-bash: vim: 未找到命令
[root@172 ~]#
[root@172 ~]# vim /etc/selinux/config
-bash: vim: 未找到命令
[root@172 ~]#
[root@172 ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing ##SELINUX=enforcing 改为SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@172 ~]# vi /etc/selinux/config
[root@172 ~]#
[root@172 ~]# systemctl stop NetworkManager && systemctl disable NetworkManager
关闭图形化网络工具以及开机自启
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
[root@172 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
-bash: vim: 未找到命令
[root@172 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
配置静态网络
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.111.254
PREFIX=24
配置内容
[root@172 ~]# systemctl restart network 重启网络
cd /etc/yum.repos.d/
ls
创建备份目录进行备份(我们这里使用本地源就可以)
mkdir backup
yum.repos.d]# mv CentOS-* backup/vim local.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
进行挂载
mount /dev/sr0 /mnt/
启动FTP
systemctl start vsftpd
拷贝系统文件
mkdir /var/ftp/centos7
cp -r /mnt/* /var/ftp/centos7/
sync
安装DHCP
yum install -y dhcp
配置DHCP
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
启动服务
systemctl start dhcpd
安装TFTP
yum install -y xinetd
yum install -y tftp-server
配置TFTP
vim /etc/xinetd.d/tftp
启动服务
systemctl start tftp
安装SELinux
yum install -y syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
cd /mnt/images/pxeboot/
ls
cp initrd.img vmlinuz /var/lib/tftpboot/
创建default文件
mkdir /var/lib/tftpboot/pxelinux.cfg
cd /var/lib/tftpboot/pxelinux.cfg/vim default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.111.254/centos7
配置Kickstart
安装system-config-kickstart,使用图形界面配置
yum install -y system-config-kickstart
配置文件位置
vim /root/anaconda-ks.cfg
%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@development
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
%end
进入图形界面
system-config-kickstart
更改配置文件
vim /root/ks.cfg
%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@development
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
%end
cp /root/ks.cfg /var/ftp
vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.111.254/centos7 ks=ftp://192.168.111.254/ks.cfg
进行装机检测