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. JVM基本架构及生命周期
  2. 初学c++基础知识——第一个c++程序
  3. 2017.3.24组合数学学习——容斥原理
  4. boost::multiprecision::float128用法的测试程序
  5. java mock什么意思_java @Mock, @MockBean 与 Mockito.mock( ) 之间的差异
  6. LINUX无法运行navixat,关于RX5700XT的驱动方法以及bug解决方案
  7. Android Activity中状态保存机制
  8. 从Excel文件中找出在TXT文件中没有出现的 行之_代码片段
  9. 催收评分卡(二)关于催收评分卡的血泪史
  10. c java 引用类型_java中的引用类型
  11. drools规则拼接_Drools-规则层次结构和条件执行
  12. mysql 主从复制延迟_什么情况会导致MySQL主从复制延迟?
  13. linux执行sql脚本db2,DB2批量执行SQL脚本的实现
  14. 单机类似节奏大师游戏源码
  15. Swift高仿iOS网易云音乐Moya+RxSwift+Kingfisher+MVC+MVVM
  16. android 播放视频文件格式,安卓播放exe视频,如何将exe格式视频转换成常用格式视频...
  17. 使用Python3进行身份证号码标准验证
  18. EEG中的EOG伪迹
  19. 谷歌无法打开微信二维码链接解决方案 之 使用谷歌模拟微信浏览器
  20. robo3T-操作MongoDB数据库常用命令

热门文章

  1. 【数字电路基础】三态门
  2. 隐马尔科夫模型(HMM)及其扩展
  3. 死磕Java之Java核心语法
  4. 00后的文化消费观是怎样的
  5. 【MATLAB】在MATLAB中利用GUI编写加法计算器,要求:通过两个编辑文本框实现两个数字的输入,点击“开始计算”按钮进行计算,并在用于结果显示的静态文本框中实现两输入数字的和的显示
  6. iOS自带图片大小压缩
  7. 消防工程用黄铜洒水喷头浇注系统设计优化分享
  8. 十二、GIO GSettings
  9. 阿里云开发者大会正式启动
  10. 微信小程序 之 云开发