Chinaunix首页 | 论坛 | 博客
  • 博客访问: 211390
  • 博文数量: 59
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 424
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-25 12:57
文章分类

全部博文(59)

文章存档

2016年(23)

2015年(30)

2014年(6)

我的朋友

分类: LINUX

2015-04-26 10:36:11

我们知道RH中的Kickstart可以实现RedHat光盘启动后的自动安装,如果把ks.cfg及RPM安装文件考到一台HTTP或NFS服务器上,就可以实现网络自动安装,但还是需要RedHat的启动盘来启动机器,但加上DHCP、TFTP和PXElinux及支持PXE的网卡,噢,那就可以实现远程启动了。也就是说,有了上面的条件,你只要给一台支持PXE的客户机上电,然后再打入一个设置好的命令就可以安装好一RedHat台机器了。 
实现上面安装的过程是这样的:PXE网卡启动------DHCP服务器------获得IP------从TFTP上下载pxelinux.0、vmlinuz、initrd------启动系统------通过PEXlinux去HTTP下载ks.cfg文件-----跟据ks.cfg去HTTP下载RPM包及安装系统------完成安装。 
具体实现的过程是这样的: 
1、 配制一个HTTP服务器(当然也可以是NFS、FTP)及kickstart文件: 
   1) 如何配HTTP我就不说了,配好后,在HTTP的DocumentRoot目录下(一般为/var/www/html)建一个rh9目录,用于放RedHat9的安装文件。把RedHat9第一张安装盘的RedHat目录及下面的内容全部考到这个目录下,把第二、第三张盘的RPMS目录下的rpm包考到rh9/RedHat/RPMS目录下,完成安装文件的考贝。service  httpd  restart开启HTTP服务。可以在浏览器内打入:看一下,是不是能看到RedHat目录。 
   2) 用redhat-config-kickstart命令做一个ks.cfg文件,注意在“安装方法”选项中 选HTTP,在“HTTP服务器:”中打入HTTP服务器的IP地址,在“HTTP目录:”中打入rh9,其它的我就不多说了。做好后把这个ks.cfg文件考到HTTP服务器的DocumentRoot/rh9目录下。 
  3) 在一台机器上做一下测试(注意:因为是自动安装,这台机器的上的数据可能全部被格掉喔)。用光盘启动机器,在boot:提示符下打入:linux  ks=http://192.168.168.6/rh9/ks.cfg,看一下是不是能实现自动安装,如果能,OK我们一半的工作已经做好了。 
2、 配制DHCP、TFTP、和PXElinux。(当然这些服务可以和HTTP放在一台服器上) 
    1) 做一台TFTP服务器太容易了,用rpm –qa | grep tftp看一下tftp有没安装,没有的话安装一下。用chkconfig  tftp  on  打开xinetd代理的tftp服务。 
   2) 做一台DHCP服务器,这是关键。下面是我的dhcp.conf文件: 
ddns-update-style interim; 
ignore client-updates; 
allow booting;    #定义可以PXE 8)  8) 启动 
allow bootp;      #定义支持boottp
 
subnet 192.168.168.0 netmask 255.255.255.0 { 
option routers                  192.168.168.230;  #定义默认网关 
option subnet-mask              255.255.255.0;     
option domain-name-servers      192.168.168.6;    #定义nameServer 
option time-offset              -18000; # Eastern Standard Time 
range dynamic-bootp 192.168.168.12 192.168.168.254; 
default-lease-time 21600; 
max-lease-time 43200; 
# Group the PXE bootable hosts together  定义可以PEX启动的主机的组 
        group { 
                # PXE-specific configuration directives... 
                next-server 192.168.168.6;    #TFTPServer的IP 
                filename "/pxelinux.0";#pxelinux loader文件位置 
                # You need an entry like this for every host 
                # unless you're using dynamic addresses #可PEX启动的主 
#机的IP与MAC地址的邦定 
                host wy { 
                        hardware ethernet 00:00:E2:89:9B:DB; 
                        fixed-address 192.168.168.128; 
                } 
        }

红色的部分为在DHCP中支持TFTP及PXElinux的所要添加的部分。service dhcpd  restart 开启DHCP服务。 
3) 配制PEXlinux。要远程启动机器,就必须要有PXElinux这个由syslinux、isolinux派生出来的,支持PXE的bootloader,它可以实现远程通过PEX启动一台机器。把/usr/lib/syslinux/pxelinux.0考到/tftpboot目录下,把RedHat9第一张安装光盘上/image/pxeboot/initr.img和vmlinux也考到/tftpboot目录下。在/tftpboot建一个pxelinux.cfg目录,用于放syslinux的配制文件。Sysconfig的配制文件有现成的可用,在rh9第一张安装光盘isolinux/下有一个isolinux.cfg文件,把它考成/tftpboot/default,把isolinux/*.msg考到/tftpboot下(RedHat的安装光盘的Loader就是个isolinux,呵呵)。对default(也就是isolinux.cfg)作一下修改,下面是我的default文件: 
default local 
prompt 1 
timeout 30 
display boot.msg 
F1 boot.msg 
F2 options.msg 
F3 general.msg 
F4 param.msg 
F5 rescue.msg 
F7 snake.msg 
label local 
  localboot 0
 
label linux 
  kernel vmlinuz 
  append initrd=initrd.img devfs=nomount ramdisk_size=9216 
label text 
  kernel vmlinuz 
  append initrd=initrd.img text devfs=nomount ramdisk_size=9216 
label expert 
  kernel vmlinuz 
  append expert initrd=initrd.img devfs=nomount ramdisk_size=9216 
label ks 
  kernel vmlinuz 
  append ks initrd=initrd.img devfs=nomount ramdisk_size=9216 
label nofb 
  kernel vmlinuz 
  append initrd=initrd.img devfs=nomount nofb ramdisk_size=9216 
label lowres 
  kernel vmlinuz 
  append initrd=initrd.img lowres devfs=nomount ramdisk_size=9216 
label autoinstall 
  kernel vmlinuz 
  append ks=/ks.cfg initrd=initrd.img devfs=nomount ramdisk_size=9216 nofb
 
红色的部份是我加的,用于实现本地硬盘启动或支持kickstart的PXE网络自动安装。 
cat一下/tftpboot/boot.msg文件: 
splash.lss 
-  To Local boot 02Red Hat07 Linux , type:  
    0f;07.
 
-  To install or upgrade 02Red Hat07 Linux in graphical mode,  
    press the 0f linux;07 key. 
-  To install or upgrade 02Red Hat07 Linux in text mode, type:  
    0flinux text ;07. 
-  To Auto Install 02Red Hat07 Linux , type:  
    0flinux autoinstall ;07.
 
-  Use the function keys listed below for more information. 
02[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]07 
红色行是我加入的,用于显示Local boot 和autoinstall选项。 
3、 OK,到现在服务器端的配制已经基本完成了,让我们来试一下。用一台支持PXE的机器加电启动,按F12,一般机器启动时会有提示(请进入BIOS看一下,确认网卡或主板的PXE功能已经打开),选择LAN启动,看到了什么? “DHCP…………………FFFFFFFFFFFFF”接着一个和光盘启动的差不多的画面,是吧?按一下F2试一下,F2的选项是不是也出来了。打入linux  rescue 试试,是不是进入了rescue模式?HOHO~~,以后客户机启不来还要用光盘来重启进rescue模式吗?当然不用了,把安装光盘扔了吧,哈哈。 
再重启机器,按F12,选择LAN,在PXE启动安装界面的boot:提示符下打入linux  autoinstall试试?HOHO~~,一个多小时后,一台新的rh9就这么安装好了。是不是很方便呢? 
4、 参考文档:/usr/share/doc/syslinux-1.75/pxelinux.doc 
              /usr/share/doc/syslinux-1.75/isolinux.doc 
/usr/share/doc/syslinux-1.75/syslinux.doc 
                  /usr/share/doc/dhcp-3.0pl1/README 
                  /usr/share/doc/httpd-2.0.40/README 
                  /usr/share/doc/pxe-0.1/README 
    5、最后,感谢我的RHCE老师simon cheng,是他给了我提示和帮助,虽然有时我问他10个不同的问题,他回答我9个是同一个答案:See  readme  :) 
6 ks.cfg文件 
install 
url --url
lang en_US 
langsupport --default en_US.iso885915 zh_CN.GB18030 zh_TW.Big5 en_US.iso885915 
keyboard us 
mouse generic3ps/2 --device psaux 
skipx 
rootpw --iscrypted $1$驜N/衢KL$RKxVATP6iXeJ5T9mwFiUn/ 
firewall --disabled 
authconfig --enableshadow --enablemd5 
timezone Asia/Shanghai 
bootloader --useLilo 
# 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 --all 
part / --fstype ext3 --size=512 
part /usr --fstype ext3 --size=4000 
part swap --size=1024 
part /var --fstype ext3 --size=512 
part /home --fstype ext3 --size=1 --grow 
%packages 
@ Printing Support 
@ Classic X Window System 
@ X Window System 
@ GNOME 
@ Sound and Multimedia Support 
@ Network Support 
@ Dialup Support 
@ Messaging and Web Tools 
@ Everything 
kernel-smp 
%post 
/usr/sbin/useradd cxbaby 
chfn -f 'cxbaby' cxbaby 
/usr/sbin/usermod -p '$1$挽.z礧翕$Xd2eupp3vJyRdvUyGxDvd/' cxbaby
阅读(1984) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~