linux dhcp 安装系统,Linux上基于网络自动化安装系统(CentOS6.5+DHCP+TFTP+PXE)

Linux上基于网络自动化安装系统(CentOS6.5+DHCP+TFTP+PXE)

一、前言

安装系统常用的方式就是,光驱安装,U盘安装,但是这种手动安装方法效率都很低,而且出错概率大。

现在网卡速率也都基本1000M,所以网络安装就显得更简单,把管理员从重复、繁琐的安装操作中解放出来。

当然,这只是一个局域网内的实验配置,生产环境会有更专业的解决方案,但是这个原理都是一样的。

二、原理

本次实验用到的协议和技术有:

DHCP: Dynamic Host Configuration Protocol

动态主机配置协议

TFTP: Trivial File Transfer Protocol 小文件传输协议

PXE: Preboot

Execution Environment远程引导技术

上图告诉我们本次网络安装中DHCP,TFTP,PXE的关系和启动的过程,本次实验DHCP和TFTP是在同一台服务器。

详细流程如下:

如图:

42abf3450ceb98f0de609ac3575186d7.png

1. Target client向DHCP服务器发送DHCP请求

首先,client端的网卡一定要支持PXE,并且将client的BIOS设置成网络启动为第一顺序,然后PXE

BootROM会以UDP协议发送一个广播请求DISCOVER,向网络中的DHCP服务器索取IP地址等信息。

2. DHCP收到广播,并发送广播包回应Client一个OFFER,意义为我可以给你提供ip信息

3. Client收到DHCP的OFFER后,继续发送广播包,向DHCP服务发起REQUEST

4. DHCP服务器收到REQUEST后,验证是否来自合法的PXE

Client请求,通过验证后,会响应给client提供:IP地址,pxelinux启动程序位置(TFTP),以及配置文件所在位置

5. Client向TFTP服务器请求下载启动文件,文件包括:

pxelinux.0, vmlinuz, initrd.img,

pxelinux.cfg/default, pxelinux.cfg/list

6. TFTP服务器收到请求后,启动TFTP并开始传送启动文件

当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM 由 TFTP 通讯协议从Boot

Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,系统会下载并读取pxelinux.cfg/list文件,操作人员需要安装list中列出的系统进行选择,启动对应选择的Linux系统并安装程序的引导内核。

三、实验思路

1. 前提条件:

Client机器必须支持PXE启动

Client机器,DHCP,TFTP必须在同一个局域网内

要安装的系统需要有对pxeboot的支持

2. 方案数据:

预安装系统:

CentOS6.6

DHCP服务器(TFTP服务器)信息:

IP:192.168.100.200

OS:

CentOS6.6

Client机器信息:

MAC: 00:0c:29:c1:3a:ab

ip:

192.168.100.222  (可以在DHCP配置中预留)

四、实验具体操作步骤

1. DHCP服务的配置

1) 安装dhco服务器包:#yum -y install dhcp

2) 编辑dhcp配置文件:

a. 可以通过rpm -ql

dhcp来查看配置文件的sample,这样编辑起来更容易些:#rpm -ql dhcp

查到样例在这里 /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample

#复制dhcpd.confg.sample到/etc/dhcp/dhcpd.conf#cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf

b. 编辑dhcpd.conf

#vim /etc/dhcp/dhcpd.conf

option domain-name "richie.com";

option

domain-name-servers 8.8.8.8;

default-lease-time 86400;

max-lease-time 100000;

log-facility local7;

subnet 192.168.100.0 netmask

255.255.255.0 {

range 192.168.100.201 192.168.100.222;

#option routers 192.168.100.200;

next-server 192.168.100.200;   #

TFTP服务器的IP(这里就是本机的IP)

filename "pxelinux.0";

}

重点注意 next-server 和 filename参数,这里分别指定了TFTP服务器的位置和启动文件的名称

c. 启动DHCP服务

启动之前,应该检测下配置文件是否有错误,可以用以下命令:#service dhcpd configtest

如果提示#Syntax: OK

那就没问题,继续启动DHCP服务

#service dhcpd restart

2. TFTP服务器配置

1)

安装tftp服务包#yum -y install tftp-server

#TFTP的配置文件位于

/etc/xinetd.d/tftp

2)启动tftp服务

由于tftp是瞬时守护进程,依赖于xinetd来监听,所以启动tftp,必须要重启xinetd来是让配置生效

#启动tftp两种方式:

a.

修改tftp配置文件中disable=no#vim /etc/xinetd.d/tftp

#disable=no

b. 用chkconfig命令#chkconfig tftp on

注意,两种方式任选其一都可以实现,但是必须要重启xinetd,命令如下:#service xinetd restart

查看udp 69端口是否监听# ss -unl | grep :69

3) 准备启动文件

a. 启动镜像文件pxelinux.0的准备

获取这个文件,需要安装syslinux包,然后将pxelinux.0复制到/var/lib/tftpboot目录#yum -y install syslinux

#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

b. 提供引导内核等文件

同时在/var/lib/tftpboot目录下创建pxelinux.cfg目录

挂载系统光盘,假设位置为/media/cdrom/# cp /media/cdrom/p_w_picpaths/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/

# cp /media/cdrom/isolinux/{splash.jpg,vesamenu.c32,boot.msg} /var/lib/tftpboot

# mkdir /var/lib/tftpboot/pxelinux.cfg/

# cp /media/cdrom/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

3. 提供安装源

这里我们基于http来提供,挂载CentOS安装光盘镜像

a. 安装http服务# yum -y install httpd# mkdir -pv /var/www/html/centos/6/x84_64

用/6/x86_64这种结构,以后便于用变量来引用这个地址# mount --bind /media/cdrom /var/www/html/centos/6/x84_64

--bind可以绑定两个挂载地址

4. 提供ks.cfg

这里不详细提供如何配置ks.cfg, 这个是kickstart的脚本。可以使用system-config-kickstart工具来创建

ok,基本ok,附图来欣赏下,启动成功的样子吧~~

这个tftp的信息会一闪而过,大家就当是了解下过程吧

9340c29a77696d186345877b84399171.png

8459a954653d93da2014ab62965e919b.png

在这个menu状态,按ESC可以进入boot命令行,可以继续键入boot

option来指定ks脚本啊,配置ip信息等好多内容,具体的option可以参考redhat的installation guide文档很详细的。

30f0628a2e7290b20a0cbca8374bf0fe.png

本次实验就到这里, 谢谢大家的关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值