对原文做的修改:
1 一些路径错误等;
2 CentOS6.2差异;
修改均以红字标明。
试验环境:
服务器环境:
虚拟机 vmware workstation 8
操作系统 Centos-6.2 -x86_64-bin-DVD1.iso
分发给客户机的操作系统同上
客户机:
Dell Optiplex 390
kickstart 服务器启动的checklist
1 httpd 是否启动 service httpd status (http是本操作流程共享文件的方式,其它方式没有验证)
2 dhcpd 是否启动 service dhcpd status
3 tftp 是否启动
netstat -a | grep tftp
显示结果为
udp 0 0 *:tftp *:*
表明服务已经开启
4 iptables是否关闭 service iptables status
下面红字没有验证
禁止防火墙在系统启动时启动
chkconfig iptables off 禁止在当前运行级上启动
或
/sbin/chkconfig --level 2345 iptables off 禁止在运行级2345上启动
5 SeLinux是否关闭
==========================================================================
本文记录了用Kickstart实现无人值守安装,搭建RHCE实验室环境的详细步骤。文中使用的环境为CentOS6.2。文章作者抚琴煮酒(Andrew Yu)是经验丰富的Linux/Unix系统工程师,并曾经担任过一段时间的RHCE讲师的工作。
原理和概念
什么是PXE
严格来说,PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (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 Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
什么是KickStart
KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
PXE + KickStart安装的条件
执行 PXE + KickStart安装需要的设备为:
DHCP 服务器
TFTP 服务器
KickStart所生成的ks.cfg配置文件
一台存放系统安装文件的服务器,如 NFS、HTTP 或 FTP 服务器
带有一个 PXE 支持网卡的将安装的主机
安装的步骤
一、安装httpd
yum -y install httpd* (CentOS6.2 缺省已经安装,但是没有启动。启动命令: service httpd start)
二、挂载CentOS6.2的DVD光盘,并复制第一张光盘下的所有内容(文件和文件夹)到/var/html/www下(应该是:到/var/wwwhtml/下)
注:试验中挂载真正的光盘时,总是挂不上。后来把光盘制作成iso,在虚拟机上作为光驱,才挂载成功。
mount -t iso9660 /dev/cdrom /mnt/cdromcp �Crf /mnt/cdrom/* /var/www/html/
三、安装 tftp-server,并启用tftp服务,重启xinetd进程
注:tftp服务器安装,本博客已有另文专述
rpm -ivh tftp-server-0.39-1.i386.rpm
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 /var/lib/tftpboot disable = no #disable的直由yes变为no
per_source = 11
cps = 100 2
flags = IPv4
}
service xinetd restart
四、配置支持PXE启动
注意我已经把第一张光盘的内容复制到/var/www/html目录中了,所以所需要的文件我只需要从/var/www/html目录中复制就行了,但在描述的时候,我还是表明了文件的真实的位置,比如在DVD光盘的哪个中,只是文件我是从/var/www/html目录中复制而已,大家也可学我样偷懒
1、进入tftpboot文件夹,没有就建一个,有了就不用建了。
cd /var/lib/tftpboot/
2、把pxelinux.0复制到/tftpboot/中
cd /usr/share/syslinux (注:这个目录与redhat5不同。)
cp pxelinux.0 /var/lib/tftpboot
cp vesamenu.c32 /var/lib/tftpboot (注:原文没有拷贝此文件,但试验中发现需要)
3、把Linux第一张安装光盘上/image/pxeboot/initrd.img和vmlinux复制到/tftpboot/中
cp /var/www/html/image/pxeboot/initrd.img /var/lib/tftpboot cp /var/www/html/image/pxeboot/vmlinux /var/lib/tftpboot
4、 复制第一张安装光盘上的isolinux/*.msg到/tftpboot/中
cp /var/www/html/isolinux/*.msg /var/lib/tftpboot
5、 在tftpboot中新建一个pxelinux.cfg目录
mkdir pxelinux.cfg
6、 把Linux第一张安装光盘上isolinux目录中的isolinux.cfg复制到pxelinux.cfg目录中,并同时更改文件名称为default
cd pxelinux.cfg
cp /var/www/html/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
7、 在上一步中,我们暂时不要修改default文件。其实到达这一步骤的时候,我都就可以通过网络引导了,通过网络引导之后接下了就可以手动安装了,但是这里面我们讨论的是无人值守安装,而所谓无人值守安装就是在从引导到安装都不需要手动指定,一气呵成。我们接下来继续讲解。
六、安装dhcp服务,同时修改配置
注:dhcp服务安装本博客已有另文专述。
1、 安装
rpm -ivh dhcp-3.0.1-12_EL.i386.rpm (注意: centos 下的包名不同)
2、 复制配置模板文件到指定的目录中,并重命名
cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcpd.conf
3、 修改配置文件,添加一行:filename "/pxelinux.0",其他的修改自己完成就行了。这文件的位置一定要注意,不然会失败,切记
[root@localhost isolinux]# vim /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
next-server 192.168.1.14; #PXE服务器IP地址
filename "/pxelinux.0"; #注意此行的位置,写在subnet下面的话会失败
subnet 192.168.1.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
option nis-domain "example.com";
option domain-name "example.com";
option domain-name-servers 192.168.1.254;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.1.128 192.168.1.254;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
#host ns {
# next-server marvin.redhat.com;
# hardware ethernet 12:34:56:78:AB:CD;
# fixed-address 192.168.1.110;
#}
}
4、 启动dhcp服务
service dhcp start
七、 安装kickstart并进行配置
首先安装Kickstart:(注:kickstart安装时需要安装较多关联包,所以使用YUM本地安装,另文专述)
rpm -ivh system-config-kickstart-2.5.16-2.noarch.rpm (注意: centos 下的包名不同)
在gnome环境下配置kickstart的指令如下:
system-config-kickstart(Centos6.2, 在菜单中选择)
之后的配置步骤如下:(注:可参考此文:www.linuxso.com/linuxrumen/23808.html,有详细设置的图。试验中依据此文。)
基本配置,按自己需求来就好
安装方法,选择httpd安装,切记不要输入任何的帐号,我们采用的匿名安装
引导安装程序选项,不需要做更改
分区信息,创建三个分区
网络配置,我使用的静态分配地址(动态同样如此) (DHCP)
显示配置,按自己需求来就好
软件包的选择,我选择了Kernel Developent和Development Tools安装(但千万不要选择这两个软件包,不然的话在安装的时候会报错的)(centos虚拟机安装时不能选择。)
其他的都是默认设置,没有做修改
生成文件ks.cfg,保存到/var/www/html下
八、修改/var/www/html/ks.cfg文件,指定读取ks.cfg的方法(ks=http://192.168.1.40/ks.cfg)
(注意,以下两图片为试验成功的真实文件截图,下面文字部分并没有使用)
vi /var/www/html/ks.cfg
auth --useshadow --enablemd5
key --skip #这行一定要,跳过注册号输入,不然会失败(centOs下此行不需要)
bootloader --location=mbr
clearpart �Call �Cinitlabel
text
firewall --disabled
firstboot --disable
keyboard us
lang en_US
logging --level=info
url --url=http://192.168.1.14/
network --bootproto=dhcp --device=eth0 --onboot=on
reboot
rootpw --iscrypted $1$HEJKfwF9$r1l0JoPz74ToF9NbE3Qs1
selinux --disabled
timezone --isUtc Asia/Shanghai
intall
xconfig --defaultdesktop=GNOME -depth=8 --resolution=640x480
part swap --bytes-per-inode=4096 --fstype="swap" --size=512
part /boot --bytes-per-inode=4096 --fstype-"ext3" --size=200
part / --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
%packages
@cluster-storage
@mysql
@development-libs
@editors
@text-internet
@x-software-development
@virtualization
@legacy-network-server
@dns-server
@gnome-desktop
@dialup
@core
@base
@ftp-server
@network-server
@clustering
@java-development
@base-x
@chinese-support
@web-server
@smb-server
@printing
@admin-tools
@development-tools
@graphical-internet
kmod-gnbd-xen
kmod-gfs-xen
perl-Convert-ASN1
perl-Crypt-SSLeay
mesa-libGLU-devel
tftp-server
kexec-tools
bridge-utils
device-mapper-multipath
ypserv
openldap-servers
vnc-server
dhcp
xorg-x11-server-Xnest
xort-x11-server-Xvfb
imake
gcc-objc
expect
最后,重新引导安装就可以了。以上是我的配置步骤,如果没有出入的话,是一定可以成功的!