Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2119659
  • 博文数量: 227
  • 博客积分: 10521
  • 博客等级: 上将
  • 技术积分: 3452
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-20 14:59
个人简介

低调做人,高调做事!

文章分类

全部博文(227)

文章存档

2013年(4)

2012年(8)

2011年(16)

2010年(24)

2009年(92)

2008年(83)

分类: LINUX

2008-11-03 11:19:04

实现Kickstart + NFS + DHCP + PXE的全自动远程无人职守安装

实验环境:C/S结构,服务器采用的操作系统为Centos 4.5,客户端预装RHEL 4.5,Centos 5.2



1,配置安装树:

建立ISO镜像目录:将镜像文件按照操作系统类别放到相关目录下,还可以细分为32位和64位版本,如下:

[root@drbd-2 opt]# ll
total 8
drwxr-xr-x  4 root root 4096 Oct 30 09:10 Centos
drwxr-xr-x  2 root root 4096 Oct 29 19:35 Redhat


2,配置kickstart无人值守安装脚本:

需要安装kickstart工具包:system-config-kickstart-2.5.16-2.noarch.rpm

进入图形界面运行system-config-kickstart命令按照提示进行无人值守脚本配置:

* 选择的安装方式是通过NFS网络安装,配置好NFS服务器的ip和输出目录。
* 分区方法是分给系统必须的3个分区,/boot,/,swap,剩下的分区再调整。
* 选择系统安装软件包。

将生成的ks.cfg文件拷贝到安装树所在路径的ISO镜像文件所在目录,并将名字更改为操作系统相关版本,如下:

[root@drbd-2 opt]# cd Centos/
[root@drbd-2 Centos]# ls
4.6  5.2
[root@drbd-2 Centos]# cd 5.2
[root@drbd-2 5.2]# ll
total 3930212
-rw-r--r--  1 root root       1336 Oct 30 11:33 centos5.2.cfg
-rw-r--r--  1 root root 4020600832 Jun 26 09:17 CentOS-5.2-i386-bin-DVD.iso

如果有多个安装源就按照类似的方法进行操作。


3,配置DHCP服务器

[root@drbd-2 5.2]# more /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;

subnet 192.168.1.0 netmask 255.255.255.0 {

        option routers                  192.168.1.1;
        option subnet-mask              255.255.255.0;

        option domain-name              "example.com";
        option domain-name-servers      192.168.1.1;
        option time-offset              -18000;

        range dynamic-bootp 192.168.1.128 192.168.1.254;
        default-lease-time 21600;
        max-lease-time 43200;
        filename "/pxelinux.0";
}



3,配置TFTP服务器

[root@drbd-2 5.2]# more /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
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}



3,配置NFS服务器

添加ISO镜像文件路径:

[root@drbd-2 5.2]# more /etc/exports
/var/opt/Centos/4.6     192.168.1.0/24(sync,rw)
/var/opt/Centos/5.2     192.168.1.0/24(sync,rw)



4,配置支持PXE启动:

把操作系统ISO镜像挂载到一个空目录,将里面以下文件,/image/pxeboot/initrd.img和vmlinux 以及isolinux/*.msg拷贝到/tftpboot目录下,并更改为操作系统

相关名字,如下:

cp /usr/lib/syslinux/pxelinux.0 /tftpboot

[root@drbd-2 tftpboot]# ll
total 18308
-r--r--r--  1 root root    2048 Oct 29 20:23 boot.cat
-r--r--r--  1 root root     458 Oct 29 16:41 boot.msg
-r--r--r--  1 root root    1220 Oct 29 16:41 general.msg
-r--r--r--  1 root root 4025705 Oct 29 16:41 initrd-centos4.6.img
-rw-r--r--  1 root root 5669675 Oct 30 09:13 initrd-centos5.2.img
-r--r--r--  1 root root   81860 Oct 29 20:24 memtest
-r--r--r--  1 root root     904 Oct 29 16:41 options.msg
-r--r--r--  1 root root     968 Oct 29 16:41 param.msg
-rw-r--r--  1 root root   11822 Oct 30 09:18 pxelinux.0
drwxr-xr-x  2 root root    4096 Oct 30 09:24 pxelinux.cfg
-r--r--r--  1 root root     536 Oct 29 16:41 rescue.msg
-r--r--r--  1 root root     549 Oct 29 16:41 snake.msg
-r--r--r--  1 root root 1518693 Oct 29 16:40 vmlinuz-centos4.6
-rw-r--r--  1 root root 1806388 Oct 30 09:12 vmlinuz-centos5.2



注意:
    如果客户端安装的操作系统版本和服务器的操作系统版本不同的话,
需要安装"syslinux-2.06-0.3E.i386.rpm包",通过下面命令直接拿到里面的文件:
rpm2cpio syslinux-2.06-0.3E.i386.rpm | cpio -vid,解压之后进入/usr/lib/syslinux目录,拿到pxelinux.0文件,将其放到服务器/tftp目录中,对于每一个要被安装的操作系统版本,都需要执行一次该操作,等于说是覆盖。


cd /tftpboot
mkdir pxelinux.cfg
cd pxelinux.cfg

在pxelinux.cfg目录下,建立配置文件default文件的内容如下:

[root@drbd-2 pxelinux.cfg]# more default
default centos4.6
display pxelinux.cfg/list
prompt 1


label centos4.6
kernel vmlinuz-centos4.6
append ks=nfs:192.168.1.244:/var/opt/Centos/4.6/centos4.6.cfg initrd=initrd-centos4.6.img ramdisk_size=8192


label centos5.2
kernel vmlinuz-centos5.2
append ks=nfs:192.168.1.244:/var/opt/Centos/5.2/centos5.2.cfg initrd=initrd-centos5.2.img ramdisk_size=8192




如果是要统一安装某个操作系统版本的话,需要加上“timeout 60”,考虑到在自动安装的时候,用户可以选择操作系统的类别,需要加个list文件解决:

[root@drbd-2 pxelinux.cfg]# more list
Choose one of the following Linux distributions for your installation:
Name           Distribution   Arch.   Installation media
-------------------------------------------------------------------------
centos4.6   centos4.6   i386    192.168.1.244:/var/opt/Centos/4.6/
centos5.2   centos5.2   i386    192.168.1.244:/var/opt/Centos/5.2/


[root@drbd-2 5.2]# more centos5.2.cfg
#Generated by Kickstart Configurator
#platform=x86, AMD64, or Intel EM64T

#System  language
lang en_SG
#Language modules to install
langsupport en_SG
#System keyboard
keyboard us
#System mouse
mouse
#Sytem timezone
timezone Asia/Shanghai
#Root password
rootpw --iscrypted $1$/NyFEhVR$/B/pv5ZqSUU.iQ4UVEg7d/
#Reboot after installation
reboot
#Install OS instead of upgrade
install
#Use NFS installation Media
nfs --server=192.168.1.244  --dir=/var/opt/Centos/5.2
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype ext3 --size 150
part / --fstype ext3 --size 10000
part swap --size 4000
#System authorization infomation
auth  --useshadow  --enablemd5
#Firewall configuration
firewall --disabled
#SELinux configuration
selinux --disabled
#Do not configure XWindows
skipx
#Package install information
%packages --resolvedeps
@ gnome-desktop
@ editors
@ engineering-and-scientific
@ graphical-internet
@ text-internet
@ server-cfg
@ web-server
@ mail-server
@ ftp-server
@ network-server
@ legacy-network-server
@ development-tools
@ x-software-development
@ gnome-software-development
@ kde-software-development
@ legacy-software-development
@ admin-tools
@ system-tools


完成所有的服务配置之后进行检查。
准备一台虚拟机客户端,然后更改启动方式为通过带PXE自启动模块的网卡启动,客户端在开启之后会主动向DHCP服务器获取地址,并且从TFTP服务器上获得安装配置以及信息;客户端所做的工作只是开机,剩下的工作由ks.cfg文件控制自动完成。
阅读(1907) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-07-15 15:57:28

FGHHG

chinaunix网友2009-03-09 15:16:42

太好了,测试一下。。