我们知道RH中的Kickstart可以实现RedHat光盘启动后的自动安装,如果把ks.cfg RPM安装文件考到一台HTTPNFS服务器上,就可以实现网络自动安装,但还是需要RedHat的启动盘来启动机器,但加上DHCPTFTP PXELinux及支持PXE的网卡,噢,那就可以实现远程启动了。也就是说,有了上面的条件,你只要给一台支持PXE的客户机上电,然后再打入一个设置好的命令就可以安装好一RedHat台机器了。
实现上面安装的过程是这样的:PXE网卡启动àDHCP服务器à获得IPàTFTP上下载 pxelinux.0vmlinuzinitrdà启动系统à通过PEXlinuxHTTP/NFS下载ks.cfg文件à跟据ks.cfgHTTP/NFS下载RPM包及安装系统------完成安装

1).为了方便先做一个yum 升级源

[root@oracle ~]# vi /etc/yum.repos.d/rhel-debuginfo.repo
[rhel]
name=Red Hat Enterprise
baseurl= file://mnt/Server
        file:///mnt/Cluster
        file://mnt/ClusterServer
        file://mnt/VT
enabled=1
gpgcheck=0
[root@oracle ~]#mount /dev/cdrom /mnt

2).安装dhcp

[root@oracle ~]#yum –y install dhcp*
安装完成之后,把dhcp.conf.sample文件拷贝到/etc下面
cp /usr/share/doc/dhcp-3.0.5/dhcp.conf-sample /etc/dhcpd.conf
vi /etc/dhcpd.conf
找到
ignore client-updates;
在后面添加上:
next-server 192.168.1.1;
filename "pxelinux.0";
找到并注释:
#option nis-domain "domain.org";
#option domain-name "domain.org";
#option domain-name-server 192.168.1.1;

3).配置网卡

IP为192.168.1.1
vi /etc/sysconfig/network-scripts/ifcfg-eth0
找到:
BOOTPROTO=dhcp
:
BOOTPROTO=static
注意IP地址的配置:
IPADDR=192.168.1.1
NETMASK=255.255.255.0
重启网络并启动dhcp
/etc/init.d/network restart
/etc/ini.d/dhcpd start

4).安装tftpd服务:

yum install -y xinetd  tftp-server
配置tftp-server
vi /etc/xinetd.d/tftp
找到
disable  = yes
改为
disable = no
重启动tftp-server
/etc/init.d/xinetd restart
pxelinux.0
pxelinux.0,我们在配置dhcp的时候,就已经用到了,其实,就是上面提到的bootstrap。在Linux中,它是由syslinux来生成的。我们只要安装了syslinux,就会生成一个pxelinux.0,我们只需要将其拷贝到/tftpboot下面即可。
yum install -y syslinux
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/

4).启动文件

拷贝内核文件vmlinuz以及根文件系统initrd.img/tftpboot
cp /mnt/images/pxeboot/vmlinuz /mnt/images/pxeboot/initrd.img /tftpboot
创建/tftpboot/pxelinux.cfg目录
mkdir /tftpboot/pxelinux.cfg
创建/tftpboot/pxelinux.cfg/default文件
touch /tftpboot/pxelinux.cfg/default
文件内容如下:
default linux
prompt  0
label   linux
kernel  vmlinuz
append  ks=nfs:192.168.0.1:/netinstall/ks.cfg initrd=initrd.img

5.1).配置nfs网络安装

拷贝整个安装光盘到/netinstall
mkdir /netinstall
cp -r /mnt/* /netinstall
安装nfs服务,并将/netinstall发布出去
yum install -y nfs-utils
/etc/init.d/portmap start
/etc/init.d/nfs start
vi /etc/export
最后结果如下:
exportfs *:/netinstall

5.2).配置http网络安装

vi /etc/httpd/conf/httpd.conf
#加入如下行配下载点(别名)
Alias /download "/var/www/download"
<Directory "/var/www/download">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
 
#贝整个安装光盘
mkdir –p /var/www/download
cp -r /mnt/* /var/www/download/
 
#重启httpd
Service httpd restart
 

6).ks.cfg文件

拷贝服务器上的ks文件到/netinstall并重命名为ks.cfg
cp /root/anaconda-ks.cfg /netinstall/ks.cfg
chmod a+r /netinstall/ks.cfg
找到第一行的install将其改为text
找到第二行的cdrom,改
nfs --server=192.168.0.1 --dir=/netinstall/
找到
clearpart --linux --drives=sda
为:
clearpart --all --drives=sda --initlabel
在上面添加一行
autopart
注意:关闭服务器端防火墙和SELINUX

7).最终结果为

#TFTP目录内容
/tftpboot
       --initrd.img
       --pxelinux.0
       --vmlinuz
       --pxelinux.cfg
              --default
 
#NFS发布的目录
/netinstall
       --ks.cfg
       --redhat安装盘的内容
 
#如果是HTTP发布
/var/www/download
       --ks.cfg
       --redhat安装盘的内容
 

8).常见安装问题

1.服务器上cpks.cfg不能用
redhat默认安装了一个专门生成KickStart专用ks.cfg配置文件的图形工具,可以通过命令ksconfig启动
2.安装时要求再一次输入hostname 和域
查看是否有别的DHCP,如果是虚拟机做实验查看vmware dhcp是否关闭
通过服务器端日志可查出tail -f
3.安装又一次要求选语言
可以看到ks.cfg第一项就是语言,如果要求选语言,说明没有读取ks.cfg文件
可能在tftpdefault 文件没有指定ks.cfg 或写错文件名把ks.cfg写成ks.conf
4. 再次输入NFSIP
挂不上nfs 说明服务器上有关服务没有启动,或服务有错误,日志中的现像为有挂载请求但挂不起来..:
5.如果日志中有NFS ,rpc.svcgssd启不了,属正常.
 
:附件中有以http发布安装所需的ks.cfgdefault两个配置文件