RHEL5(CentOS)+PXE+DHCP+Kickstart+NFS(http,ftp)
这种方案需要首先设置一个启动服务器和一个安装服务器(可以配置在同一台物理机上),然后通过网络启动存放在启动服务器上的安装程序。安装程序会自动访问存放在安装服务器上的安装配置文件和安装介质来完成安装。
涉及到的技术
该方案主要应用了三种技术:
1) 在PC上从网络启动Red Hat Linux安装程序的PXE协议
2) Red Hat Linux安装程序提供的网络安装功能(即指通过网络访问安装介质)
3) Red Hat Linux 安装程序提供的无人值守安装功能(Red Hat称为kickstart)
软硬件需求
要按本文介绍的方法完成自动化安装,你需要如下软硬件资源:
一台PC机器作为启动和安装服务器(其它架构机器也可以)
一台待安装的PC机器,它的网卡必须带有PXE支持
一个建好的局域网,上述两台机器已经连接入同一子网
待安装的Red Hat Linux安装介质
方案原理示意图
图1是网络安装环境的一个原理示意图。整个安装环境由一个局域网,和连接到该局域网的三台机器组成:启动服务器(Boot Server),安装服务器(Installation Server),和待安装机器(Client)。其中启动服务器和安装服务器可以部署在同一台物理机上。表1列出了对这些机器的软硬件要求,和其上负载的服务与数据。
图1 网络安装原理示意图
表1 网络安装环境里各机器上的软硬件配置
该方案的实现步骤
1) 配置启动服务器
2) 配置安装服务器
3) 从网络启动机器以完成安装
步骤1)和2)只需做一次即可。对每一台需安装Red Hat Linux的机器,都需要在启动服务器和安装服务器中部署相应的数据,并执行一次步骤3)。
3. 步骤1:配置启动服务器
启动服务器的目的是帮助在待安装机器上启动Red Hat Linux 安装程序。启动服务器上需要搭建一个DHCP 服务器和一个TFTP 服务器。前者是为了给待安装机器分配IP地址,后者则是提供了一个让待安装机器下载启动镜像的途径。
配置DHCP 服务器
1) 安装DHCP服务器包(RPM包名:dhcpd)。
[root@server1 ~]# yum install dhcp*.* -y
[root@server1 ~]# chkconfig dhcpd on
2) 编辑DHCP服务器配置文件 /etc/dhcp.conf
[root@server1 ~]# cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
[root@server1 ~]# vi /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
next-server 192.168.0.1;
filename "pxelinux.0";
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option nis-domain "example.com";
option domain-name "example.com";
option domain-name-servers 192.168.0.1;
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.0.128 192.168.0.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 207.175.42.254;
# }
}
3)
[root@server1 ~]# service dhcpd restart
配置TFTP服务器
1) 安装TFTP服务器包(RPM包名:tftpd)。
[root@server1 ~]# yum install tftp tftp-server –y
[root@server1 ~]# chkconfig tftp on
2) 编辑TFTP 服务器的配置文件 /etc/xinetd.d/tftp。配置文件如下:
[root@server1 ~]# 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
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot #这里选定了/tftpboot
#为TFTP 服务器的根目录位置。
per_source = 11
cps = 100 2
flags = IPv4
}
~
3) 将Linux安装程序的内核/根文件系统文件复制到 TFTP 服务器的根目录。
Red Hat Linux安装光盘/isolinux目录下会包含Linux安装程序的内核/根文件系统文件。
[root@server1 /]# cp /misc/server1/images/pxeboot/vmlinuz /tftpboot/
[root@server1 /]# cp /misc/server1/images/pxeboot/initrd.img /tftpboot/
[root@server1 /]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
启动镜像pxelinux.0可以在syslinux安装包里获得。安装好syslinux安装包后,将pxelinux.0复制到TFTP服务器根目录。
4) 编辑pxelinux.0的配置文件,以使pxelinux可以正确载入Red Hat Linux安装程序。
启动镜像pxelinux.0文件在执行过程中,会读取配置文件以确定它应该载入什么Linux内核文件来运行。所有的配置文件都放在启动服务器的/tftpboot/pxelinux.cfg/目录下。pxelinux.0根据一定的规则来搜索合适的配置文件名。
(对于具体某个 Red Hat Linux版本,对应的行该如何写,可以参考它安装盘里的配置文件 /isolinux/isolinux.cfg):
[root@server1 /]# cp /misc/server1/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@server1 server1]# cp /misc/server1/isolinux/*.msg /tftpboot/
5) 启动TFTP服务。
[root@server1 /]# service xinetd restart
[root@server1 pxelinux.cfg]# vi default
default linux
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append initrd=initrd.img linux ks=nfs:192.168.0.254:/ks.cfg/ks.cfg
# append initrd=initrd.img linux ks=ftp://192.168.0.254/ks.cfg
# append initrd=initrd.img linux ks=http://192.168.0.254/ks.cfg
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
append -
配置安装服务器
安装服务器在安装期间提供对 Linux 安装介质和无人值守安装配置文件的访问。安装介质存储在服务器上的一个目录中,可以使用各种网络协议访问它,比如 HTTP,FTP,和NFS。使用NFS协议,Red Hat Linux安装程序可以支持多种安装介质目录结构,尤其是支持ISO光盘镜像文件。这里我们选择使用NFS协议来访问安装介质。
1.配置NFS服务器
1)安装NFS软件包
[root@server1 server1]# yum install nfs*.* -y
[root@server1 server1]# chkconfig nfs on
2) 编辑NFS服务器配置文件
[root@server1 server1]# vi /etc/exports
/misc/server1 *(ro,sync) # 利用Autofs 将光盘自动挂载到/misc/server1 下面
/ks.cfg/ks.cfg *(ro,sync) # 编辑好的ks.cfg 文件,注意文件权限.
3) 重新启动NFS服务以使新配置生效
[root@server1 ~]# service portmap restart
[root@server1 ~]# service nfs restart
4) 检测目录/instsrv是否已被正确共享
[root@server1 ~]# showmount -e localhost
配置kickstart安装
自从 5.2 版开始, Red Hat Linux 开始支持一个称为 kickstart 的功能,其主要目的是为了减少安装过程中的人机交互,提高安装效率。使用这种方法,只需事先定义好一个配置文件(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了繁琐的人机交互,实现无人值守的自动化安装。
要使用 kickstart ,你必须:
1) 创建 kickstart 配置文件。
2) 部署kickstart配置文件,即将kickstart配置文件放置到安装服务器上,并在安装程序的kernel参数中指定kickstart配置文件的位置。
创建kickstart配置文件
kickstart 配置文件是一个简单的文本文件,包含一个安装项目列表。每个项目对应于一个安装选择,都用关键字标明。
有如下几种方法生成kickstart配置文件:
Red Hat提供了一个样例文件。在Red Hat Linux 文档光盘中 RH-DOCS 目录里的 sample.ks 文件。你可以基于该样例来创建你自己的配置kickstart文件。
每当你安装好一台Red Hat Linux机器,Red Hat Linux 安装程序都会创建一个 kickstart 配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的kickstart配置文件来生成你自己的kickstart配置文件。
Red Hat Linux提供了一个图形化的kickstart配置工具。在任何一个安装好的Red Hat Linux系统上运行该工具,就可以很容易地创建你自己的kickstart配置文件。kickstart配置工具命令为RedHat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4)
阅读kickstart配置文件的手册。用任何一个文本编辑器都可以创建你自己的kickstart配置文件。
kickstart配置文件样例:
install
nfs –server=192.168.0.254 --dir=/misc/server1
#cdrom
lang zh_CN.UTF-8
keyboard us
xconfig --startxonboot
network --device eth0 --onboot no --bootproto dhcp --hostname server1.example.com
rootpw --iscrypted $1$4kF9NAQC$olUaae1W5XBvyTceJSC9X1
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --linux
#part /boot --fstype ext3 --size=100 --grow --maxsize=1024
#part pv.8 --size=100 --grow
#volgroup vg --pesize=32768 pv.8
#logvol /home --fstype ext3 --name=lvhome --vgname=vg --size=1472
#logvol swap --fstype swap --name=lvswap --vgname=vg --size=1472
#logvol / --fstype ext3 --name=lv --vgname=vg --size=26752
%packages
@editors
@text-internet
@gnome-desktop
@core
@base
@base-x
@chinese-support
device-mapper-multipath
xorg-x11-server-Xnest
所有以"#"号开头的都是注释。
5. 从网络启动机器以完成安装
原文来自:http://www.linuxidc.com/Linux/2010-07/26975.htm