背景:

在大规模安装服务器时,需要批量自动化方法来安装服务器,来减少日常的工作量,但是批量自动化安装服务器的基础是网络启动服务器(bootserver),下面就是网络启动服务器的安装和配置方法,供大家参考!

术语解释:

PXE:(Pre-boot ExecutionEnvironment)是由Intel协议,它可以是计算机通过网络而不是本地硬盘、光驱等设备启动。现代的网卡,一般都内嵌支持pxe的rom芯片。当计算机引导时,BIOS把pxe dient调入内存执行,并显示出命令菜单,经用户选择后,PEXdient将放置在远端的操作系统通过网络下载到本地运行。

DHCP:(Dynamic Host Control Protocol)动态主机控制协议,用于集中、动态给客户分配IP地址

TFTP:(trivial file transfer protocol),一种开销很小的文件传输协议,语法类似ftp,因简单、高效,常用于网络设备的os和配置更新

PXE Client Api(架构)

上图说明: 当BIOS把PXE Client载入记忆体,此时便具有DHCP Client及TFTP Client的能力。

PXE Client具备DHCP Client能力,可以透过DHCP Server来取得IP位址。

PXE Client具备TFTP Client能力”,可通过TFTP来下载kernel p_w_picpath等文件。

PXE启动流程图(pxe boot)

上图启动流程说明如下:

1.PXE Client 向 UDP 67端口 广播 DHCPDDISCOVER 消息.

2.DHCP SERVER 或者 DHCP Proxy 收到广播消息后,发送DHCPOFFER(包含ip地址)消息 到 PXE Client的 68 端口.

3.PXE Client 发送 DHCPREQUEST 消息到 DHCP SERVER ,获取启动文件(boot file name).

4.DHCP SERVER 发送DHCPACK(包含Network Bootstrap Program file name)消息 到PXE Client.

5.PXE Client 向 Boot Server 获取 NBP(Network Bootstrap Program) 文件.

6.PXE Client 从TFTP SERVER 下载 NBP,然后在客户端执行NBP文件

注意: 在NBP执行初始化后,NBP会按照自己默认的方式从TFTP SERVER中下载其他所需的配置文件.

这个时候 PXE 启动流程已经完成了,剩下的工作都是有NBP来执行完成的.

例如: pxelinux.0(NBP) 他会下载 default 配置文件,来显示菜单,根据需要启动不同的kernel p_w_picpath.

如果是RIS(window安装)的NBP,会启动 Windows boot loader 来执行安装部署widows任务

PXE BOOT Server配置过程[root@node1 ~]# yum install tfpt tftp-server dhcp vsftpd syslinux #安装所需的软件包

[root@node1 ~]# mkdir /var/ftp/pub/centos-6.4-x86_64 -pv

[root@node1 ~]# mount -r /dev/cdrom /var/ftp/pub/centos-6.4-x86_64/

[root@node1 centos-6.4-x86_64]# ls

CentOS_BuildTag isolinux RPM-GPG-KEY-CentOS-Debug-6

EFI Packages RPM-GPG-KEY-CentOS-Security-6

EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6

GPL repodata TRANS.TBL

p_w_picpaths RPM-GPG-KEY-CentOS-6

配置DHCP服务:

在PXE引导过程中,PXE Client通过DHCP Server获取ip地址,NBP文件名称,然后从TFTP SERVER下载NBP文件并在客户端执行,从而启动计算机[root@node1 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

[root@node1 ~]# vim /etc/dhcp/dhcpd.conf

option domain-name "magedu.com";

option domain-name-servers 172.16.0.1;

default-lease-time 43200;

max-lease-time 86200;

# No service will be given on this subnet, but declaring it helps the

# DHCP server to understand the network topology.

#自定义一个subnet

subnet 192.168.10.0 netmask 255.255.255.0 {

range 192.168.10.11 192.168.10.100;

option routers 192.168.10.10;

next-server 192.168.10.10;#TFTP Server的ip地址

filename="pxelinux.0";#bootstrap 文件(NBP)

}

注意:在 /etc/dhcpd.conf 配置文件中 filename "pxelinux.0"; 文件目录是相对于 tftp 的根目录(默认是 /tftpboot),

所以文件的绝对路径就是: /tftpboot/pxelinux.0";当然也可以指定为其它的路径.

重启dhcpd服务[root@node1 ~]# service dhcpd restart

Shutting down dhcpd: [ OK ]

Starting dhcpd: [ OK ]

[root@node1 ~]# ss -uanlp | grep dhcpd

UNCONN 0 0 *:67 *:* users:(("dhcpd",4883,7))

配置tftp服务器[root@node1 xinetd.d]# chkconfig tftp on

[root@node1 xinetd.d]# service xinetd restart

Stopping xinetd: [FAILED]

Starting xinetd: [ OK ]

[root@node1 xinetd.d]# service xinetd restart

Stopping xinetd: [ OK ]

Starting xinetd: [ OK ]

[root@node1 ~]# ss -uanlp | grep xinetd

UNCONN 0 0 *:69 *:* users:(("xinetd",5007,5))

UNCONN 0 0 *:69 *:* users:(("xinetd",5000,5))

准备引导文件:[root@node1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

[root@node1 ~]# cp /var/ftp/pub/centos-6.4-x86_64/isolinux/{boot.msg,splash.jpg,vesamenu.c32} /var/lib/tftpboot/

[root@node1 ~]# ls /var/lib/tftpboot/

boot.msg pxelinux.0 splash.jpg vesamenu.c32

[root@node1 ~]# cp /var/ftp/pub/centos-6.4-x86_64/p_w_picpaths/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/

[root@node1 ~]# ls /var/lib/tftpboot/

boot.msg initrd.img pxelinux.0 splash.jpg vesamenu.c32 vmlinuz

[root@node1 tftpboot]# mkdir pxelinux.cfg

[root@node1 tftpboot]# cd pxelinux.cfg/

[root@node1 pxelinux.cfg]# cp /var/ftp/pub/centos-6.4-x86_64/isolinux/isolinux.cfg default

[root@node1 pxelinux.cfg]# chmod +w default

[root@node1 pxelinux.cfg]# mkdir /var/ftp/pub/kickstart/

[root@node1 pxelinux.cfg]# vim default

menu background splash.jpg

menu title Welcome to CentOS 6.4 from PXE!

label linux

menu label ^Install or upgrade an existing system

menu default

kernel vmlinuz

append initrd=initrd.img ks=ftp://192.168.10.10/pub/kickstart/centos6.cfg

[root@node1 ~]# yum -y install system-config-kickstart

[root@node1 ~]#system-config-kickstart

1.选择时区,设置root密码

2、设置安装源(软件包位置),选择协议

3.选择安装软件

所有设置完成后将文件保存到指定目录,名称跟前面/var/lib/tftpboot/pxelinux.cfg/default中ks路径保持一致,名字为centos6.cfg,添加分区信息,进行测试:[root@node1 ~]# vim centos6.cfg

# Partition clearing information

clearpart --all --initlabel

#添加分区信息

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

part pv.008002 --size=61440

volgroup vg0 --pesize=8192 pv.008002

logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480

logvol swap --name=swap --vgname=vg0 --size=2048

logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240

logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480

[root@node1 ~]# cp centos6.cfg /var/ftp/pub/kickstart/

[root@node1 ~]# service vsftpd start

测试:

软件安装过程

安装后启动登录,操作完成!

linux 启动网络服务,Linux下网络启动服务器安装和配置方法(pxe+tftp+dhcpd)相关推荐

  1. linux下如何启动mysql服务_linux下怎么启动mysql服务

    2017-11-08 回答 权限问题.,copy份给你! 1.首先要运行一下 比如说我的mysql安装在/opt/mysql下面 #cd /opt/mysql #scripts/mysql_insta ...

  2. 在Linux下如何启动MySQL服务_怎样在linux下启动mysql服务-linux下启动mysql服务的方法 - 河东软件园...

    近几日有用户在向小编询问,在linux系统下安装了Mysql数据库,软件是顺利安装了,可是不知道如何进行Mysql的相关配置才能使mysql服务的相关启动及停止操作.Mysql是目前比较流行的数据库了 ...

  3. linux下xampp的安装和配置文件,linux下xampp集成包安装配置方法

    1.查看你linux系统的位数,是32位的还是64位的.使用uname -a命令查看. 显示有 x86_64则说明你是64位内核, 跑的是64位的系统. i386, i686说明你是32位的内核, 跑 ...

  4. win7mysql5.7.25安装教程_win7下MySql 5.7安装配置方法图文教程

    上学的时候经常使用MySql,当时也没想其他,主要是MySql对电脑的要求比较低,负载比较小.工作后一直在使用Oracle,现在因为项目的需要,重新安装MySql,发现变化有点多. 本经验适用于安装M ...

  5. 服务中启动oracle服务,Linux下如何自动启动Oracle服务

    在windows下,可以在计算机服务管理里将Oracle服务设置为自动,Linux中在Oracle安装完毕以后,如果重新启动Linux ,Oracle是不会自动启动的,你可以通过手动调用dbstart ...

  6. linux下关闭网络服务,Linux 关闭网络管理服务

    关于各种类型数据char.int.double.float 所占空间长度的计算,而char类型让我长姿势了 #include int main() { using namespace std; //i ...

  7. linux下启动nfs服务,linux下Samba服务和NFS服务配置的方法

    linux下Samba服务和NFS服务配置 一.Samba服务配置过程 samba的功能很简单,就是为了使linux和windows之间能够实现共享.并且利用samba搭建文件服务器,不仅比windo ...

  8. linux环境下和网络服务相关的配置文件含义及如何配置

    要建立一个安全Linux服务器就首先要了解Linux环境下和网络服务相关的配置文件的含义及如何进行安全的配置.那天查看服务器的eth0地址,后来想了一些问题,到家里就翻了翻以前的文档,无意中看到了这个 ...

  9. linux启动jar服务命苦_shell脚本启动jar包

    1.基于maven的springboot项目打包 2.到项目路径下对应target目录找到生成的jar 将之上传到linux系统上 3.对应shell脚本 ------脚本开始------ #!/bi ...

最新文章

  1. 求求你别再用 System.out.println 了!!
  2. mysql初始化root 密码是多少_Mysql初始化root密码和允许远程访问
  3. [mysql] mysql-myibatis-整理
  4. org.hibernate.exception.SQLGrammarException: Error calling Driver#connect
  5. 添加新闻在分层里的实现
  6. WRC 2017最值得关注的专题论坛之一,与大咖探讨青年科学家的创新创业
  7. find border vertex
  8. 小狗拉菲扫地机器人_小狗电器:2018年最值得入手的五款扫地机器人
  9. yosemite php gd,Yosemite/El Capitan php-gd mcrypt安装
  10. matlab平差实习报告,《测量平差》课程设计实习报告 五星文库
  11. 问题 F: 解救小哈
  12. GaN制备micro-led(一)
  13. MIPI摄像头工程=7系列FPGA + OV5640(MIPI) + 15 分钟 + VITIS
  14. 【回眸】RS485VSRS232,I2C,SPI特点、什么是PMIC、RTOS移植相关问题
  15. html表格按照编号排序,JS实现简单表格排序操作示例
  16. 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 WMT数据处理
  17. 2016年蓝桥杯A组 第九题 密码脱落
  18. PCIe扫盲——PCIe错误源详解(二)
  19. 物联网工程-hadoop论文
  20. CNN基础知识 || softmax与交叉熵

热门文章

  1. 关于Jbulder2006的问题
  2. 电脑添加打印机方法/步骤
  3. Win10更新提示0x8024402f错误的解决方法
  4. 关于对于工作方式的一些总结。
  5. 如何解决System.Web.HttpRequestValidationException的异常
  6. 未能加载文件或程序集 Newtonsoft.Json, Version=4.5.0.0 的报错,解决方法
  7. 关于vue2.0+hbuilder打包移动端app之后空白页面的解决方案
  8. 如何使用putExtra()和getExtra()来表示字符串数据
  9. Java 8 Iterable.forEach()与foreach循环
  10. 虚拟串口 服务器,ZNetCManager