PXE服务器介绍及部署
PXE简介:
PXE:预安装环境 . 是Intel公司推出的一款通过网络来引导操作系统的协议 . 广泛应用于网吧无盘系统 .
实验目标:
用centos7 系统部署一台pxe 服务器, 通过PXE网络来给客户端实现手动或自动安装 centos7 操作系统 .
PXE 服务器需要的支撑软件:
DHCP + TFTP +sys Linux (提供pxe 引导程序文件系统文件pxelinux.0)+ 文件共享(nfs , ftp , http , samba 等) .
工作原理流程:
PXE服务器和客户机的工作过程:
1. PXE客户机发出DHCP请求,向服务器申请IP地址。
2. DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机TFTP(简单文件传输协议)服务器的IP地址和PXE引导程序文件pxelinux.0。
3. PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
4. TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。
5. PXE客户机通过网络来启动到系统安装主界面。
6. PXE客户机向文件共享服务器发起获取centos或windows系统安装文件的请求。
7. 文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。
8. PXE客户机进入到安装提示向导界面,用户需要手动来完成系统的操作。
kickstart自动化系统安装:
在PXE服务器上用vim或kcikstart工具创建一个系统自动安装的应答文件ks.cfg(自行命名),并用文件共享服务来共享ks.cfg文件。ks.cfg自动应答文件中是记录的安装操作步骤。客户机在进入安装界面时会自动根据ks.cfg文件中的内容来完成安装操作。
PXE 服务器部署流程:
关闭selinux 和 防火墙
setenforce 0
systemctl stop firewalld
部署 DHCP 服务器
1. 查看软件是否安装 : rpm -q dhcp
2. 安装DHCP服务器软件 : yum install -y dhcp
3. 查看文件配置列表 : rpm -qc dhcp (/etc/dhcp/dhcpd.conf 为 dhcp服务器的主配置文件)
4. 编辑dhcpd.conf 配置文件:
先查看主配置文件 , 再用vim编辑如下图红色标记文件
找到其中例子如下图所示
将其复制到主配置文件 /etc/dhcp/dhcpd.conf 中 ,并添加两行,以本人IP(192.168.11.11/24 为例) , 如下图
192.168.11.11 为 tftp 服务器IP地址 , filename 为PXE引导程序文件名称 .
5. 启动 dhcp 服务 , 并允许开机自启动
systemctl restart dhcpd
systemctl enable dhcpd
部署tftp-server服务流程:
1. 查看软件是否已安装: rpm -q tftp-server
2. 安装tftp 服务软件: yum install -y tftp-server
3. 查看tftp 服务配置文件并用vim 编辑此文件 , 将配置文件中的disabled = yes 改为 = no 如图:
4. 启动 tftp 服务 , 并设置开机自启动
systemctl restart tftp
systemctl enable tftp
安装提供pxelinux.0的syslinux软件,共享pxe引导程序文件
1. 查软件是否已安装: rpm -q syslinux mlocate
2. 安装指定的软件: yum install -y syslinux mlocate
3. 更新locate文件查找数据库: updatedb
4. 查找pxelinux.0文件: locate pxelinux.0
5. 切换到tftp-server的默认共享目录: cd /var/lib/tftpboot
6. 复制指定的文件到当前目录中: cp -v /usr/share/syslinux/pxelinux.0 ./
7. 查看磁盘空间使用状态: df -hT
8. 复制光盘挂载点目录中指定的文件到当前目录中: cp -v /dvd/isolinux/* ./
9. 在当前目录中创建pxelinux.cfg目录: mkdir -v pxelinux.cfg
10. 复制指定的文件到指定目录中并改名为default: cp -v isolinux.cfg pxelinux.cfg/default
文件共享服务部署(以vsftpd 为例):
1. 查软件是否已安装:rpm -q vsftpd
2. 安装tftp-server服务器软件:yum install -y vsftpd
3. 查配置文件列表:rpm -qc vsftpd
4. 启动vsftpd服务,允许开机自动启动服务
systemctl restart vsftpd
systemctl enable vsftpd
5. 创建/var/ftp/dvd目录 , 共享centos7的系统镜像到/var/ftp/dvd目录
mkdir -v /var/ftp/dvd
mount /dev/sr0 /var/ftp/dvd
完成上述 dhcp , tftp , vsftpd 服务后 , 采用kickstart 程序或用 vim 来创建 ks.cfg 配置文件 . 并用文件共享服务来共享ks.cfg 自动应答文件.
使用 vim 创建 ks.cfg 自动应答文件:
技巧 : linux系统在安装时会自动生成一个anaconda-ks.cfg 配置文件 ,文件位于/root 目录中 . anaconda-ks.cfg 里面记录的就是用户在安装系统时所作的操作 , 像选择语言环境 , 硬盘分区 , 安装的软件包 , 网卡IP设置 , 设置主机名 , root密码 ,新建普通等一系列操作
具体步骤:
1.修改/root/anaconda-ks.cfg 权限为 644 , 复制该文件到vsftpd服务共享目录/var/ftp/ks 目录中
2.修改 /var/lib/tftpboot/pxelinux.cfg/default 启动菜单文件
vim /var/lib/thtpboot/pxelinux.cfg/default
:set nu 显示行号
找到第64行文件,
修改64行内容为append initrd=initrd.img method=ftp://192.168.11.11/dvd ks=ftp://192.168.11.11/ks/ks.cfg
之后开启客户机 , 客户机会先获取IP , 再进入安装界面,如图:
用上下方向键选择第一个 , 按 Tab 键 , 下面会出现图上白色的字样 , 再按enter 键安装 , 客户机会自动根据/var/lib/tftpboot/pxelinux.cfg/default 内容进行自动化安装 .
----------------------------
附:ks.cfg 配置文件解析:
cat /var/ftp/ks/ks.cfg 查看ks.cfg自动应答文件 |
#version=DEVEL系统版本号为DEVEL开发版 # System authorization information系统认证信息,即指定系统密码加密方式为sha512加密算法 auth --enableshadow --passalgo=sha512 # Use CDROM installation media使用CDROM光盘安装媒体 cdrom # Use graphical install使用图形安装界面进行系统安装,此处可用graphical图形、也可用text文本方式。 graphical # Run the Setup Agent on first boot运行设置代理在第1次启动时 firstboot --enable ignoredisk --only-use=sda # Keyboard layouts键盘布局 keyboard --vckeymap=cn --xlayouts='cn' # System language系统语言环境 lang zh_CN.UTF-8
# Network information网络信息,包括IP地址获取方式(static或dhcp)、网关、device网卡设备名、nameserver域名解析服务器IP地址、netmask子网掩码、IPv6的IP地址等。 network --bootproto=static --device=ens33 --gateway=192.168.11.2 --ip=192.168.11.11 --nameserver=114.114.114.114,8.8.8.8 --netmask=255.255.255.0 --ipv6=auto --activate network --hostname=localhost.localdomain
# Root password――指定root用户的登录密码,是加密后的密码 rootpw --iscrypted $6$6vsqEcQaDu/y9CkV$1ZSy74HR1mxG.i0xBiUALwywaWCx2zgbWx5QRbJ2Nskck.29C2UxjXIr5jM6LatiaKtip7nvnQ2B5xrype.pA. # System services系统服务,以下是允许chronyd网络时间服务开机自动启动 services --enabled="chronyd" # System timezone系统时区,新建普通用户jin并设置登录密码 timezone Asia/Shanghai --isUtc user --groups=wheel --name=jin --password=$6$MHU28rsP7sGGkw7s$JaqYHxDXAHmQaEHS33Py7kvnrKtfMnFp8HqlGw3xy6PAo1dtkxeKOGpi2Yg9UqXJqDLnTjsBkauRekkPYycvt/ --iscrypted --gecos="jin" # X Window System configuration information――x window系统配置 xconfig --startxonboot # System bootloader configuration系统引导程序配置 bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda # Partition clearing information分区表清除信息 clearpart --none --initlabel # Disk partitioning information磁盘分区表信息 #创建名称为pv.157这个PV,在sda硬盘上,容量大小为50175兆 part pv.157 --fstype="lvmpv" --ondisk=sda --size=50175 #创建/boot分区,文件系统类型为xfs,在sda硬盘上,容量大小为1024兆 part /boot --fstype="xfs" --ondisk=sda --size=1024 #创建名称为centos的VG卷组,PE大小为4096K,在pv.157这个PV中创建 volgroup centos --pesize=4096 pv.157 #创建/根的逻辑卷,文件系统类型为xfs,最大容量为51200兆,初始容量大小为1024兆,逻辑卷名称为root,组卷名称为centos logvol / --fstype="xfs" --grow --maxsize=51200 --size=1024 --name=root --vgname=centos logvol swap --fstype="swap" --size=2048 --name=swap --vgname=centos
#设置需要安装的软件包和软件包分组 %packages @^gnome-desktop-environment @base @core @desktop-debugging @dial-up @directory-client @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony kexec-tools
%end
%addon com_redhat_kdump --enable --reserve-mb='auto'
%end
%anaconda pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty %end |
------------------------------
使用kickstart软件来生成ks.cfg自动应答文件。
步骤:
1. 搜索kickstart 关键字的软件
yum search kickstart
2. 安装 kickstart 软件包
yum install -y system-config-kickstart
3. 启动kickstart 配置程序
system-config-kickstart
完成安装之后,启动kickstart , 会自动弹出 kickstart 设置界面 , 如图所示:
点击左上角文件 --> 预览 , 里面所示为 kickstart 生成的自动化安装文件 ks.cfg 的内容 :
问题:图中的“软件包选择”界面会出现下图所示的错误:问题的原因是yum源的repo文件中的“仓库标识”必须用[development]
修改yum源配置文件:
vim /etc/yum.repos.d/local.repo 文件内容如下
[development]
name=centos 7.5 linux
baseurl=file:///dvd
enabled=1
gpgcheck=0
yum 源设置可详细参考 https://blog.51cto.com/14181896/2344517
修改yum 源仓库标识之后 , 再启用kickstart , 软件包选择就会变成如下图所示 , 勾选需要安装的软键 , 客户机安装系统上就会自动安装 .
管理员可根据需求对kickstart软件进行设置自动化安装过程 , 设置好之后 ,左上角文件保存 , 会自动生成一个ks.cfg 的文件 ,把生成的文件放在 /var/ftp下 , 客户机会根据kickstart设置的内容进行自动安装 .