PXE,Pre-boot eXecution Environment
-预启动执行环境,在操作系统之前运行
-可用于远程安装

工作模式
-PXE client 集成在网卡的启动芯片中
-当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行

网络装机的优势(一台pxe服务器给没装系统的裸机装系统)
规模化:同时装配多台主机
自动化:装系统、配置各种服务
远程实现:不需要光盘、U盘等物理安装介质

需要哪些服务组件?
-DHCP服务,分配IP地址、定位引导程序
-TFTP服务,提供引导程序下载
-FTP服务(或HTTP/NFS),提供yum安装源

要想在CentOS 7上安装PXE服务器,要完成以下任务:

1、    安装dhcp、tftp、vsftpd服务器等软件

2、    设置IP地址

3、    关闭SELinux、firewalld

4、    配置dhcpd、tftp

5、    将CentOS 7映像文件部署到FTP服务器的输入目录中

第一步

安装dhcpd、tftp、syslinux、wget和vsftpd

输入 yum install -y dhcp tftp tftp-server syslinux wget vsftpd

第二步

关闭SELinux和防火墙

手动修改/etc/selinux/config,确保SELINUX=permissive

setenforce 0

systemctl disable firewalld

systemctl stop firewalld

poweroff

第三步

在VMWARE中将虚拟机的网络适配器设置为“主机模式”vmnet0

编辑,虚拟网络编辑器,vmnet0,去掉勾选,即不允许本地的dhcp服务器分配ip

第四步

这时候已经不需要上网了,所以可以为CentOS 7随意设置IP地址

nmcli con show

nmcli con modi ens32 ipv4.method manual ipv4.addresses 192.168.1.1/24

#我的网卡接口id是ens32。于是将它的IP设为192.168.1.1

nmcli con up ens32

nmcli con show

ip a

#确认192.168.1.1已经成功设置

第五步

设置dhcp服务器

vim /etc/dhcp/dhcpd.conf

确保配置文件内容如下:

ddns-update-style interim;

ignore client-updates;

authoritative;

allow booting;

allow bootp;

allow unknown-clients;

# A slightly different configuration for an internal subnet.

subnet 192.168.1.0 netmask 255.255.255.0

{

range 192.168.1.2 192.168.1.253;

option domain-name-servers 192.168.1.1;

option domain-name "server1.example.com";

option routers 192.168.1.1;

option broadcast-address 192.168.1.255;

default-lease-time 600;

max-lease-time 7200;

# PXE SERVER IP

next-server 192.168.1.1; #  DHCP server ip

filename "pxelinux.0";

}

至此,上文的filename所指的pxelinux.0目前还没有部署到位。最终它的位置是/tftpboot/pxelinux.0,但不要在这里使用路径,仅使用这个名称就好。上面的每一行结尾都是一个分号(;)。

第六步

为xinetd配置TFTP服务器,即将tftp服务交给xinetd来管理

vim /etc/xinetd.d/tftp

/etc/xinetd.d/tftp的内容如下:

service tftp

{

socket_type             = dgram

protocol                = udp

wait                    = yes

user                    = root

server                  = /usr/sbin/in.tftpd

server_args             = -s /tftpboot

disable                 = no

per_source              = 11

cps                     = 100 2

flags                   = IPv4

}

我们要将tftp服务的位置挪到/tftpboot中,将有个程序仍然认为它的路径在/var/lib/tftpboot中,所以,要改回来。

vim /usr/lib/systemd/system/tftp.service

将ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot

修改为:ExecStart=/usr/sbin/in.tftpd -s /tftpboot

看,只有这样,才能与/etc/xinetd.d/tftp中的相应内容保持一致

第七步

设置TFTP服务器网络启动文件。首先要创建一个路径/tftpboot

mkdir /tftpboot

chmod 777 /tftpboot

cp -v /usr/share/syslinux/pxelinux.0 /tftpboot

cp -v /usr/share/syslinux/menu.c32 /tftpboot

cp -v /usr/share/syslinux/memdisk /tftpboot

cp -v /usr/share/syslinux/mboot.c32 /tftpboot

cp -v /usr/share/syslinux/chain.c32 /tftpboot

再创建两个路径:

mkdir /tftpboot/pxelinux.cfg

mkdir /tftpboot/netboot/

第八步

将CentOS的ISO文件发布到FTP的文件夹中。要做到这一点,必须要有一个CentOS 7的ISO文件。我要把它以虚拟光盘的形式挂载到虚拟机中

点击屏幕右下方光盘图标,在短菜单中选择“连接到主机”

lsblk

查看光盘挂载的路径,如sr0    /run/media/root/CentOS 7 x86_64

mkdir -p /var/ftp/pub

cp -r /run/media/root/'CentOS 7 x86_64'/* /var/ftp/pub

“CentOS 7 x86_64”要用引号括起来,否则会出错。

cp -r /run/media/root/CentOS 7\ x86_64/* /var/ftp/pub

第九步

将启动时需要使用的镜像文件拷贝到目录位置

cp /var/ftp/pub/images/pxeboot/vmlinuz /tftpboot/netboot/

cp /var/ftp/pub/images/pxeboot/initrd.img /tftpboot/netboot/

第十步

创建一个kickstart,即无人值守安装文件,名字叫ks.cfg

vim /var/ftp/pub/ks.cfg

其内容如下:

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Firewall configuration

firewall --disabled

# Install OS instead of upgrade

install

# Use NFS installation media

url --url="ftp://192.168.1.1/pub/"

rootpw --plaintext 123456

#root的密码设为123456

# Use graphical install

graphical

firstboot disable

# System keyboard

keyboard us

# System language

lang en_US

# SELinux configuration

selinux disabled

# Installation logging level

logging level=info

# System timezone

timezone Asia/Shanghai

# System bootloader configuration

bootloader location=mbr

clearpart --all --initlabel

part swap --asprimary --fstype="swap" --size=1024

part /boot --fstype xfs --size=200

part pv.01 --size=1 --grow

volgroup rootvg01 pv.01

logvol / --fstype xfs --name=lv01 --vgname=rootvg01 --size=1 --grow

%packages

@core

wget

%end

%post

%end

保存后,用ksvalidator检查一下是否有语法错误

ksvalidator /var/ftp/pub/ks.cfg

第十一步

创建一个pxe菜单

vim /tftpboot/pxelinux.cfg/default

default的内容如下:

default menu.c32

prompt 0

timeout 30

MENU TITLE Togogo.net Linux Training

LABEL centos7_x64

MENU LABEL CentOS 7 X64

KERNEL /netboot/vmlinuz

APPEND  initrd=/netboot/initrd.img inst.repo=ftp://192.168.1.1/pub ks=ftp://192.168.1.1/pub/ks.cfg

最后这个APPEND写成一行,中间不要断行

第十二步

systemctl enable dhcpd

systemctl enable tftp

systemctl enable vsftpd

将以上服务设为开机自动启动

systemctl restart vsftpd

systemctl restart dhcpd

systemctl restart tftp

重新启动以上服务

验证

在VMware中创建一个新的虚拟机,以充当验证PXE服务器的客户机。将其网络适配器的网络连接设为“主机模式”

然后启动这台虚拟机。于是,我们就能看到,这台虚拟机可以在无人干预的情况下安装CentOS Linux的Minimal,即最小化安装

PXE工作原理及一键装机配置相关推荐

  1. PXE工作原理(有图有真相)

    source: http://blog.51cto.com/lavenliu/1629922 PXE工作原理(有图有真相) 原创 bigstone2012 2015-04-08 10:27 评论(0) ...

  2. 路由工作原理+DHCP+静态路由配置

    路由工作原理+DHCP+静态路由配置 路由器 路由表 路由优先级 路由优先级的配置 浮动路由 路由的度量 DHCP DHCP第一种配置命令(global): DHCP第二种分配IP地址的配置命令(in ...

  3. ospf工作原理_OSPF动态路由配置经典案例

    前导知识点:静态路由 结合上一讲讲解的距离矢量路由协议,本讲我们讲解链路状态路由协议----OSPF,相比较于RIP,OSPF能够支持大型网络,下面列出RIP和OSPF的对比图,进一步说明了OSPF的 ...

  4. nginx的工作原理与nginx的配置

    1.nginx的工作原理 nginx的模块直接被编译进nginx,因此属于静态编译方式. 启动nginx后,nginx的模块被自动加载,与Apache不一样,首先将模块编译为一个so文件,然后在配置文 ...

  5. 交换机工作原理及端口安全配置

    目录 相关概念认识 交换机工作原理 交换机端口安全 相关概念认识 交换机是一种用于电(光)信号转发的网络设备.它可以为接入交换机的任意两个网络节点提供独享的电信号通路.最常见的交换机是以太网交换机.交 ...

  6. Nginx工作原理及优化参数配置

    1.master和worker Nginx启动后,是由两个进程组成的.master(管理者)和worker(工作者). 一个Nginx只有一个master,但可以有多个worker. Nginx接收到 ...

  7. 23.neutron的工作原理及controller安装配置

    配置模式: neutron: flat flat DHCP VLAN VXLAN 网络节点neutron和计算节点compute都会有br-tun,默认创建的,它们之间建立VPN隧道的 数据包通过每个 ...

  8. 华为 静态NAT---动态NAT---NAPT---Easy IP---NAT服务器工作原理和示例配置

    目    录 一.NAT简介 二.NAT好处: 三.静态NAT工作原理和示例配置 1. 静态NAT工作原理 2. 静态NAT配置示例 四.动态NAT工作原理和示例配置 1. 动态NAT工作原理 2.动 ...

  9. 一键装机linux_linux系统学习第十八天《搭建一键装机平台》终结篇-阿里云开发者社区...

    在真机上,利用clone-vm7新建一台虚拟机,名字:PXE-Server 1.设置防火墙为trusted 2.当前及永久关闭SELinux 3.配置IP地址:192.168.4.168/24 4.搭 ...

最新文章

  1. python list.pop 的方法的使用
  2. 【java 性能优化实战】1 理论分析:性能优化,有哪些衡量指标、性能优化的技术手段
  3. 财务用计算机可以一次摊销,购入的电脑可以一次性计提折旧吗
  4. php和python web开发-php与python谁更适合web开发?为什么?
  5. 爱创课堂每日一题101天-哪些操作会造成内存泄漏?
  6. Hadoop系列四:Hadoop之Hive篇
  7. 强化学习(五)---基于模型的强化学习实战
  8. Median String
  9. 【GitHub】如何合并分支?
  10. Linux进程间通信:共享内存与管道
  11. java 动态转换器,Java 编程的动态性,第 5 部分: 动态转换类
  12. 学习Java编程,英语对我们来说有多重要?
  13. Visualbox中linux的网络配置
  14. 《指针的编程艺术(第二版)》一3.10 程序实战
  15. 合振动的初相位推导_如何理解单自由度系统振动
  16. GIS产品开源大集合
  17. 音频,视频和视觉效果
  18. MC基础教程#1 关于启动器
  19. “北上广曹”商标被抢注,商标过期后企业可以抢注吗?
  20. 聚合微信聊天crm调用代码

热门文章

  1. 第十三章 Logstash进阶
  2. 多种发动机,的机械原理图 动画图解
  3. 如何将盒子里的文字水平居中和垂直居中
  4. 2017年4月计算机网络自考答案,06年4月自考“大学语文(本)”
  5. Beta冲刺(3/7)——2019.5.24
  6. stm32平衡小车(2)-----编码器电机驱动
  7. Solidworks如何使用Toolbox
  8. 电源锁WakeLock不起作用
  9. CAD手机看图中怎么将编辑好的图纸文件微信发送给其他的人?
  10. Presto RestFul框架解析