关于自动化安装,我就不想多说什么了,网上有大把大把的资料,先说一下环境,CentOS 6.0,最好是刚装好的初始化的环境,你需要事先准备的是把CentOS 6.0的第一张光盘挂载到/mnt目录下,然后你把IP设置成192.168.0.254就行了
附件脚本下载:
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /pub/2011/11/21/脚本部署CentOS 6.0的PXE+DHCP+TFTP+kickstart安装环境/
先看看脚本的内容:
#!/bin/bash
yum -y install tftp-server system-config-kickstart dhcp syslinux
echo “/mnt *(ro)” >> /etc/exports
service nfs restart
chkconfig nfs on
setenforce 0
service iptables stop
先安装相应的dhcp,tftp等软件包,并且把CentOS的安装文件设置成NFS共享,并且关闭防火墙和selinux
cat >> /etc/dhcp/dhcpd.conf << EOF
option domain-name-servers 192.168.0.254;
max-lease-time 7200;
authoritative;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.253;
next-server 192.168.0.254;
filename “pxelinux.0”;
}
EOF
#sed -i ‘s/DHCPDARGS=/DHCPDARGS=eth1/’ /etc/sysconfig/dhcpd
service dhcpd restart
chkconfig dhcpd on
然后就是修改DHCP的配置文件了,注释掉的这行是对哪个网络接口提供DHCP服务,这个就看你个人需要了。
chkconfig iptables off
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
这几行就是把防火墙设置为开机不启动,并且创建相应的启动文件所需的目录,并且把相应的文件拷贝到相应的位置。
cat >> /var/lib/tftpboot/pxelinux.cfg/default << EOF
default auto
prompt 1
timeout 10
label linux
kernel vmlinuz
append initrd=initrd.img
label auto
menu default
kernel vmlinuz
append ks=http://192.168.0.254/ks.cfg initrd=initrd.img
label rescue
kernel vmlinuz
append initrd=initrd.img rescue
label local
localboot 1
EOF
这几行就是创建默认的启动选项文件,default auto代表默认从auto启动,timeout 10代表默认停留十秒供你选择。
sed -i ‘/disable/c\\tdisable\t\t\t= no’ /etc/xinetd.d/tftp
service xinetd restart
chkconfig xinetd on
这几行就是把tftp设置为启动状态。
下面是执行脚本之后,启动另外一台没有系统的机器的情况:
650) this.width=650;” border=0>
机器启动的时候,发现硬盘里面没有操作系统,光驱里面也没有引导光盘,这个时候,它开始用网卡的PXE功能启动,它先发送广播包,来获得IP地址,DHCP服务器会分配给他一个IP地址,并且告诉它去192.168.0.254上的TFTP服务器上下载pxelinux.0这个引导文件。
然后他就尝试查找pxelinux.cfg目录下,跟自己的MAC地址对应的文件,没有的话,把MAC地址减少一位,如果还没有,就继续减少,直到减少到0,最后实在没有了,就下载default这个文件,等了十秒,没有什么动静,就开始执行auto这个选项了。。。。
过了一会儿之后,
650) this.width=650;” border=0>
当然,我的脚本里面,没有生成ks.cfg这个文件,你可以用system-config-kickstart这个工具,生成你所需要的kickstart文件,然后放到apache的根目录下,启动apachef服务就可以了。。。。。
system-config-kickstart的效果如下:
650) this.width=650;” border=0>