使用RHEL6.3+PXE+DHCP+Apache+NFS+KickStart 无人值守安装RHEL6.3,设置客户端从网卡启动


原理:通过kickstart生成ks.cfg文件,过滤掉安装过程中人工干预的部分,最终达到从网卡启动后能够自动安装系统直到完成从而实现了大规模部署安装操作系统.

系统环境:

[root@rhel6u3-1 ~]# uname -r
2.6.32-279.el6.i686

[root@rhel6u3-1 ~]# lsb_release -a
LSB Version:          :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noah
Distributor ID:         RedHatEnterpriseServer
Description:            Red Hat Enterprise Linux Server release 6.3 (Santiago)
Release:  6.3
Codename:             Santiago

第一步:配置yum环境

挂载镜像文件

[root@rhel6u3-1 ~]# mount /dev/cdrom  /media/cdrom/ //挂载光盘镜像文件
mount: block device /dev/sr0 is write-protected, mounting read-only

配置YUM库,指向镜像文件挂载位置.

[root@rhel6u3-1 ~]# vim /etc/yum.repos.d/rhel-source.repo  //创建并编辑yum仓库指向光盘挂载位置
[rhel-source-beta]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0

[root@rhel6u3-1 ~]# yum clean all
[root@rhel6u3-1 ~]# yum makecache

第二步:安装无人值守所需要的服务及软件包

包括: dhcp,xinetd,tftp,nfs,http,system-config-kickstart syslinux

[root@rhel6u3-1 Packages]# yum -y install dhcp xinetd tftp-server nfs* httpd syslinux system-config-kickstart     //安装所有需要的包

查看安装的包是否安装成功

[root@rhel6u3-1 Packages]# rpm -qa dhcp  //为pxe网卡提供网络参数并指向tftp服务器文件
dhcp-4.1.1-31.P1.el6.i686
[root@rhel6u3-1 Packages]# rpm -qa xinetd  //tftp服务依赖服务
xinetd-2.3.14-34.el6.i686

[root@rhel6u3-1 Packages]# rpm -qa tftp-server  //提供启动安装需要的内核文件
tftp-server-0.49-7.el6.i686

[root@rhel6u3-1 Packages]# rpm -qa nfs-utils  //提供安装需要的系统文件
nfs-utils-1.2.3-26.el6.i686

[root@rhel6u3-1 Packages]# rpm -qa httpd  //提供安装需要的无人值守kickstat脚本
httpd-2.2.15-15.el6_2.1.i686

[root@rhel6u3-1 Packages]# rpm -qa syslinux  //提供pexlinux.0文件
syslinux-4.02-7.el6.i686

[root@rhel6u3-1 Packages]# rpm -qa system-config-kickstart  //生成ks.cfg文件
system-config-kickstart-2.8.6.4-1.el6.noarch

第三步:配置dhcp服务器

复制模版进行配置

[root@rhel6u3-1 ~]# cp -p /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf  //复制dhcpd.conf配置模版

添加tftp服务器地址及pexlinux.0文件

[root@rhel6u3-1 ~]# vim /etc/dhcp/dhcpd.conf   //配置DHCP服务器
# dhcpd.conf
option domain-name "rsyslog.org";
option domain-name-servers 192.168.100.102, 192.168.100.103;
default-lease-time 86400;
max-lease-time 604800;
ddns-update-style none;
log-facility local7;
next-server 192.168.100.101;    //指向tftp服务器
filename="pxelinux.0";  //tftp根目录的相对路径
subnet 192.168.100.0 netmask 255.255.255.0 {
  range 192.168.100.30 192.168.100.80;
  option routers 192.168.100.1;
}

第四步:复制安装系统需要的核心文件及光盘镜像

复制初始化安装需要的系统内核等文件到tftp根目录下,并通过模版创建default文件.

[root@rhel6u3-1 ~]# cd /var/lib/tftpboot/    //tftp的目录跟RHEL5位置不同

[root@rhel6u3-1 isolinux]# pwd
/media/cdrom/isolinux

[root@rhel6u3-1 isolinux]# cp vmlinuz initrd.img boot.msg  splash.jpg /var/lib/tftpboot/ //复制所需要的文件到tftp服务器根目录

[root@rhel6u3-1 /]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

[root@rhel6u3-1 /]# mkdir /var/lib/tftpboot/pxelinux.cfg //创建pxelinux.cfg目录

[root@rhel6u3-1 /]# cp -p /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default  //创建default文件

第五步:创建default文件

编辑default文件,多余部分可以删除,也可以不删除,创建label RHEL6U3标签,内容指向内核及ks.cfg位置

[root@rhel6u3-1 /]# cat /var/lib/tftpboot/pxelinux.cfg/default 
default local
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to Red Hat Enterprise Linux 6.3!
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 #0000000

label local
localboot

label RHEL6U3
  kernel vmlinuz
  append initrd=initrd.img ramdisk_size=8192 ks=http://192.168.100.101/ks.cfg

第六步:配置NFS服务器

NFS共享目录指向镜像挂载的位置,也可以创建目录,然后将光盘镜像文件copy进来.

[root@rhel6u3-1 data]# vim /etc/exports 
/media/cdrom  192.168.100.0/255.255.255.0(ro,sync)

第七步:启动httpd nfs xinetd tftp服务.

也可以通过 chkconfig命令设置为开机自动启动.

[root@rhel6u3-1 data]# /etc/rc.d/init.d/dhcpd start
Starting dhcpd:                                            [  OK  ]

[root@rhel6u3-1 data]# /etc/rc.d/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]

[root@rhel6u3-1 data]# /etc/rc.d/init.d/xinetd start
Starting xinetd:                                           [  OK  ]

[root@rhel6u3-1 data]# chkconfig tftp on

第八步:在图形界面运行system-config-kickstart,创建ks.cfg文件

图形界面操作过于简单,网上百度下很多,这里不做截图了.如果你的系统目前没有安装图形界面,可以使用以下命令进行安装

[root@rhel6u3-1 data]# yum -y groupinstall “X Windows System”  “GNOME Desktop Enviroment”

主要是第二步选择NFS安装,填写NFS服务器ip地址及路径即可.其他根据个人生产环境进行选择即可.

[root@rhel6u3-1 data]# system-config-kickstart
[root@rhel6u3-1 data]# cd /var/www/html/
[root@rhel6u3-1 html]# ls
ks.cfg

生成ks.cfg之后,可以查看里面的内容,如果你是高手,也可以手写ks.cfg文件.

[root@rhel6u3-1 html]# cat ks.cfg 
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --enabled --ssh
# Install OS instead of upgrade
install
# Use NFS installation media
nfs --server=192.168.100.101 --dir=/media/cdrom
# Root password
rootpw --iscrypted $1$kC9vxUwe$l.U7ZGNt9Yjcvt2YHy3J50
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# reboot after installation
reboot
# System timezone
timezone --isUtc Asia/Shanghai
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel 
# Disk partitioning information
part /boot --asprimary --fstype="ext4" --size=128
part swap --asprimary --fstype="swap" --size=2048
part / --asprimary --fstype="ext4" --size=8000
part /data --asprimary --fstype="ext4" --size=1

%packages
@base
@chinese-support
%end

将 ks.cfg文件放到http根目录之后,启动httpd服务.

[root@rhel6u3-1 ~]# /etc/rc.d/init.d/httpd  start
Starting httpd:                                            [  OK  ]

为了试验能够顺利进行,请关闭iptables和将selinux设置为disable或者promession

[root@rhel6u3-1 ~]# /etc/rc.d/init.d/iptables stop
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy accept: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]

[root@rhel6u3-1 ~]# setenforce 0

第九步:启动客户端

将服务器和安装客户端用网线和路由器相连,如果你无法保证网络中仅有一台dhcp服务器,请使用对连线将服务器和客户端相连。设置客户端从网卡启动,并且保证网卡支持pxe启动方式。重启客户端,如果看到boot:提示符出现,证明服务器端dhcp和tftp服务工作正常。如果在boot:提示符后键入lebal标签RHEL6U3并回车,可以正确的安装,说明其它服务也正常运行了。

自动安装过程略………

相关内容