第七部分其它运维知识
第四十四章 批量无人值守安装CentOS
一、概述
无论是光驱引导安装,还是NFS、HTTP、FTP服务进行网络安装,都需要一个前提:需要安装引导介质(光盘、U盘等)。而自动化批量部署,是通过网络,无需介质,无人值守全自动化安装Linux操作系统。提升工作效率,减少消耗时间和人力成功,并有多种方式实现。本例以PXE+DHCP+NFS+Kickstart方式实现。一般在上千台服务器以内,可以将DHCP、NFS、Kickstart、TFTP放在一台服务器上。
1、什么是PXE
PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transferprotocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 Client端和Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。
2、什么是Kickstart
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。
3、PXE的工作过程
(1)PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
(2)DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;
(3)PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
(4)PXE Client 取得pxelinux.0 文件后之执行该文件;
(5)根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;
(6)进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;
4、PXE的工作流程图
5、PXE+Kickstart无人值守安装操作系统完整过程
二、安装实战
1、演示环境
Host |
OS |
role |
remask |
192.168.1.225 |
CentOS6.5_32 |
DHCP服务器 |
为客户端自动配置IP |
192.168.1.225 |
CentOS6.5_32 |
TFTP服务器 |
为客户端提供PXE引导文件 |
192.168.1.225 |
CentOS6.5_32 |
NFS服务器 |
存放Linux安装文件和应答文件 |
192.168.1.226 |
CentOS6.5_32 |
客户端服务器 |
测试自动安装 |
2、配置PXE网络安装的说明及步骤
(1)配置NFS服务器(服务端)
(2)配置TFTP服务器(服务端)
(3)配置DHCP服务器(服务端)
(4)配置Kickstart(服务端)
(5)使用PXE功能引导客户机(客户端)
3、创建共享目录(存放Linux的ISO中的所有内容)
(1)创建共享目录
mkdir /data/sys -p
(2)挂载光盘ISO
mount /dev/cdrom /mnt
(3)拷贝ISO中所有内容到/data/sys目录下
cp -a /mnt/* /data/sys/
(4)创建应答文件目录
mkdir -p /data/sys/kickstart
4、安装NFS服务
(1)查看NFS是否已安装(前期已安装)
rpm -qa | grep nfs
nfs4-acl-tools-0.3.3-6.el6.i686
nfs-utils-1.2.3-39.el6.i686
nfs-utils-lib-1.1.5-6.el6.i686
sblim-cmpi-nfsv4-1.1.0-1.el6.i686
sblim-cmpi-nfsv3-1.1.1-1.el6.i686
(2)配置NFS
echo “/data/sys 192.168.0.0/16(ro,sync)” >>/etc/exports
cat /etc/exports
/data/sys 192.168.0.0/16(ro,sync)
(3)重启NFS服务
/etc/init.d/rpcbind restart
Stopping rpcbind: [ OK ]
Starting rpcbind: [ OK ]
/etc/init.d/nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Starting NFS daemon: [ OK ]
Starting RPC idmapd: [ OK ]
(4)配置NFS服务开机启动
chkconfig nfs on
chkconfig rpcbind on
chkconfig –list rpcbind
rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off
chkconfig –list nfs
nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(5)检查NFS共享服务是否正常(在服务端和客户端均测试通过)
showmount -e 192.168.1.225
Export list for 192.168.1.225:
/data/sys 192.168.0.0/16
5、安装TFTP服务
(1)安装TFTP
yum install tftp-server* -y
rpm -qa | grep tftp
tftp-server-0.49-7.el6.i686
tftp-0.49-7.el6.i686
rpm -qa | grep xinetd
xinetd-2.3.14-39.el6_4.i686
(2)配置TFTP服务(TFTP服务由xinetd管理,修改/etc/xinetd.d/tftp文件)
vi /etc/xinetd.d/tftp
修改前:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user