RHEL6+PXE+DHCP+FTP+Kickstart+tftp-server无人执手安装

原理和概念:

1.1 什么是PXE

严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE ClientPXE Pre-boot Execution Environment)协议使计算机可以通过网络启动。协议分为 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 ClientPXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。

1.2 什么是KickStart

KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

 

1.3 实验环境:

虚拟机:VMware Workstation 8 for windows

所有操作均在虚拟机下完成,虚拟机网卡设置均为VMnet2,A 虚拟机已安装rhel6 B 虚拟机无操作系统。

PXE + KickStart安装的条件

执行 PXE + KickStart安装需要的设备为:

• DHCP 服务器用来给客户机分配IP;

• TFTP 服务器用来存放PXE的相关文件,比如:系统引导文件

• FTP 服务器用来存放系统安装文件;

• KickStart所生成的ks.cfg配置文件

带有一个 PXE 支持网卡的将安装的主机;

 

-------------------------------------------------------------------

以下实验全部使用root 账户进行,整个过程都用rpm的方式安装,(有人会问为什么不用yum,你自己试试就知道了,不解释)

 

注:安装软件包时请转到/var/ftp/pub/Package/下安装,

 

安装的步骤:

 

一、挂载RHEL6的DVD光盘

 

#mount /dev/cdrom /mnt

 

二、安装vsftpd并复制光盘的所有内容(文件和文件夹)到/var/ftp/pub/

 

#cd /var/ftp/pub/Package/

#rpm -ivh vsftpd-2.2.2-6.el6.x86_64.rpm

#cp –rf /mnt/* /var/ftp/pub/

#service vsftpd start

#chkconfig vsftpd on

 

三、 安装 tftp-server和xinetd

 

#rpm -ivh xinetd-2.3.14-29.el6.x86_64.rpm

#rpm -ivh tftp-server-0.49-5.1.el6.x86_64.rpm

修改tftp配置文件:

#vi /etc/xinetd.d/tftp

----------------------------------------以下是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 /var/lib/tftpboot #这个目录可以不用改,你也可以在根目录新 建一个/tftpboot目录,不过要记住把这里改 成你新建目录的位置,不然客户端会出现以 下错误:PXE-T01:File not found

PXE-E3B:TFTP Error - file not found

PXE-M0F:Exiting Intel PXE ROM

disable = yes #把这里的值改成no

per_source = 11

cps = 100 2

flags = IPv4

}

 

---------------------------------------------------分隔线----------------------------------------------------------

 

#service xinetd start

#chkconfig xinetd on

 

 

四、 安装dhcp服务,同时修改配置

在安装DHCP 前,先把IP 地址配置为:192.168.1.1 (这个地址可以随意,不过下面的地址要统一)

 

修改IP地址,子网掩码,网关等信息

 

#vi /etc/sysconfig/network-scripts/ifcfg-eth0

 

修改ifcfg-eth0 的内容

 

-----------------------------------------以下是ifcfg-eth0文件的内容------------------------------

DEVICE=eth0

 

IPADDR=192.168.1.1

 

NETMASK=255.255.255.0

 

GATEWAY=192.168.1.1

 

ONBOOT=yes

 

BOOTPROTO=none

 

-------------------------------------------分隔线-------------------------------------------------------

 

重启网络

 

#service network restart

 

安装DHCP

#rpm -ivh dhcp-4.1.1-12.p1.el6.x86_64.rpm

这里直接修改dhcp配置文件,不需要去复制模板,直接把以下内容复制进去就行了,#后面为注释可以去掉

 

#vi /etc/dhcp/dhcpd.conf

---------------------------------分隔线下面是dhcpd.conf文件内容-----------------------------------------

ddns-update-style none;

 

next-server 192.168.1.1; #PXE服务器的IP

 

filename "/pxelinux.0";

 

subnet 192.168.1.0 netmask 255.255.255.0 {

 

range dynamic-bootp 192.168.1.150 192.168.1.200; #动态分配的IP

 

option broadcast-address 192.168.1.1;

 

option routers 192.168.1.1;

 

default-lease-time 600;

 

max-lease-time 7200;

}

-----------------------------------------------分隔线不用复制--------------------------------------------------

注:RHEL6dhcp配置文件应该放在/etc/dhcp/目录下,网上基本上都是复制到/etc/目录下。如果复制到/etc/目录下会出现以下的错误:

dhcpd: Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file

dhcpd: Wrote 0 leases to leases file.

dhcpd: No subnet declaration for eth0(192.168.1.1)

dhcpd: **Ignoring requests on eth0.If this is not what you want,please write a subnet declaration in your dhcpd.conf file for the network segment to which interface eth0 is attached. **

dhcpd: Not configured to listen on any interfaces!

 

启动dhcp服务

#service dhcpd start

#chkconfig dhcpd on

 

五、 配置支持PXE启动:

 

首先要安装syslinux 和相应的软件包,来保证以下步骤不缺少相应文件:

 

#rpm -ivh perl-Crypt-PasswdMD5-1.3-6.el6.noarch.rpm

#rpm -ivh perl-Digest-SHA1-2.12-2.el6.x86_64.rpm

#rpm -ivh syslinux-3.86.1.1.el6.x86_64.rpm

 

复制PXE启动所需的文件:

 

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

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

#cp /var/ftp/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

#cp /var/ftp/pub/image/pxeboot/initrd.img /var/lib/tftpboot/ #cp /var/ftp/pub/image/pxeboot/vmlinux /var/lib/tftpboot/ #cp /var/ftp/pub/isolinux/boot.msg /var/lib/tftpboot/ #cp /var/ftp/pub/isolinux/splash.jpg /var/lib/tftpboot/

#cp /var/ftp/pub/isolinux/vesamenu.c32 /var/lib/tftpboot

#chmod u+w /var/lib/tftpboot/pxelinux.cfg/default

 

修改default文件配置ks.cfg 的存放地址

 

#vi /var/lib/tftpboot/pxelinux.cfg/default

 

------------------------以下是default文件的内容-----------------------------------------------------------

 

default vesamenu.c32

 

#prompt 1

 

timeout 600

 

 

 

display boot.msg

 

 

 

menu background splash.jpg

 

menu title Welcome to Red Hat Enterprise Linux 6.0!

 

menu color border 0 #ffffffff #00000000

 

menu color sel 7 #ffffffff #ff000000

 

menu color title 0 #ffffffff #00000000

 

menu color tabmsg 0 #ffffffff #00000000

 

menu color unsel 0 #ffffffff #00000000

 

menu color hotsel 0 #ff000000 #ffffffff

 

menu color hotkey 7 #ffffffff #ff000000

 

menu color scrollbar 0 #ffffffff #00000000

 

 

 

label linux

 

menu label ^Install or upgrade an existing system

 

menu default

 

kernel vmlinuz

 

append initrd=initrd.img ks=ftp://192.168.1.1/ks.cfg #添加ks.cfg的位置,ftp://192.168.1.1/ks.cfg

 

label vesa

 

menu label Install system with ^basic video driver

 

kernel vmlinuz

 

append initrd=initrd.img xdriver=vesa nomodeset

 

label rescue

 

menu label ^Rescue installed system

 

kernel vmlinuz

 

append initrd=initrd.img rescue

 

label local

 

menu label Boot from ^local drive

 

localboot 0xffff

 

----------------------------------------------分隔线,红色字体为要修改的内容-----------------------------

 

 

六、 安装kickstart,同时配置kickstart(如果你的系统没有装anaconda的话,请把下面的rpm包全部装上,是的你没看错全部,其实也只是一条命令而已,要学会用tab键)

#rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

createrepo-0.9.8-4.el6.noarch.rpm

device-mapper-multipath-libs-0.4.9-31.el6.x86_64.rpm

device-mapper-multipath-0.4.9-31.el6.x86_64.rpm

libhbaapi-2.2-10.el6.x86_64.rpm

libhbalinux-1.0.10-1.el6.x86_64.rpm

libconfig-1.3.2-1.1.el6.x86_64.rpm

lldpad-0.9.38-3.el6.x86_64.rpm

fcoe-utils-1.0.14-9.el6.x86_64.rpm

isomd5sum-1.0.6-1.el6.x86_64.rpm

iscsi-initiator-utils-6.2.0.872-10.el6.x86_64.rpm

makebootfat-1.4-10.el6.x86_64.rpm

pykickstart-1.74.1-1.el6.noarch.rpm

pyparted-3.4-2.el6.x86_64.rpm

python-cryptsetup-0.0.11-1.el6.x86_64.rpm

python-nss-0.8-3.el6.x86_64.rpm

python-pyblock-0.48-1.el6.x86_64.rpm

squashfs-tools-4.0-3.el6.x86_64.rpm

tigervnc-server-1.0.90-0.10.20100115svn3945.el6.x86_64.rpm

anaconda-yum-plugins-1.0-5.1.el6.noarch.rpm

anaconda-13.21.82-1.el6.x86_64.rpm

system-config-language-1.3.4-5.el6.noarch.rpm

system-config-kickstart-2.8.6.2-1.el6.noarch.rpm

经过上面的安装,现在可以在gnome环境下配置kickstart了

#system-config-kickstart

 

配置界面如下:

 

1. 基本配置:根据内容选择和输入

 

2、 安装方法,选择ftp安装,输入服务器IP和目录,不要输入任何的帐号,我们采用的匿名安装

 

3、 引导安装程序选项,默认

 

4、 分区信息,创建三个分区分别是/boot/swap/根目录

5、 网络配置,网络类型选DHCP,设备名称选eth0

 

6、认证。默认不需要更改

7、防火墙设置。SElinuxSecurity level都选disable

8、显示配置:选上安装图形环境,下面的选disabledenabled没看出区别

 

9、 软件包的选择这里注意了如果你没有注册RHN的话,这里会提示"Package selection is disabled due to problems downloading package information"的错误,如图:

 

出现上面的错误要怎么解决呢,很简单只要在/etc/yum.repos.d目录下新建一个repo文件,名字随意后缀一定要是.repo,内容如下,其中baseurl要填写RHEL6安装光盘中Server的位置,注意大小写Server的第一个字母是大写的。因为我已经把安装光盘复制到FTP的公共目录下了,所以我这里直接填FTP的路径。

 

#vi /etc/yum.repos.d/rhel.repo

--------------------------分隔线以下是rhel.repo文件的内容-----------------------------------------------

[server]

name=server

baseurl=ftp://localhost/pub/Server

gpgcheck=1

enabled=1

 

-------------------------------------------分隔线------------------------------------------------------------------

新建了上面的文件后再来配置kickstart,软件包就可以选了装什么软件自己看着办吧,如图:

 

10Pre-Installation ScriptPost-Installation Script是干什么的,如果你会写脚本的话这两个配置用处就大了,本人是菜鸟不会写脚本所以不解释了,自己上网搜吧。

11最后按file--->save as 生成ks.cfg文件另存到/var/ftp目录

注:以上生成的ks.cfg安装完后默认是字符界面的,如果想装完默认是图形界面的话,就需要编辑ks.cfg,添加以下几行:

%post

perl -pi -e 's,id:3:initdefault,id:5:initdefault,' /etc/inittab

%end

 

最后记住关闭防火墙和SElinux.

#service iptables stop

#setenforce 0

如果没关闭防火墙和SElinux客户端会出现以下错误:

PXE-E32:TFTP open timeout

 

你可能感兴趣的:(RHEL6无人实现执手安装)