
LinuxStenOS7用PXE配合Kickstart无人值守高效批量网络装机——简单易学最强手把手图解加命令
发布日期:2021-05-08 03:43:19
浏览次数:30
分类:精选文章
本文共 3379 字,大约阅读时间需要 11 分钟。
目录标题
PXE概述
- PXE(preboot eXcution Environment)
- PXE是由Intel 公司发开的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统
- 服务端
- 运行DHCP服务,用来分配地址,指定引导程序位置
- 运行TFTP服务(简单文件传输协议),提供内核和引导镜像文件的下载
- 客户端
- 网卡支持PXE协议
- 主板支持网络引导
- 一般大多数服务器主机都支持,只需在BIOS设置中允许从Network或LAN启动即可
- PXE批量部署的优点
- 规模化:同时装配多台服务器
- 自动化:安装系统、配置各种服务
- 远程实现:不需要光盘、U盘等安装介质
部署PXE远程安装服务
- PXE远程安装服务器集成了CentOS7安装源、TFTP服务、DHCP服务,能够向客户机裸机发送PXE引导程序、Linux内核、启动菜单等数据,以及提供安装文件
- TFTP(简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP 端口69
- xinetd是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级Internet服务
第一步安装并启用TFTP服务
- yum install -y tftp-server xinetd #安装服务
- vim /etc/xinetd.d/tftp #修改TFTP服务的配置文件 protocol = udp #TFTP默认使用UDP协议 wait = no #no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接 server_args = -s /var/lib/tftpboot #指定TFTP根目录(引导文件的存储路径) disable = no #no表示开启TFTP服务
- 启动服务 systemctl start tftp systemctl enable tftp systemctl start xinetd systemctl enable xinetd
第二步安装并启用DHCP服务
- yum -y install dhcp
- cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
- vim /etc/dhcp/dhcpd.conf
- 启动服务 systemctl start dhcpd systemctl enable dhcpd
第三步准备Linux内核、初始化镜像文件
- mount /dev/sr0 /mnt #挂载光盘镜像
- cd /mnt/images/pxeboot
- cp vmlinuz /var/lib/tftpboot #复制内核文件到TFTP根目录下
- cp initrd.img /var/lib/tftpboot #复制镜像文件(Linux引导加载模块)到TFTP根目录下
第四步准备PXE引导程序
- yum install -y syslinux #PXE引导从程序的软件包syslinux
- cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
第五步安装FTP服务,准备CentOS 7 安装源
- yum install -y vsftpd #安装vsftpd服务
- mkdir /var/ftp/centos7 #在ftp根目录下创建一个centos7目录
- cp -rf /mnt/* /var/ftp/centos7/ #复制镜像文件到centos7目录中,文件略微有点大可在命令后加&到后台运行
- systemctl start vsftpd #开启服务
- systemctl enable vsftpd #开机自启服务
第六步配置启动菜单文件
默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
- mkdir /var/lib/tftpboot/pxelinux.cfg
- vim /var/lib/tftpboot/pxelinux.cfg/default default auto prompt 1 label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.184.10/centos7 label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.184.10/centos7 label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.184.10/centos7
第七步记得关闭防火墙和安全机制功能
- systemctl stop firewalld.service
- setenforce 0
注意事项
- 注意:使用 VMware创建的虚拟机进行测试,虚拟机内存至少需要 2GB,否则在启动安装时可能会报错
- 开启虚拟机,在提示字符串“boot:”后直接按Enter键(或执行“auto”命令),将会自动通过网络下载安装文件,并进入默认的图形安装入口;
- 若执行“linux text”命令,则进入文本安装入口;
- 若执行 “linux rescue”命令,则进入救援模式
实现Kickstart无人值守安装
第一步准备安装应答文件
- yum install -y system-config-kickstart #安装system-config-kickstart工具
打开Kickstart 配置程序窗口
第二步配置kickstart选项
- 基本配置
- 安装方法
- 引导装载程序选项
- 分区信息
- 网络配置
- 防火墙配置
- 安装后脚本 mkdir /etc/yum.repos.d/repo.bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak echo ‘[local] name=local baseurl=ftp://192.168.150.10/centos7 enabled=1 gpgcheck=0’ > /etc/yum.repos.d/local.repo
保存应答文件
- 保存自动应答文件,文件名为ks.cfg

第三步配置需要安装的软件包
最小化界面
- 可以根据需要将/root/anaconda-ks.cfg 的软件包安装脚本复制到 ks.cfg文件中,只需要复制%packages 到%end 部分就行
- 如需要最小化安装,可复制下面的内容即可 vim ks.cfg %packages @^minimal %end
图形化界面
-
vim anaconda-ks.cfg
-
cp /home/stu/ks.cfg /var/ftp/ks.cfg
开机引导读取的是/var/ftp内的内容,不是/root,/root仅仅是暂时保存的对方,所以,修改完再复制过去,或者直接复制过去再修改 -
把anaconda-ks.cfg文件中复制的内容G到底粘贴进去
第六步编辑引导菜单文件 default,添加 ks 引导参数
- vim /var/lib/tftpboot/pxelinux.cfg/default default auto prompt 0 label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.80.10/centos7 ks=ftp://192.168.80.10/ks.cfg
最后验证无人值守安装
-
新建虚拟机(裸机)
-
创建新建虚拟机需要注意的地方
-
开启虚拟机等待
-
勾选许可信息及装机完成过程
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年05月01日 23时42分13秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
[操作系统]内存连续分配管理方式
2019-03-15
[Go] json.Unmarshal()解析后存储的结构体定义
2019-03-15
[PHP]PHP不支持方法重载和只支持方法覆盖
2019-03-15
[Go] 获取Go二进制文件的真正执行路径os.Args
2019-03-15
java Map
2019-03-15
scala Tuple入门到熟悉
2019-03-15
RDD partitioner入门详解
2019-03-15
presto查询报错
2019-03-15
superset报错
2019-03-15
Hive 分组取Top N
2019-03-15
yarn开启Label Scheduler
2019-03-15
Spark sample入门到精通
2019-03-15
C++ Primer Plus【复习笔记】-【复合类型】
2019-03-15
前端一些要会的知识点
2019-03-15
VUE +ElementUI form表单回车提交
2019-03-15
使用Spring AOP应该注意的一个小细节
2019-03-15
学习Swoole之进程队列之间通信
2019-03-15
docker 快速安装bcmath扩展
2019-03-15
2020-08-26
2019-03-15
shell脚本一键删除php7.4.8
2019-03-15