Linux_PXE服务器_RHEL7
目录
前言
PXE(preboot execute environment预启动执行环境 ),支持Client通过网络从Server下载映像,并由此支持通过网络启动操作系统,在启动过程中,Client要求Server分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到Client内存中执行,由这个启动软件包完成Client上的基本软件设置,从而引导预先安装在Sserver上的操作系统,即”推机”。本篇介绍在RHEL7上的PXE服务器搭建。
PXE原理
1、Client首先要获取 IP(进行网络连接):
PXEserver中要含有DHCPservice,为Client提供p-netmask-gw-dns。
2、Client想要得到安装界面,PXEserver必须为其提供系统引导:
Client从PXEserver中获得 pxelinux.0(实际上就是 grub)、vmlinuz(内核文件),initrd(内存驱动盘)这3个文件。先通过引导 grub,再加载其余2个文件来实现Client的系统引导。
3、通过TFTPserver以广播的形式发送系统引导所需要的3个文件给Client:
PXEserver告知TFTPserver Client的IP,再由TFTPserver将系统引导的3个文件发送给Client。
4、TFTPserver共享Client安装系统所需要的软件包:
通过FTP(RHEL6)、HTTP(RHEL7)、 nfs(RHEL5)等服务实现C\S之间的文件共享。
4、安装系统时设置Hostname :如果没有设置Client的hostname,默认为localhost.localdomain。若想给每个Client都设置唯一的hostname,需要DNSserver,再利用DNSserver的反向解析,为Client分配Hostname。
5、批量部署:使用 Kickstart无人值守服务批量部署服务器。
总结:PXE服务器需要提供下列服务
(1)DHCP
(2)TFTP
(3)FTP|HTTP|NFS
(4)DNS
(5)Kickstart
下面几种不同OS平台上的部署方案均使用了Kickstart无人值守服务:
1)Sattlle
2)RH401 卫星服务器(walkspace centos)
3)windows WDS
搭建PXE服务器
本篇的实验是搭建all-in-one的PXE服务器,即将上述所有的服务搭建在用一台服务器上。
关闭SELinux和防火墙
setenforce 0
systemctl stop firewalld.service
systemctl mask iptables.service
systemctl mask ebtables.service
配置DHCP
安装DHCP软件包:
yum install dhcp
编辑DHCP服务配置文件:
Copy模版得到配置文件
cat /usr/share/doc/dhcp*/dhcpd.conf.example > /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.100;
option domain-name-servers 192.168.0.1;
option domain-name "fan.com";
option routers 192.168.0.1;
next-server 192.168.0.1; #指定TFTPserver ip,现在为本机IP
filename "/pxelinux.0"; #此"/"指的是TFTP共享的根目录/var/lib/tftpboot下
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
}
重启DHCP服务加载配置:
systemctl restart dhcpd
netstat -anplut |grep dhcp
systemctl enable dhcpd.service
配置TFTP
安装TFTP软件包:
yum install tftp-server
安装syslinux软件包:
获取pxelinux.0文件
cd /var/lib/tftpboot #TFTP共享跟目录
yum install syslinux
rpm -ql syslinux | grep pxelinux.0 #查询软件包文件的安装位置
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
从OS光盘中获取initrd.img、vmlinuz文件:
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom/images/pxeboot
cp initrd.img vmlinuz /var/lib/tftpboot
获取pxelinux的配置文件:
在推机的过程中,Pxelinux会以IP地址的16进制表示来搜索配置文件,如果没找到,就去除最低一位数后继续找。如果所有匹配都失败,就使用default文件。
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
chmod u+w /var/lib/tftpboot/pxelinux.cfg/default
cp /mnt/isolinux/boot.msg /var/lib/tftpboot/ #引导图片
chmod u+w /var/lib/tftpboot/boot.msg
编辑pxelinux的配置文件:
vim /var/lib/tftpboot/pxelinux.cfg/default
default linux #第一个label改为linux
append #扩充无人值守功能
initrd=initrd.img inst.repo=ftp://192.168.0.1/cdrom ks=ftp://192.168.0.1/ks.cfg quiet #指定无人值守文件ks.cfg
编辑TFTP服务配置文件:
vim /etc/xinetd.d/tftp
disable=no
重启TFTP :
systemctl restart xinetd.service
netstat -anplut | grep :69 #检查xinetd服务是否启动
配置FTP
将OS光盘中的软件包共享给Client。
安装vsftpd软件包:
yum install vsftpd
挂载光盘到FTP跟目录下:
mkdir /var/ftp/cdrom
mount /dev/cdrom /var/ftp/cdrom
重启FTP服务
systemctl restart vsftpd
systemctl enable vsftpd
配置Kickstart
使用用图形化界面system-config-kickstart 建立自动应答Kickstart文件。
安装图形化界面:
yum install system-config-kickstart
再次编辑Kickstart无人值守文件:
vim /root/ks.cfg
加入你未来部署系统的软件包(%packages 软件包名 %end)
通过FTP服务共享ks.cfg文件
cp /root/ks.cfg /var/ftp
systemctl restart xinetd.service
Jmilk
Linux_PXE服务器_RHEL7的更多相关文章
- App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
- 闰秒导致MySQL服务器的CPU sys过高
今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...
- 闲来无聊,研究一下Web服务器 的源程序
web服务器是如何工作的 1989年的夏天,蒂姆.博纳斯-李开发了世界上第一个web服务器和web客户机.这个浏览器程序是一个简单的电话号码查询软件.最初的web服务器程序就是一个利用浏览器和web服 ...
- SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]
目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...
- 使用 Nodejs 搭建简单的Web服务器
使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块. ...
- 通过ProGet搭建一个内部的Nuget服务器
.NET Core项目完全使用Nuget 管理组件之间的依赖关系,Nuget已经成为.NET 生态系统中不可或缺的一个组件,从项目角度,将项目中各种组件的引用统统交给NuGet,添加组件/删除组件/以 ...
- 谈谈如何使用Netty开发实现高性能的RPC服务器
RPC(Remote Procedure Call Protocol)远程过程调用协议,它是一种通过网络,从远程计算机程序上请求服务,而不必了解底层网络技术的协议.说的再直白一点,就是客户端在不必知道 ...
- 游戏服务器菜鸟之C#初探一游戏服务
本人80后程序猿一枚,原来搞过C++/Java/C#,因为工作原因最后选择一直从事C#开发,因为读书时候对游戏一直比较感兴趣,机缘巧合公司做一个手游的项目,我就开始游戏服务器的折腾之旅. 游戏的构架是 ...
- 无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同。如果服务器位于远程计算机上,请检查。。。
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Ser ...
随机推荐
- vue、iview动态菜单(可折叠)
vue项目与iview3实现可折叠动态菜单. 菜单实现一下效果: 动态获取项目路由生成动态三级菜单导航 可折叠展开 根据路由name默认打开子目录,选中当前项 自动过滤需要隐藏的路由(例:登陆) 在手 ...
- 使用 dataset 管理数据(官网)
ECharts 4 开始支持了 dataset 组件用于单独的数据集声明,从而数据可以单独管理,被多个组件复用,并且可以基于数据指定数据到视觉的映射.这在不少场景下能带来使用上的方便. ECharts ...
- Redis启动方式
一.前端启动 直接运行bin/redis-server将以前端模式启动.[bin目录是在/usr/local/redis/bin] # ./redis-server 启动缺点: ssh命令窗口关闭则r ...
- SpringMVC基础01——SpringMVC的知识结构体系
1.前言 目前在各大互联网公司使用最热门的技术莫过于SpringBoot以及在其基础之上的SpringCloud,然而学习这些技术的基础在于学好Spring和SpringMVC,准确来说SpringM ...
- DTM/DEM/DSM/DOM/DLG
一.DTM (Digital Terrain Model) 数字地面模型是利用一个任意坐标系中大量选择的已知x .y .z 的坐标点对连续地面的一个简单的统计表示,或者说,DTM 就是地形表面形态属性 ...
- PAT Basic 1033 旧键盘打字 (20 分)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...
- zencart前台小语种后台英文 导入批量表 前后台不显示产品的问题
admin\includes\init_includes\init_languages.php 前台小语种后台英文导致批量表导入后,前后台不显示产品的问题将红色部分修改成前台语言对应的值,前台语言对应 ...
- 找不到javax.
https://blog.csdn.net/q343509740/article/details/79515911 idea导入java工程 file --> new -->存在的工程
- 【HDU4276】The Ghost Blows Light
题目大意:给定一棵有根树,1 号节点为根节点,点有点权,边有边权,初始给定一个价值,每经过一条边都会减少该价值,每经过一个点都会增加相应的答案贡献值,求如何在给定价值的情况下最大化答案贡献,并要求最后 ...
- 误删除mysql的root账号
误删除mysql的root账号 mysql 测试通过 # mysql 误删除root最高权限用户 操作步骤: .停止mysql服务 (如果你删除了root用户,但没有退出操作对话框,恭喜节省了些麻烦, ...