Linux Kickstart无人值守安装

来源:互联网 发布:ipad发展 知乎 编辑:程序博客网 时间:2024/09/21 09:19
 Linux Kickstart无人值守安装
      
在我们的网络维护生涯中,有不少朋友,感觉到自己在机械的做一件事情,在无聊、无趣和无奈中工作。尤其一些简单重复的操作更容易让大家感到工作的无趣。今天将给大家介绍如何大规模的部署RedHat Linux操作系统,避免了手工安装的繁琐。当然本方法也使用于一些特殊场合,譬如没有光驱或光驱坏掉的计算机、手中没有安装光盘等情况。
在安装RedHat Linux企业版的过程中,我们都知道它允许通过NFSHTTPFTP协议来进行网络安装。但是在一般情况下我们需要有一个安装引导介质(引导光盘、引导软盘、U盘等),有没有一种方法不通过引导光盘方式来安装呢,而直接通过网络来进行安装?答案是有,即通过PXE技术实现。

一、基本原理

      PXE到底是什么东东?
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为clientserver两端,PXE client在网卡的ROM中,当计算机引导时,BIOSPXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
既然是通过网络传输,就需要IP地址;也就是说在其启动过程中,客户端请求服务器分配IP地址,之后PXE Client使用TFTP Client 通过TFTPTrivial File Transfer Protocol)协议下载启动安装程序所需的文件。
简单地说PXE网络安装,客户机通过支持PXE的网卡向网络中发送请求DHCP信息的广播请求IP地址等信息,DHCP服务器给客户端提供IP地址和其它信息(TFTP服务器、启动文件等),之后请求并下载安装需要的文件。在这个过程中需要一台服务器来提供启动文件、安装文件、以及安装过程中的自动应答文件等。下图中介绍了Linux中自动安装系统的详细工作过程:
第一步:PXE Client向DHCP发送请求
首先,将支持PXE的网络接口卡(NIC)的客户端的BIOS设置成为网络启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向网络中的DHCP服务器索取IP地址等信息。
第二步:DHCP服务器提供信息
DHCP服务器收到客户端的请求,验证是否来至合法的PXE Client的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。
第三步:PXE客户端请求下载启动文件
客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0pxelinux.cfg/defaultvmlinuzinitrd.img等文件。
第四步:Boot Server响应客户端请求并传送文件
当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答用以决定启动参数。BootROM  TFTP 通讯协议从Boot Server下载启动安装程序所必须的文件(pxelinux.0pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。
第五步:请求下载自动应答文件
客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。或许你会说,刚才PXE不是已经获取过IP地址了吗?为什么现在还需要一次?这是由于PXE获取的是安装用的内核以及安装程序等,而安装程序要获取的是安装系统所需的二进制包以及配置文件。由于它们需要的内容不同造成PXE模块和安装程序是相对独立的,PXE的网络配置并不能传递给安装程序。从而进行两次获取IP地址过程。
接着会读取该文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。
第六步:客户端安装操作系统
ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。
OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。这个时候注意,在重新引导的过程中一定要将BIOS修改回从硬盘启动,不然的话又会重复的自动安装操作系统。
在上面介绍中PXE client是需要安装Linux的计算机,TFTP ServerDHCP ServerNFS Server运行在另外一台Linux Server上。Bootstrap文件、配置文件、Linux内核都放置在Linux ServerTFTP服务器的根目录下。而Linux根文件系统存放于NFS Server的共享目录中。
PXE client在工作过程中,需要三个二进制文件:bootstrapLinux 内核和Linux根文件系统。Bootstrap文件是可执行程序,它向用户提供简单的控制界面,并根据用户的选择,下载合适的Linux内核以及Linux根文件系统。

 二、配置过程

 配置PXE安装,要进行如下步骤:
 ① 配置DHCP,用于给客户端提供IP地址及其它信息
 ② 配置TFTP服务器,用于提供客户端PXE引导所必须的文件
 ③ 配置NFS服务器,用于存放安装树
 ④ 配置Kickstart,用于自动应答安装
 ⑤ 使用PXE功能引导客户机
   1、DHCP的安装与配置
PXE引导安装过程中,PXE客户端通过DHCP获取PXE服务器地址,PXE引导文件名称;然后客户机在使用TFTP协议从TFTP服务器下载引导文件并执行,从而启动计算机安装程序。引导文件执行后,接着下载安装程序启动安装。RedHat Linux使用了ISCdhcpd软件,完成它的安装与配置。
1)安装DHCP软件包
[root@qiuri Server]# rpm -ivh dhcp-3.0.5-13.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:dhcp                      ########################################### [100%]
[root@qiuri Server]#
2)配置DHCP
安装完成后,复制DHCPD配置文件模版替换原配置文件/etc/dhcpd.conf
[root@qiuri Server]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
接下来我们需要配置相关信息。为了满足我们的安装需求,假设PXE服务器、DHCP服务器、TFTP服务器全部安装在一台为192.168.1.1的计算机上。我们需要进行如下操作:
1)修改 /etc/dhcpd.conf 文件,指定 IP 地址等信息。
2)在 '''/etc/dhcpd.conf''' 中增加 tftp-server 需要推送给客户端的启动文件(bootstrap):filename "pxelinux.0";因为 tftp 的默认目录是 /tftpboot,所以文件的绝对路径就是: /tftpboot/pxelinux.0";当然也可以指定为其它的路径。
另外需要指定 next-server 参数,告诉客户端在获取到 pxelinux.0 文件之后去哪里获取其余的启动文件: next-server 192.168.1.1;
最终的配置文件结果如下所示:
[root@qiuri Server]# vi /etc/dhcpd.conf  
ddns-update-style interim;
ignore client-updates;
allow booting; #定义能够PXE启动
allow bootp;  #定义支持bootp
subnet 192.168.1.0 netmask 255.255.255.0 {
        range  192.168.1.10 192.168.1.80;
        option routers                  192.168.1.1;
        option subnet-mask              255.255.255.0;
        default-lease-time 21600;
        max-lease-time 43200;
        next-server 192.168.1.1; #TFTP Server的IP地址
        filename "pxelinux.0";   #pxelinux启动文件位置
}
配置完成后,重启DHCP服务,并将它设为开机自启动。
[root@qiuri Server]# /etc/init.d/dhcpd start
启动 dhcpd:                                               [确定]
[root@qiuri Server]# chkconfig --level 35 dhcpd on
 
2、安装配置TFTP服务器
在PXE安装过程中,客户机在使用TFTP协议从TFTP服务器下载引导文件并执行。我们主要通过配置TFTP服务器和PXE的引导配置完成这个过程。
1)安装配置TFTP服务器
首先,安装TFTP服务器软件包,RedHat提供了如下两个软件包:
l tftp-server:服务端程序
l tftp :客户端程序
[root@qiuri Server]# rpm -ivh tftp-server-0.42-3.1.i386.rpm
Preparing...                ########################################### [100%]
   1:tftp-server            ########################################### [100%]
[root@qiuri Server]# 
配置tftp服务
tftp 服务由xinetd服务管理。编辑 '''/etc/xinetd.d/tftp''' 文件,将 '''disable = yes''' 改为:disable = no。
[root@qiuri Server]# vi /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
从这里看出,默认选择/tftpboot为TFTP服务器的根目录位置,配置完成后重启xinetd服务,使TFTP服务器生效。
[root@qiuri Server]# /etc/init.d/xinetd restart
2)PXE引导配置(bootstrap)
PXE启动映像文件由syslinux软件包提供,RedHat Enterprise Linux光盘中已提供,如果没有此软件包可以到syslinux 主页:http://syslinux.zytor.com/下载rpm来安装。
我们只要安装了syslinux,就会生成一个pxelinux.0,将 pxelinux.0 这个文件复制到 '''/tftpboot''' 目录即可:
[root@qiuri Server]# rpm -ql syslinux |grep "pxelinux.0"
/usr/lib/syslinux/pxelinux.0
[root@qiuri Server]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
         本打算发表在一篇中,但是系统老是提示超过8万字节,也只能发两篇了,点击查看《Linux Kickstart无人值守安装》后半部分。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 在路上限行了怎么办 微信号不能进群怎么办 在微信约妹子被骗2000怎么办 qq号进不了热聊怎么办 网上买彩票中五百万怎么办 别人登我支付宝怎么办 医保刷卡刷到现金支付怎么办 微信诈骗立案后怎么办 奔跑吧诈骗填写了身份证怎么办 快手绑定的手机号丢了怎么办 球球大作战绑定手机号丢了怎么办 快手绑定手机号丢了怎么办 绑定银行卡的手机号丢了怎么办 爱奇艺绑定的手机号丢了怎么办 高铁票订错时间怎么办 微信音频视频打出没反应怎么办 海尔超低温保存箱低温报警怎么办 孕期吃了烧烤蔬菜怎么办 百姓动迁政府说话不算数怎么办 孕妇用了青草膏怎么办 药材不知道啥名怎么办 诛仙手游鸿蒙紫气不见了怎么办 紫叶兰叶干了怎么办 绿萝叶子中毒了怎么办? 怀孕初期胃疼的厉害怎么办 怀孕胃疼的厉害怎么办 天然气热水器风口一封闭怎么办 热水器着火后火变大怎么办? 人如果没有天魂怎么办 被鬼魂附体了该怎么办 被吸血蠓咬了怎么办 股份公司大股东占用资金怎么办 抱小孩抱的胳膊疼怎么办 一个月好几个性伴侣怎么办 惹了势力大的人怎么办 给佛像换新法器旧的怎么办 cad填充图案拾取不了点怎么办 cad填充图案太密怎么办 桃木葫芦挂件裂口了怎么办 皮肤被太阳晒伤变黑怎么办 皮肤又粗又黑该怎么办