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

 关于自动化安装,我就不想多说什么了,网上有大把大把的资料

先说一下环境,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的效果如下:

 

脚本文件在附件里面

你可能感兴趣的:(TFTP,DHCP,pxe,kickstart,Centos6.0)