这篇文章主要介绍“CentOS7中PXE高效批量网络装机的详细介绍”,在日常操作中,相信很多人在CentOS7中PXE高效批量网络装机的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CentOS7中PXE高效批量网络装机的详细介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
PXE
网络PXE
预启动执行环境,在操作系统之前运行
可用于远程安装,构建无盘工作站
运行DHCP
服务,用来分配地址、定位引导程序
DHCP
自动分配IP地址 定位引导文件
运行TFTP服务器,提供引导程序下载
TFTP
简单文件传输协议
使用UDP协议
端口号69号
优点:高效率
缺点:容量小
用于存放:引导程序pxelinux.0
(syslinux
软件包),压缩内核vmlinuz
,系统初始化文件initrd.img
,启动菜单default
运行FTP服务,提供镜像文件下载
FTP
(vsftpd
) 文件传输协议
优点:安全 ,容量大
缺点:传输速度慢
使用TCP
协议
端口号20用于数据传输 ,端口号21用于连接
用于存放:系统镜像
安装包:dhcp
,tftp-server
,vsftpd
,syslinux
网卡支持PXE
协议
主板支持网络启动
准备CentOS 7
安装源(YUM仓库)
启用TFTP服务,并提供内核、引导程序
启用DHCP服务,用来分配地址、指出引导程序位置
配置启动菜单
安装tftp-server
软件包,启用tftp
服务
准备内核文件vmlinuz
、初始化镜像initrd.img
准备引导程序文件pxelinux.0
next-server
//指向TFTP路径
filename
//引导程序文件位置
创建/var/lib/tftpboot/pxelinux.cfg/default
目录名称pxelinux.cfg
不可更改
调整BIOS设置,以便从网络引导
自动获取IP地址,并指定CentOS 7安装源
其余过程与本地安装相同
1、首先在VMware 15虚拟机中配置一台虚拟机,不安装系统,网卡设置处于仅主机模式,用于验证PXE网络装机,并打开CentOS 7虚拟机,配置双网卡模式,原网卡用于网络连接,便于我们安装服务软件,添加的网卡设置为仅主机模式,使其与配置的虚拟机绑定在同一设备中,同时在添加的网卡中配置静态IP地址,可以给配置的虚拟机提供IP地址。
[root@localhost ~]# ifconfig //查看CentOS 7系统中网卡信息 ens33: flags=4163mtu 1500 //原网卡信息 inet 192.168.144.133 netmask 255.255.255.0 broadcast 192.168.144.255 inet6 fe80::a85a:c203:e2e:3f3c prefixlen 64 scopeid 0x20 ether 00:0c:29:5b:d3:a0 txqueuelen 1000 (Ethernet) RX packets 26199 bytes 36984367 (35.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8391 bytes 524793 (512.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens36: flags=4163 mtu 1500 //添加的网卡信息 inet6 fe80::deb1:3cec:3e26:5ec2 prefixlen 64 scopeid 0x20 ether 00:0c:29:5b:d3:aa txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 10 bytes 1308 (1.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost ~]# cd /etc/sysconfig/network-scripts/ //进入网卡配置文件目录 [root@localhost network-scripts]# ls //查看信息 ifcfg-ens33 ifdown-ippp ifdown-sit ifup-bnep ifup-plip ifup-Team network-functions-ipv6 ifcfg-lo ifdown-ipv6 ifdown-Team ifup-eth ifup-plusb ifup-TeamPort ifdown ifdown-isdn ifdown-TeamPort ifup-ib ifup-post ifup-tunnel ifdown-bnep ifdown-post ifdown-tunnel ifup-ippp ifup-ppp ifup-wireless ifdown-eth ifdown-ppp ifup ifup-ipv6 ifup-routes init.ipv6-global ifdown-ib ifdown-routes ifup-aliases ifup-isdn ifup-sit network-functions [root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36 //复制ens33配置文件为ens36 [root@localhost network-scripts]# vim ifcfg-ens36 //编辑网卡信息 TYPE=Ethernet PROXY_METHOD=none BROWSER_OnLY=no BOOTPROTO=static //更改dhcp为static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCOnF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens36 //更改33为36 DEVICE=ens36 //更改33为36 OnBOOT=yes IPADDR=192.168.100.100 //配置IP地址 NETMASK=255.255.255.0 //配置子网掩码 GATEWAY=192.168.100.1 //配置网关 ~ //注意:删除UUID条目 ~ ~ ~ ~ ~ ~ :wq [root@localhost network-scripts]# service network restart //重启网卡服务 Restarting network (via systemctl): [ 确定 ] [root@localhost network-scripts]# ifconfig //查看网卡信息 ens33: flags=4163 mtu 1500 inet 192.168.144.133 netmask 255.255.255.0 broadcast 192.168.144.255 inet6 fe80::a85a:c203:e2e:3f3c prefixlen 64 scopeid 0x20 ether 00:0c:29:5b:d3:a0 txqueuelen 1000 (Ethernet) RX packets 124487 bytes 178695031 (170.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 35758 bytes 2193524 (2.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens36: flags=4163 mtu 1500 //获取静态IP地址 inet 192.168.100.100 netmask 255.255.255.0 broadcast 192.168.100.255 inet6 fe80::f6eb:23e3:3afb:fef4 prefixlen 64 scopeid 0x20 ether 00:0c:29:5b:d3:aa txqueuelen 1000 (Ethernet) RX packets 2 bytes 486 (486.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 186 bytes 32776 (32.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2、安装DHCP服务,并编辑DHCP服务配置文件
[root@localhost network-scripts]# yum install dhcp -y 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.163.com * extras: mirrors.huaweicloud.com * updates: mirrors.huaweicloud.com 正在解决依赖关系 --> 正在检查事务 ---> 软件包 dhcp.x86_64.12.4.2.5-68.el7.centos.1 将被 安装 ...//省略部分内容... 已安装: dhcp.x86_64 12:4.2.5-68.el7.centos.1 作为依赖被升级: dhclient.x86_64 12:4.2.5-68.el7.centos.1 dhcp-common.x86_64 12:4.2.5-68.el7.centos.1 dhcp-libs.x86_64 12:4.2.5-68.el7.centos.1 完毕! [root@localhost network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes //复制DHCP配置文件模板到配置文件中,输入yes确认 [root@localhost network-scripts]# vim /etc/dhcp/dhcpd.conf //编辑配置DHCP配置文件 ...//省略部分内容... ubnet 192.168.100.0 netmask 255.255.255.0 { //设置网段地址 range 192.168.100.20 192.168.100.30; //设置IP地址分配范围 option routers 192.168.100.100; //设置网关,指向自己,方便服务器分配地址 option domain-name-servers 8.8.8.8; //设置分配DNS地址 next-server 192.168.100.100; //设置指向TFTP服务器地址,也就是本机 filename "pxelinux.0"; //设指向引导文件位置,注意:文件名不可输错 } ...//省略部分内容... :wq //保存退出
3、安装引导程序文件
[root@localhost network-scripts]# yum install syslinux -y //安装引导程序 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.163.com * extras: mirrors.huaweicloud.com * updates: mirrors.huaweicloud.com 正在解决依赖关系 --> 正在检查事务 ---> 软件包 syslinux.x86_64.0.4.05-15.el7 将被 安装 ...//省略部分内容... 已安装: syslinux.x86_64 0:4.05-15.el7 完毕! [root@localhost network-scripts]# rpm -ql syslinux | grep pxelinux.0 //查看安装的软件中是否成功安装引导文件 /usr/share/syslinux/gpxelinux.0 /usr/share/syslinux/pxelinux.0 //程序引导文件
4、安装TFTP服务软件
[root@localhost network-scripts]# yum install tftp-server -y //安装tftp服务 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.163.com * extras: mirrors.huaweicloud.com * updates: mirrors.huaweicloud.com 正在解决依赖关系 --> 正在检查事务 ---> 软件包 tftp-server.x86_64.0.5.2-22.el7 将被 安装 ...//省略部分内容... 已安装: tftp-server.x86_64 0:5.2-22.el7 完毕! [root@localhost network-scripts]# rpm -ql tftp-server //查看tftp服务列表 /etc/xinetd.d/tftp //tftp配置文件目录 /usr/lib/systemd/system/tftp.service /usr/lib/systemd/system/tftp.socket /usr/sbin/in.tftpd /usr/share/doc/tftp-server-5.2 /usr/share/doc/tftp-server-5.2/CHANGES /usr/share/doc/tftp-server-5.2/README /usr/share/doc/tftp-server-5.2/README.security /usr/share/man/man8/in.tftpd.8.gz /usr/share/man/man8/tftpd.8.gz /var/lib/tftpboot //tftp站点目录
5、将引导程序文件放入tftp服务站点中,并开启tftp服务功能
[root@localhost network-scripts]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ //将文件复制入tftp站点中 [root@localhost network-scripts]# cd /var/lib/tftpboot/ //进入tftp站点 [root@localhost tftpboot]# ls //查看目录信息 pxelinux.0 //引导程序文件添加入站点 [root@localhost tftpboot]# vim /etc/xinetd.d/tftp //进入编辑tftp主配置文件 # default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no //更改yes为no开启服务功能 per_source = 11 cps = 100 2 flags = IPv4 } ~ :wq //保存退出
6、安装ftp服务功能,并将镜像文件CentOS 7挂载在ftp站点中,并找到系统初始文件与压缩内核文件,将其添加到的tftp站点中。
[root@localhost tftpboot]# yum install vsftpd -y 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.163.com * extras: mirrors.huaweicloud.com * updates: mirrors.huaweicloud.com 正在解决依赖关系 --> 正在检查事务 ---> 软件包 vsftpd.x86_64.0.3.0.2-25.el7 将被 安装 ...//省略部分内容... 已安装: vsftpd.x86_64 0:3.0.2-25.el7 完毕! [root@localhost tftpboot]# rpm -ql vsftpd //查看ftp服务文件列表 ...//省略部分内容... /usr/share/man/man5/vsftpd.conf.5.gz /usr/share/man/man8/vsftpd.8.gz /var/ftp //ftp站点位置 /var/ftp/pub [root@localhost ~]# cd /var/ftp/ //进入ftp服务站点 [root@localhost ftp]# ls //查看目录 pub [root@localhost ftp]# mkdir centos7 //创建目录centos7目录用户挂载镜像文件 [root@localhost ftp]# ls //查看 centos7 pub //创建成功 [root@localhost ftp]# mount /dev/sr0 /var/ftp/centos7/ //将镜像文件挂载到ftp站点中centos7目录 mount: /dev/sr0 写保护,将以只读方式挂载 [root@localhost ftp]# df -hT //查看磁盘信息 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/sda2 xfs 20G 3.7G 17G 19% / devtmpfs devtmpfs 898M 0 898M 0% /dev tmpfs tmpfs 912M 0 912M 0% /dev/shm tmpfs tmpfs 912M 9.0M 903M 1% /run tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda5 xfs 10G 37M 10G 1% /home /dev/sda1 xfs 6.0G 174M 5.9G 3% /boot tmpfs tmpfs 183M 28K 183M 1% /run/user/0 /dev/sr0 iso9660 4.3G 4.3G 0 100% /var/ftp/centos7 //成功挂载 [root@localhost ftp]# cd centos7/ //进入centos7目录 [root@localhost centos7]# ls //查看挂载的镜像信息 CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7 EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL [root@localhost centos7]# cd images/ //进入images目录 [root@localhost images]# ls //查看目录信息 efiboot.img pxeboot TRANS.TBL [root@localhost images]# cd pxeboot/ //进入pxeboot目录 [root@localhost pxeboot]# ls //查看目录信息 initrd.img TRANS.TBL vmlinuz //压缩内核与系统初始化文件 [root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/ //将压缩内核与系统初始化文件添加入tdtp站点 [root@localhost pxeboot]# ls /var/lib/tftpboot/ //查看tftp站点信息 initrd.img pxelinux.0 vmlinuz //成功添加压缩内核与系统初始化文件
7、在tftp站点中添加启动菜单,完成后,开启dhcp、tftp、ftp服务,并关闭防火墙、增强性安全功能
[root@localhost pxeboot]# cd /var/lib/tftpboot/ //进入tftp站点 [root@localhost tftpboot]# ls //查看站点信息 initrd.img pxelinux.0 vmlinuz [root@localhost tftpboot]# mkdir pxelinux.cfg //在站点中添加启动菜单目录,注意:目录名不可写错 [root@localhost tftpboot]# ls //查看目录 initrd.img pxelinux.0 pxelinux.cfg vmlinuz //成功创建启动菜单目录 [root@localhost tftpboot]# cd pxelinux.cfg/ //进入创建的启动菜单目录 [root@localhost pxelinux.cfg]# vim default //编辑启动菜单文件 default auto //默认模式 prompt 1 //等待时间1秒 //编写配置文件模板 label auto kernel vmlinuz //内核信息 append initrd=initrd.img method=ftp://192.168.100.100/centos7 //加载系统初始化文件,模式为ftp,存放目录为centos7 label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.100.100/centos7 label linux rescue //进入急救模式 kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7 ~ ~ :wq //编写完成后保存退出 [root@localhost pxelinux.cfg]# systemctl start dhcpd //启动dhcp服务 [root@localhost pxelinux.cfg]# systemctl start tftp //启动tftp服务 [root@localhost pxelinux.cfg]# systemctl start vsftpd //启动ftp服务 [root@localhost pxelinux.cfg]# systemctl stop firewalld.service //关闭防火墙功能 [root@localhost pxelinux.cfg]# setenforce 0 //关闭增强性安全功能
8、验证PXE网络部署装机,打开配置的虚拟机,在开机界面按ESC键,进入boot模式,选择从网络启动
创建应答文件,预先定义好各种安装设置
免去交互设置过程,从而实现全自动化安装
通过添加%post脚本,完成安装后的各种配置操作
1、在CentOS 7中安装kickstart服务软件
[root@localhost pxelinux.cfg]# yum install system-config-kickstart -y //安装kickstart软件 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.163.com * extras: mirrors.huaweicloud.com * updates: mirrors.huaweicloud.com 正在解决依赖关系 --> 正在检查事务 ---> 软件包 system-config-kickstart.noarch.0.2.9.7-1.el7 将被 安装 ...//省略部分内容... 已安装: system-config-kickstart.noarch 0:2.9.7-1.el7 作为依赖被安装: gnome-python2.x86_64 0:2.28.1-14.el7 gnome-python2-canvas.x86_64 0:2.28.1-14.el7 libart_lgpl.x86_64 0:2.3.21-10.el7 libgnomecanvas.x86_64 0:2.30.3-8.el7 rarian.x86_64 0:0.8.1-11.el7 rarian-compat.x86_64 0:0.8.1-11.el7 system-config-date.noarch 0:1.10.6-3.el7.centos system-config-date-docs.noarch 0:1.0.11-4.el7 system-config-keyboard.noarch 0:1.4.0-5.el7 system-config-keyboard-base.noarch 0:1.4.0-5.el7 system-config-language.noarch 0:1.4.0-9.el7 usermode-gtk.x86_64 0:1.111-5.el7 完毕!
2、安装完成后在图像化界面打开kickstart服务软件
3、打开软件后首先设置基本配置
4、设置安装方法与引导装载程序选项
5、设置分区信息
6、设置网卡配置
7、配置安装后脚本信息
8、完成后将配置好的文件信息保存到FTP站点中
9、保存完成后关闭软件,打开终端,进入ftp站点查看保存的文件,进入查看文件,并在模板中添加需要的组件安装包。
[root@localhost ~]# cd /var/ftp //进入ftp站点 [root@localhost ftp]# ls //查看目录信息 centos7 ks.cfg pub [root@localhost ftp]# vim ks.cfg //进入编辑模式查看保存的模板信息 platform=x86, AMD64, 或 Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us' # Root password rootpw --iscrypted $1$QnfXQpTo$2SWg34gaOZQoLWy.bGlmd/ //root用户密钥模板 # Use network installation url --url="ftp://192.168.100.100/centos7" //安装路径模板 # System language lang zh_CN //设置的键盘模式 # Firewall configuration firewall --disabled # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical firstboot --disable # SELinux configuration selinux --enforcing # Network information network --bootproto=dhcp --device=ens33 //设置的网卡信息 # Reboot after installation reboot # System timezone timezone Asia/Shanghai # System bootloader configuration bootloader --location=none # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="xfs" --size=500 //磁盘分区设置模板 part /home --fstype="xfs" --size=4096 part swap --fstype="swap" --size=4096 part / --fstype="xfs" --grow --size=1 :q //退出模板 [root@localhost ftp]# cd /root //进入root用户家目录 [root@localhost ~]# ls //查看家目录信息 anaconda-ks.cfg 公共 视频 文档 音乐 //找到anaconda-ks.cfg模板 initial-setup-ks.cfg 模板 图片 下载 桌面 [root@localhost ~]# vim anaconda-ks.cfg //进入编辑anaconda-ks.cfg模板 ...//省略部分内容... %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 ...//省略部分内容... :q //退出 [root@localhost ~]# vim /var/ftp/ks.cfg //进入ftp站点,编辑ks.cfg文件 part /boot --fstype="xfs" --size=500 part /home --fstype="xfs" --size=4096 part swap --fstype="swap" --size=4096 part / --fstype="xfs" --grow --size=1 %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 ~ :wq //保存退出
10、在tftp站点启动菜单文件中添加ks.cfg文件引导条目。
[root@localhost ~]# cd /var/lib/tftpboot/ //进入tftp站点 [root@localhost tftpboot]# ls //查看站点信息 initrd.img pxelinux.0 pxelinux.cfg vmlinuz [root@localhost tftpboot]# cd pxelinux.cfg/ //进入目录 [root@localhost pxelinux.cfg]# ls default [root@localhost pxelinux.cfg]# vim default //进入编辑启动菜单文件 default auto prompt 1 label auto kernel vmlinuz //添加ks=ftp://192.168.100.100/ks.cfg条目使装机时系统可以读取ks.cfg模板内容 append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.100.100/centos7 label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7 :wq //保存退出
11、配置一台新的虚拟机,网卡设置为仅主机模式,然后验证PXE部署装机+kickstart无人值守装机。
到此,关于“CentOS7中PXE高效批量网络装机的详细介绍”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程笔记网站,小编会继续努力为大家带来更多实用的文章!