您的位置:首页 > 运维架构 > Linux

脚本部署CentOS 6.0的PXE+DHCP+TFTP+kickstart安装环境

2011-09-18 19:50 1181 查看
关于自动化安装,我就不想多说什么了,网上有大把大把的资料

先说一下环境,CentOS 6.0,最好是刚装好的初始化的环境,你需要事先准备的是把CentOS 6.0的第一张光盘挂载到/mnt目录下,然后你把IP设置成192.168.0.254就行了

先看看脚本的内容:

#!/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设置为启动状态。

下面是执行脚本之后,启动另外一台没有系统的机器的情况:





机器启动的时候,发现硬盘里面没有操作系统,光驱里面也没有引导光盘,这个时候,它开始用网卡的PXE功能启动,它先发送广播包,来获得IP地址,DHCP服务器会分配给他一个IP地址,并且告诉它去192.168.0.254上的TFTP服务器上下载pxelinux.0这个引导文件。

然后他就尝试查找pxelinux.cfg目录下,跟自己的MAC地址对应的文件,没有的话,把MAC地址减少一位,如果还没有,就继续减少,直到减少到0,最后实在没有了,就下载default这个文件,等了十秒,没有什么动静,就开始执行auto这个选项了。。。。

过了一会儿之后,





当然,我的脚本里面,没有生成ks.cfg这个文件,你可以用system-config-kickstart这个工具,生成你所需要的kickstart文件,然后放到apache的根目录下,启动apachef服务就可以了。。。。。

system-config-kickstart的效果如下:





脚本文件在附件里面

附件:http://down.51cto.com/data/2358941
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息