CentOS6.5下网络启动服务器安装和配置方法(pxe+tftp+dhcpd+kickstart)

背景:

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

Centos7以前的操作系统因为xinetd和TFTP版本的问题(版本过低)在安装后在PXE装机时会出现无法连接TFTP服务器的问题,建议安装TFTP4.0以上的版本可完成本实验

Centos7以下版本可以完成本实验,Centos7及以上版本配置环境同以往版本不同,另见博客。

术语解释:

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 image等文件。

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 image.

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

安装前关闭selinux及配置好iptables规则,详细过程此处不再给出

1.PXE BOOT Server配置过程

[[email protected] ~]# yum install tfpt tftp-server dhcp vsftpd syslinux #安装所需的软件包

[[email protected] ~]# mkdir /var/ftp/pub/centos-6.5-x86_64 -pv

[[email protected] ~]# mount -r /dev/cdrom /var/ftp/pub/centos-6.5x86_64/

[[email protected] centos-6.5-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

images           RPM-GPG-KEY-CentOS-6

2.配置DHCP服务:

在PXE引导过程中,PXE Client通过DHCP Server获取ip地址,NBP文件名称,然后从TFTP SERVER下载NBP文件并在客户端执行,从而启动计算机

[[email protected] ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

[[email protected] ~]# vim /etc/dhcp/dhcpd.conf

option domain-name "magedu.com";

option domain-name-servers 192.168.1.10;

default-lease-time 43200;

max-lease-time 86200;

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

# DHCP server to understand the network topology.

#自定义一个subnet

subnet 192.168.1.0netmask 255.255.255.0{

range 192.168.1.11 192.168.1.100;

option routers 192.168.1.10;

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

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

}

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

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

重启dhcpd服务

[[email protected] ~]# service dhcpd restart

Shutting down dhcpd:                                       [  OK  ]

Starting dhcpd:                                            [  OK  ]

[[email protected] ~]# ss -uanlp | grep dhcpd

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

3.配置tftp服务器

[[email protected] xinetd.d]# chkconfig tftp on

[[email protected] xinetd.d]# service xinetd restart

Stopping xinetd:                                           [FAILED]

Starting xinetd:                                           [  OK  ]

[[email protected] xinetd.d]# service xinetd restart

Stopping xinetd:                                           [  OK  ]

Starting xinetd:                                           [  OK  ]

[[email protected] ~]# ss -uanlp | grep xinetd

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

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

准备引导文件:

[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0/var/lib/tftpboot/

[[email protected] ~]# cp /var/ftp/pub/centos-6.5-x86_64/isolinux/{boot.msg,splash.jpg,vesamenu.c32} /var/lib/tftpboot/

[[email protected] ~]# ls /var/lib/tftpboot/

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

[[email protected] ~]# cp /var/ftp/pub/centos-7-x86_64/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/

[[email protected] ~]# ls /var/lib/tftpboot/

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

[[email protected] tftpboot]# mkdir pxelinux.cfg

[[email protected] tftpboot]# cd pxelinux.cfg/

[[email protected] pxelinux.cfg]# cp /var/ftp/pub/centos-6.5-x86_64/isolinux/isolinux.cfg default

[[email protected] pxelinux.cfg]# chmod +w default

[[email protected] pxelinux.cfg]# mkdir /var/ftp/pub/kickstart/

[[email protected] pxelinux.cfg]# vim default

menu background splash.jpg

menu title Welcome to CentOS 6.5 from PXE!

labellinux

menu label^Install or upgrade an existing system

menu default

kernel vmlinuz

append initrd=initrd.img ks=ftp://192.168.1.10/pub/kickstart/centos6.cfg #此处路径是相对路径

4.安装kickstart,配置cfg文件

[[email protected] ~]# yum -y install system-config-kickstart

[[email protected] ~]#system-config-kickstart

所有设置完成后将文件保存到指定目录,名称跟前面/var/lib/tftpboot/pxelinux.cfg/default中ks路径保持一致,名字为centos6.5.cfg,添加分区信息,在以上步骤中,有时选择软件时会出现没有安装包的情况,一定要提前下载并解压好操作系统的镜像文件,另外,在cfg文件生成后可以手工配置,但要注意磁盘分区时最好图形配置,手工配置会出现一些问题,导致不能安装,注意FTP服务器最好配置为允许匿名登录,若有账户密码,在以上配置过程中添加即可,以下给出本人cfg文件:

#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="http://192.168.1.10/pub/centos-6.5-x86_64"
# Root password
rootpw --iscrypted $1$Lk5nHdlh$oRSE67690ang4GObxj9dm0
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# System keyboard
keyboard us
# System language
lang zh_CN
# SELinux configuration
selinux --enforcing
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all

%packages
@basic-desktop
@chinese-support
@debugging
@desktop-platform
@guest-agents
@ha
@ha-management
@input-methods
@legacy-x
@load-balancer
@mysql
@mysql-client
@network-server
@network-tools
@nfs-file-server
@remote-desktop-clients
@resilient-storage
@storage-server
@virtualization
@virtualization-client
@virtualization-platform
@virtualization-tools
@x11

%end

[[email protected] ~]# service vsftpd start

整个server端配置完毕,可启动客户机进行安装.

时间: 2024-07-30 10:19:46

CentOS6.5下网络启动服务器安装和配置方法(pxe+tftp+dhcpd+kickstart)的相关文章

Centos6.3下Ganglia3.6.0安装配置

最近安装Ganglia,由于之前Linux基础基本为0,因此费了很大的周折.最后在失败了好多次之后终于看到了梦寐以求的web界面.下面总结下这几天来的工作. ganglia是一个监控软件,他包含三部分:Gmond,Gmetad和Gweb.在需要监控的主机上安装Gmond,他会采集当前主机上的一些信息:Gmetad部署在服务器端,它轮训主机,收集Gmond采集的主机信息,然后存在在rrdtool数据库中:Gweb是一个前台显示的界面,他读取Gmetad保存的rrd文件,显示在web界面上. 部署规

centos6.8下redis的安装和配置

centos6.8下redis的安装和配置 下载.安装 在redis官网可以获取到最新版本的redis 进入/usr/local/目录,执行如下命令 wget http://download.redis.io/releases/redis-4.0.2.tar.gztar xzf redis-4.0.2.tar.gzcd redis-4.0.2make 执行make构建redis时报如下错误,这是因为没有安装gcc,执行如下命令即可解决 错误: make[3]: gcc:命令未找到解决: yum

CentOS6.5下VNC Server远程桌面配置详解

参考文献: (总结)CentOS Linux下VNC Server远程桌面配置详解 远程桌面连接工具VNC——license Key 我的下载地址为 太平洋下载 VNC连接黑屏的问题 centos 6.5安装vncserver 并开启远程桌面 有个服务固定ip才能访问,系统是centos6.5,远程ssh只有命令,执行命令还行,但是打开网页看连接效果不行,所以需要服务器桌面共享. 一.安装相应桌面环境与vnc服务端和客户端: # yum groupinstall "X Window System

NLB多播模式下跨路由访问的配置方法

前些时间因为需大量访问共享文件,为提高访问的并发速度,就配置了两台服务器,采用windows的NBL来配置,配置方法在网上很多,配置完后,采用多播在本地可以访问,但其它网段就无法访问:后来又在网上查资料,有些说最好采用单播模式,这样支持跨网段的访问,又将NBL的工作模式改成单播模式,但出现有些机子能访问,有些不能访问,依据单播的工作原理,得知会修改网卡的物理地址改成以02BF开头的mac地址,在三层交换机上查看mac地址转发表,发现02bf开头的地地址只出现在一个物理端口上,另一台计臬机的端口上

centos 6.x下pxe+tftp+http+kickstart无人值守安装操作系统

1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机

Linux(centOS6.5)下SVN的安装、配置及开机启动

作为一名“万能”的码农,这种活儿你迟早要干的.----By Jimi没有bond 准备工作:yum 1.检查是否已安装 rpm -qa subversion 如果要卸载旧版本: yum remove subversion 2.安装 yum install subversion PS:yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql(这是安装配合Apache的模块,我暂时还没做,做了再补上,你可以只装subver

[转]Linux(centOS6.5)下SVN的安装、配置及开机启动

1.检查是否已安装 rpm -qa subversion 如果要卸载旧版本: yum remove subversion 2.安装 yum install subversion PS:yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql(这是安装配合Apache的模块,我暂时还没做,做了再补上,你可以只装subversion,多装了也无所谓) #确认是否已安装svn模块[[email protected] ~]#

CentOS6.4下源代码安装以及nginx配置

以前网上有个centos下的自动安装脚本,脚本本身应该是正确的,但是可能在多人转载后,中间有信息遗漏或者丢失,所以造成脚本失败,不能直接用 我把自己在CentOS下源代码安装OE以及与nginx整合的操作步骤拿出来分享一下,如有谬误,请坛友多指正 第一部分,安装OE说明:CentOS版本为6.4版本,命令行采用bash,PostgreSQL为9.2版本,Nginx为1.4版本 1.CentOS 的安装选项有最小化安装.基本服务器安装.虚拟主机安装等等的,我这里采用的是基本服务器安装(带的东西较少

CentOS6.4下Docker应用环境的部署配置

http://blog.chinaunix.net/uid-619485-id-4973941.html *********************************************** OS: CentOS 6.6 x86_64 Docker: 1.4.1 Docker安装 执行安装命令: sudo yum install docker-io 出现Error信息: Loaded plugins: fastestmirror, refresh-packagekit, securit