SYS  PRACTICE    系统实践摘要:论文介绍一种在局域网环境下快速大规模部署 Linux操作系统的方法。论文对相关技术PXE、
DHCP、TFTP、NFS和kickstart进行了分析,并介绍了其具体配置方法,实现了Linux操作系统的快速并发部
署,减少了工作量,并提高了工作效率。
关键词:Linux系统;PXE;DHCP;TFTP;NFS;自动批量安装
一、技术原理
系统安装环境由一个局域网和连接到该局域网的服务器、若干待安装客户端组成。基于网络的Linux系统安装结构图,如图1所示。在网络安装过程中,PXE Client 通过PXE 启动后,首先就会通过DHCP 服务器获取IP 地址、TFTP 服务器的地址和启动文件的名称,然后通过TFTP 协议下载启动文件、启动配置文件、安装用的内核与文件系统,最后通过NFS 或Web 服务器、FTP 服务器获取kickstart 自动应答文件和安装文件。
图1 基于网络的Linux操作系统安装结构图(一)PXE技术
PXE ( preboot execute environment)是由Intel公司开发的最新技术,该技术可以使计算机通过网络启动。采用Client/Server 的网络模式,支持工作站通过网络从远端服务器下载映像,并支持来自网络的操作系统的启动过程。启动过程中,终端要求服务器分配IP地址,再用TFTP协议(trivial file transfer protocol)下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
(二) DHCP动态主机配置协议
DHCP动态主机配置协议是一种在现有IP地址紧缺的情况下,能够自动管理和分配IP地址的协议,能够为待安装客户端根据其MAC地址分配相应的IP地址。在对多台客户端安装操作系统之前,需要先知道客户端的MAC地址。该地址的获取有两种方法。一种是启动windows系统后,在开始--所有程序--运行中输入:cmd命令,然后运行ip-config/all即可。另一种是把windows盘抽掉,将服务器和客户端通过网络连接,开机启动选择网络启动,可以显示客户端的MAC地址。
(三)TFTP简单文件传输协议
TFTP (trivial file transfer protocol)简单文件传输协议是一种基于UDP协议的客户端和服务器之间进行简单文件传输的协议,它不需要客户端的权限认证,也就减少了无谓的系统和网络带宽消耗。因此,在传输琐碎不大的文件时,效率更加高。
(四) NFS网络文件系统
NFS是Network File System的简写,即网络文件系统NFS 协议基于客户/服务器结构,通过RPS(远程过程调用)实现,支持多种安装介质目录结构。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。Linux 操作系统中,NFS服务器的共享目录都记录在/etc/exports文件中。
(五)kickstart技术
为满足自动化redhat linux 操作系统安装的需要,redhat 开发了kickstart技术。他的工作原理是通过记录典型安装过程中所需人工干预填写的各种参数,生成一个名为ks.cfg的配置文件,并让安装程序知道该配置文件的位置,在安装过程中安装程序会从指定的kickstart文件中读取数据,而不需要用户输入,从而实现无人值守的自动化安装。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
二、 服务器配置
(一) 配置DHCP(动态主机配置协议)服务
梦幻西游仙玉(1)编辑DHCP服务的配置文件。
DHCP sever的配置文件是f,配置文件的内容如下(只给出关键部分)subnet 161.207.104.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0;
range dynamic-bootp 161.207.104.76 161.207.104.99;
default-lease-time 21600;
max-lease-time 43200;
filename "/kickstart/ks.cfg";
host fx201 {
hardware ethernet 08:2E:5F:01:6C:36; #根据各客户端MAC 地址为其分配IP地址
fixed-address 161.207.104.76;
        }
allow booting;
allow bootp;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
filename "linux-install/pxelinux.0";#指定bootloader启动镜像文件
Linux操作系统的网络自动安装方法
孙美玲
27
SYS  PRACTICE    系统实践
option tftp-server-name "161.207.104.86";  #指定TFTP 服务器地址
next-server 161.207.104.86;
}
}
(2)重启DHCP服务。
service dhcpd restart
(二) 配置TFTP(简单文件传输协议)服务
(1)编辑TFTP配置文件。
vi /etc/xinetd.d/tftp
service tftp
{
 disable = no   #启动TFTP服务
 socket_type = dgram
 protocol  = udp
 wait  = yes
 user  = root
 server  = /usr/sbin/in.tftpd
 server_args = -s /tftpboot  #指定TFTP服务器根目录地址
 per_source = 11
 cps  = 100 2
 flags  = IPv4 
}
(2)挂接安装光盘到/mnt目录。
cp /mnt/isolinux/initrd.img    /tftpboot/linux-install  # 拷贝操作系统的根文件系统文件
cp /mnt/isolinux/vmlinuz     /tftpboot/linux-install   # 拷贝操作系统的内核文件     
武藤兰照片
(3)在/tftpboot/linux-install/prelinux.cfg目录下编辑客户端默认的配置文件——default文件。
default linux
prompt 1
timeout 5
display boot.msg推荐好听的英文歌
explain
F1 boot.msg
label linux
  kernel vmlinuz
  append initrd=initrd.img ks=nfs:161.207.104.86:/kickstart/ ks.cfg ramdisk_size=10000 ksdevice=eth0
label text
  kernel vmlinuz
  append initrd=initrd.img text
label ks
  kernel vmlinuz
  append ks initrd=initrd.img
label local
  localboot 1
label memtest86
  kernel memtest
(4)拷贝启动镜像文件到TFTP服务器根目录。
cp /usr/lib/syslinux/prelinux.0     /tftpboot/linux-install
(5)重启TFTP服务。
service xinetd restart
(三) 配置NFS(网络文件系统)服务
(1)创建存放系统镜像的目录/install,并将所有系统镜像文件拷贝至/install目录中。
(2)编辑/etc/exports文件,允许待安装的客户端通过NFS访问三个目录。     
/tftpboot       *(ro,sync)
/
install       *(ro,sync)
/kickstart       *(ro,sync)
h姓女星(3)重启NFS服务。
service nfs  restart     
(4)显示N F S服务器的输出清单,检查目录是否被正确共享。
showmount -e           
(四)配置自动安装配置文件——ks.cfg文件
(1)创建存放ks.cfg文件的目录,并修改属性。
有什么好看的发型 mkdir /kickstart 
   chmod -R777/kickstart
(2)ks. Cfg文件配置。
用命令system-config-kickstart打开配置界面,做好相应配置后,将文件命名为ks.cfg,并存在/kickstart目录下;也可以用命令直接vi ks.cfg文件。根据应用系统的不同,ks.cfg文件也不相同。
三、开始安装
用户只需要手动开机,PXE客户端BIOS启动方式设置为网络启动,就可以完成Linux操作系统的完全无人值守自动化安装。
四、结语
本文通过DHCP、TFTP、NFS和kickstart等多种技术的结合,实现了Linux操作系统的网络自动化安装。运用这种技术,可以减少大规模安装Linux操作系统的工作量。并且该技术不需要额外的软件、光驱或软驱等硬件设备,在成本上也有很大优势。从安全性和可靠性考虑,为了使客户端操作系统的安装不会中断,今后将研究如何利用两台安装服务器进行linux 操作系统的安装,实现服务器的自动切换,并研究如何实现两台服务器的负载均衡。
参考文献
[1]李怀刚,邱建新.网络安装linux的技术原理分析及实现[J].计算机应用与软件,2006.
[2]邱建新,马世霞.Linux网络安装的自动化原理剖析及应用[J].微计算机应用,2005.
[3]么罗野.大规模快速部署Linux 的实现方法[J].计算机与现代化,2011.
(作者单位:中国石油辽河油田勘探开发研究院)
28