博客统计信息

51cto推荐博客
用户名:飞翔的单车
文章数:104
评论数:60
访问量:64057
无忧币:427
博客积分:1338
博客等级:5
注册日期:2011-03-29

我的技术圈(1)

更多>>
利用PXE技术部署RHEV 3.0 hypervisor(附脚本)
2012-01-31 17:26:00
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://xiaosu.blog.51cto.com/2914416/769791

又过了一年了,红帽已经发布了RHEV 3.0的正式版本,详细的可以看这个链接   https://www.redhat.com/apps/store/rhev/

先说一下我的环境吧,RHEL 6.2 (CentOS 6.2我也试过了,可以使用),配好YUM源,然后运行脚本,然后用ifconfig 把一块网卡的IP临时配置成固定的,最后用启动DHCP服务就可以了。

为了实验的方便,我是在VMWARE虚拟机中做的实验。

脚本是根据RHEVH光盘里面的脚本改写的,执行格式是

sh pxe.sh ISO镜像

ISO镜像的下载地址在迅雷网盘里,地址前两篇文章里面有。

脚本的主要内容:

#!/bin/bash

#author suzezhi 

#based on redhat livecd-iso-to-pxeboot script

export PATH=/sbin:/usr/sbin:$PATH

if [ $(id -u) != 0 ]; then

    echo "You need to be root to run this script."

    exit 1

fi

if [ $# != 1 ];then

echo ""

echo "usage: sh $0 path/file-name.iso "

echo ""

exit 1

fi

ISO="$1"

install_package() {

yum -y install tftp-server dhcp syslinux 

if [ $? != 0 ];then

echo "please check your yum repo!!"

exit 1

fi

}

setup_dhcpd() {

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

}

exitclean() {

    echo "Cleaning up to exit..."

    [ -d "$CDMNT" ] && umount $CDMNT && rmdir $CDMNT

    exit 1

}

prepare_file(){

CDMNT=$(mktemp -d /tmp/cdtmp.XXXXXX)

echo $ISO

echo $CDMNT

mount -o loop "$ISO" $CDMNT || exitclean

if [ ! -d $CDMNT/isolinux -o ! -f $CDMNT/isolinux/initrd0.img ]; then

    echo "The ISO image doesn't look like a LiveCD ISO image to me."

    exitclean

fi

#create the initrd image

mkdir tftpboot

ISOBASENAME=`basename "$ISO"`

ISODIRNAME=`dirname "$ISO"`

( cd "$ISODIRNAME" && echo "$ISOBASENAME" | cpio -H newc --quiet -L -o ) |

  gzip -9 |

cat $CDMNT/isolinux/initrd0.img - > tftpboot/initrd0.img

 

# Kernel image.

cp $CDMNT/isolinux/vmlinuz0 tftpboot/vmlinuz0

# pxelinux bootloader.

if [ -f /usr/share/syslinux/pxelinux.0 ]; then

    cp /usr/share/syslinux/pxelinux.0 tftpboot

elif [ -f /usr/lib/syslinux/pxelinux.0 ]; then

    cp /usr/lib/syslinux/pxelinux.0 tftpboot

fi

 

#get the boot append line from original cd image

if [ -f $CDMNT/isolinux/isolinux.cfg ]; then

    APPEND=$(grep -m1 append $CDMNT/isolinux/isolinux.cfg | sed -e "s#CDLABEL=[^ ]*#/$ISOBASENAME#" -e "s/ *append *//")

fi

umount $CDMNT

rmdir $CDMNT

}

setup_tftp(){

# pxelinux configuration.

mkdir tftpboot/pxelinux.cfg

cat > tftpboot/pxelinux.cfg/default <<EOF

DEFAULT pxeboot

TIMEOUT 20

PROMPT 0

LABEL pxeboot

        KERNEL vmlinuz0

        APPEND rootflags=loop $APPEND

ONERROR LOCALBOOT 0

EOF

mv tftpboot  /var/lib/

# All done, clean up.

sed -i '/disable/c\\tdisable\t\t\t= no' /etc/xinetd.d/tftp

}

setenforce 0

service iptables stop

install_package

prepare_file

setup_tftp

setup_dhcpd

service xinetd restart

echo 'you can set your ip address to 192.168.0.254 and start your dhcp service ,then you can start your dhcp'

大概解释一下:

1.判断脚本的运行者,如果不是root就提示

2.判断参数的个数,如果参数的个数不等于1,如果不等于1,就输出用法

3.安装相应的软件包

4.配置DHCP(此处可根据相应的环境自行修改)

5.将rhevh的光盘临时挂载到一个地方,然后检查光盘,利用光盘中的initrd文件重新生成一个包含了livecd镜像的initrd文件,并存放到tftp这个目录,再然后,就把内核文件拷过来,再把pxelinux.0这个文件拷过来,并且获取内核后面应该添加的参数。最后卸载掉挂载的系统。

6.建立TFTP服务器,并将相应的参数生成到默认加载的配置文件中

7还有就是关闭了防火墙和selinux

执行后,我用了ifconfig eth0 192.168.0.254给第一块网卡临时配置了一个IP,(192.168.0.254是前面脚本里面TFTP服务器的地址,可自行修改),然后使用service dhcpd start来启动了DHCP服务。

现在打开另外一台虚拟机:

PXE启动,寻找DHCP

 

获得了IP地址,并且开始根据默认配置尝试加载启动文件,这里因为生成的initrd0.img这个文件非常大,所以消耗的时间也比较多,请耐心等待。

这里已经加载好了,开始安装了。

脚本见附件。

本文出自 “飞翔的单车” 博客,请务必保留此出处http://xiaosu.blog.51cto.com/2914416/769791

分享至
更多
一键收藏,随时查看,分享好友!

文章评论

 
2012-01-31 20:27:02
您要访问的文件不存在! ISO镜像 网盘里没有啊
博主回复:
2012-01-31 21:01:46
好像是登陆之后才能看到。。。。。不过你用这个链接吧
http://dynamic.xlpan.com/file/63028656/be000036-51b1-4198-b845-09975580e0c1

2012-02-01 17:08:20
登录了,提示您要访问的文件不存在!
博主回复:
2012-02-01 17:59:14
我也郁闷了,不管怎么设置,迅雷网盘里就是不显示,你留个QQ邮箱,我发给你吧

2012-02-01 18:37:30
你用迅雷快传发布看行不行,我QQ邮箱965942243@qq.com
博主回复:
2012-02-01 22:02:08
已发送,请查收

2012-02-02 20:57:55
楼主,给我也发个吧,285855604@vip.qq.com or 285855604@qq.com,谢谢!!!
博主回复:
2012-02-02 21:35:30
发送到285855604@qq.com了

2012-02-02 21:06:18
楼主,请发个正式版的RHEV-H和RHEV-M,谢谢!!!
博主回复:
2012-02-02 21:35:10
已经把正式版的RHEV-H发送给你了,RHEV-M占用的体积太大,我这里网速不好。。。。所以就不好意思了。。。。不过两个应该可以通用。。。。。

2012-02-03 09:51:35
谢谢博主,我的邮箱是 xiaojiaoy@foxmail.com
博主回复:
2012-02-03 10:41:10
已发送,请查收

2012-02-03 19:18:51
我刚知道发布了rhev3.0。有空得看看了。

2012-02-14 17:55:24
麻烦 楼主帮我发一个

3.0 正式版 的 rhev-h的 连接 linkinsds@gmail.com
多谢!
博主回复:
2012-02-14 18:26:20
已发送

2012-04-26 23:28:58
楼主,我想测试一下Redhat RHEV3.0,能麻烦发一个RHEVH和RHEVM3。0的下载连接给我么?谢谢。
我的邮箱是jia.wen@china-nonstop.com

 

发表评论            

【技术门诊】专家解析:软考重点难点及应试技巧
昵  称:
登录  快速注册
验证码:

请点击后输入验证码博客过2级,无需填写验证码

内  容: