PXE(预启动执行环境)是由inter公司开发的技术,可以让计算机通过网络来启动操作系统(前提是网卡支持pxe技术),主要用于在无人值守安装系统中引导客户端主机安装linux操作系统,kickstart是一种无人值守的安装方式,工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数是则自动匹配,kickstart生成的文件,所有只要kickstart文件包含了安装过程中需要人工填写的所有参数,从理论上来讲完全不需要人工干预。

PXE的工作过程

1.pxe Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
2.DHCP服务器返回分配给客户端的ip*以及PXE文件的放置位置(该文件一般是放在TFTP服务器上);
3.PXE Client 向本网络中的TFTP服务器索取pxelinux.0文件;
4.PXE Client取得pxelinux.0文件后执行该文件;
5.根据pexlinux.0的执行结果,通过TFTP服务器加载内核和文件系统;
6.进入安装画面,此时可以通过选择HTTP/FTP/NFS方式之一进行安装;

Kickstart安装需求

1.网卡必须支持PXE引导;
2.客户端需要有与kickstart通信的IP地址,这个一般通过DHCP自动分配IP地址来实现;
3.提供引导所需的文件,内核文件,内核镜像文件等,此时一般通过tftp-server等实现。
4.kickstart文件,它主要实现自动化安装的过程,比如配置主机名,添加用户,安装系统后相关操作;
5.提供安装源,一般就是HTTP/HTTPS/NFS/FTP等方式;
综合上述需要的工具:dhcp+tftp+syslinux+kickstart+httpd

PXE服务器配置案例

环境介绍
服务器系统:Centos7.3
网卡地址:192.168.10.50
光盘镜像:CentOS-7-x86_64-DVD-1810.iso
安装工具:dhcp+ftp+syslinux+kickstart+httpd

配置步骤

1.挂载系统光盘到/mnt/,并搭建httpd共享yum源。

mount /dev/cdrom /mnt //挂载本地yum到mnt目录下面
mkdir /yum
cp -rf /mnt/* /yum/ //复制mnt下面的安装包到yum下面做httpd的共享仓库

2.使用yum安装需要的服务dhcp,tftpserver,syslinux, kickstart,httpd

yum -y install dhcp httpd tftp-server syslinux system-config-kickstart //使用yum安装需要的软件包

3.配置httpd服务并启动dhcpd

vim /etc/httpd/conf/httpd.conf //编辑httpd的主配置文件(在119~131行左右)

DocumentRoot "/yum"#
# Relax access to content within /var/www.
#
<Directory "/yum">AllowOverride None# Allow open access:Require all granted
</Directory># Further relax access to the default document root:
<Directory "/yum">

修改完配置后保存退出,重启服务
systemctl restart httpd

4.配置dhcp服务器并启动

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf //复制模板文件到主配置文件或者进入文件在末行位置写:r /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
vim /etc/dhcp/dhcpd.conf //编辑主配置文件

subnet 192.168.40.0 netmask 255.255.255.0 {range 192.168.40.10 192.168.40.100;option domain-name-servers 114.114.114.114;option domain-name "baidu.com";option routers 192.168.40.1;option broadcast-address 192.168.40.255;default-lease-time 600;max-lease-time 7200;next-server 192.168.40.10; //IP地址不加引号,设置tfpt地址filename "pxelinux.0"; //设置pxe引导文件名称
}

重启dhcpd服务

systemctl restart dhcpd ##启动dhcpd服务

5.编辑tfpt配置文件开启tftp并重启服务

vim /etc/xinetd.d/tftp //编辑tftp配置文件
{
server_args = -s /var/lib/tftpboot //可以更改默认的存放路径。
disable = yes //将yes改为no

启动tftp服务

systemctl restart tftp //启动tftp服务程序

6.准备内核,初始化镜像,pxe引导,启动菜单二五年间复制到tftp目录,tftp的默认根目录为/var/lib/tftpboot/

内核和初始化文件:vmlinuz和initrd.img,文件光盘目录的/yum/images/pxeboot目录下面;
2.PXE引导文件:pxelinux.0由syslinux软件提供,目录在/usr/share/syslinux/目录下面;
3.启动菜单文件:在光盘/yum/isolinux/isolinux.cfg,复制后更名default;

cp {initrd.img,vmlinuz} /var/lib/tftpboot/  //将初始化文件和内核文件放到tftp目录下面
cp /usr/share/syslinux/pxelinux.0 ./ //将pxe引导文件复制到gftp的当前目录下面
mkdir pxelinux.cfg //在tftp的根目录下面创建启动菜单目录
cp /yum/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default  //将启动菜单模板复制到tftp根目录的pxelinux.cfg目录下,改名为default
vim default //编辑当前目录下面的启动菜单文件
------------修改一下的内容-----------
原1行 default vesamenu.c32
改1行 default linux原64行 append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
改64行  append initrd=initrd.img inst.stage2=http://192.168.10.40/ ks=http://192.168.10.40/ks.cfg quiet
注意:第一行的linux的名字要和61行linux名字一样,否则会出错。

7.安装kickstart工具生成自动应答文件或者编辑一个自动应答文件,将其保存到共享文件/yum/下面。

vim /yum/ks.cfg //编辑自动应答文件
-----------添加一下内容------------
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
keyboard 'us'  //设置键盘语言
rootpw --iscrypted $1$h1IxYj45$nq11vzBP03rGhraxbtgCL0 //设置管理员密码
url --url="http://192.168.10.40/"  //设置安装源的路径httpd
lang zh_CN  //设置安装语言为中文
firewall --disabled
auth  --useshadow  --passalgo=sha512
graphical
firstboot --disable  //设置防火墙为关闭
selinux --disabled  //设置selinx为关闭network  --bootproto=dhcp --device=ens33  //设置网卡的ip获取类型和网卡的名称
reboot //设置安装成功之后自动重启
timezone Asia/Shanghai  //设置时区为亚洲上海
bootloader --location=mbr
clearpart --all
part / --fstype="xfs" --size=20000  //设置磁盘挂载位置和分配磁盘大小15G%packages //到end结束是复制anaconda中的安装脚本
@desktop-debugging
@fonts
@gnome-desktop
@graphical-admin-tools
@graphics
@input-methods
@kde-desktop
@legacy-x
@remote-desktop-clients
@system-management
@x11
gnome-disk-utility
gnome-packagekit
setroubleshoot
vinagre
xterm%end

8.重启 dhcpd httpd tftp 服务,然后关闭防火墙和selinux

systemctl restart dhcpd httpd tftp //重启dhcpd httpd tftp服务
systemctl stop firewalld //关闭防火墙
setenforce 0 //关闭selinxu

9.新建虚拟机将网络和服务器改为同一模式,开机验证是否成功!!!!

PXE常见故障

故障一:如果客户机开机可以获取到ip,但是提示pxe-e11:arp-timeout
解决办法:查看next-server的ip地址是否正确
故障二:如果使用system-config-kickstart工具选择软件包提示由于下载软件包失败
解决办法:将本地yum源的第一项 [***] 改为 [development]
故障三:如果在测试机快要加载完毕的时候出现Pane is dead
解决办法:看defalut文件第64行否则缺少内容。ks=http://IP地址。

YUM和PXE自动装机相关推荐

  1. yum仓库与pxe自动装机

    YUM仓库服务与PXE网络装机 前言: 1.前面我们安装软件主要使用rpm和源码编译安装,尤其在rpm安装软件的时候有些软件需要依赖关系,安装起来非常麻烦,今天讲的YUM仓库安装,可以自动解决依赖关系 ...

  2. Linux网络项目实验------网络架构(DNS域名解析、NFS共享服务、LAMP服务、搭建论坛、PXE自动装机)

    实验 环境描述: 客户端:无任何系统的裸金属机器 DNS:192.168.10.10/24 提供DNS域名解析 PXE:192.168.10.20/24 提供DHCP,TFTP,FTP功能,DHCP地 ...

  3. PXE自动装机脚本原创代码(适合脚本新人)

    #!/bin/bash #=========================================================================== FileName: P ...

  4. PXE自动化装机(4)

    一.PXE概述 PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服 ...

  5. PXE和Cobble实现自动装机

    t    :PXE: 预启动执行环境,是由Intel开发的最新技术,工作于Client/Server的网络模式,支持终端通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端 ...

  6. centos 8 卸载anaconda_搭建CentOS+PXE+ks.cfg自动装机总结

    2014-07-21 : 搭建主要步骤 易错点 不明白的地方 主要步骤: 今天主要做的事就是搭建了一个自动装机环境,使用了CentOS6.5+PXE+DHCP+Apache+NFS+KickStart ...

  7. YUM仓库服务与PXE网络装机

    1.yum:基于RPM包构建软件更新机制自动解决依赖关系,软件包由软件包库提供 提供方式:ftp服务:ftp://IP地址/仓库目录 Http服务:http ://  IP地址/仓库目录 本地目录:f ...

  8. Linux6.4通过PXE网络装机

    搭建PXE远程安装服务器 准备RHEL6安装源 [root@localhost ~]# mkdir/var/ftp/rhel6 [root@localhost ~]# cp -rf/media/* / ...

  9. 自动化部署操作系统-Kickstart+PXE自动部署

    Kickstart+PXE自动部署 目录: 无人值守安装简介 实战:PXE批量部署linux操作系统 前言 部署dhcp服务 HTTP服务 TFTP服务 复制PXE启动时需要的文件 修改引导启动菜单 ...

最新文章

  1. 有关计算机辅助教学方面的问题,浅析高校计算机辅助教学应用的有关问题
  2. 正则表达式与三剑客的使用技巧
  3. python源代码最多的学习网站_史上最全Python学习资料大合集分享
  4. 【直播讲座】用友摩天联合光环国际,听国学学项目管理
  5. MATLAB二维数组的创建与元素提取
  6. 安卓的短信记录导入苹果_安卓换苹果手机如何进行便签数据转移?
  7. python第五章课后题答案_python程序设计基础(嵩天)第五章课后习题部分答案
  8. android真实项目教程(六)——落叶醉赤壁_by_CJJ
  9. 基于知识的智能体 笔记
  10. js 获取指定范围的随机数
  11. Git Windows下安装配置
  12. div旋转45度_一看就会,一做不废的旋转楼梯建模
  13. js基础知识汇总13
  14. android toolbar 搜索框,SearchView配合RecyclerView实现分页搜索过滤关键字
  15. 我辞去了年收入50万的工作,去做在线教育的老师
  16. 收藏:更换手机号必做的9件事
  17. 多线程-并发工具类之CyclicBarrier详解
  18. ios删除字符串第一位_iOS “字符串” 的几种常见的截取方法(随时更新)
  19. 【学习笔记】深蓝学院-三维点云处理
  20. 电脑每次启动都硬盘自检

热门文章

  1. Black Hat Europe 2021议题解读:Wi-Fi Mesh中的安全攻击面
  2. xctf-HTTP通常使用两种请求方法
  3. 工伤事故申请工伤认定多久会生效
  4. MySQL · 捉虫动态 · UK 包含 NULL 值备库延迟分析
  5. Three.JS游戏开发入门
  6. 未来从事计算机职业规划,计算机专业职业生涯规划书2000字
  7. 如何用 CSS 和原生 JS 创作一个展示苹果设备的交互动画
  8. ARP协议的小小了解
  9. 插件化中Activity的加载
  10. 如何获取三维标签的轮廓表示