免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1439 | 回复: 0
打印 上一主题 下一主题

openvz的asianux2.0SP2基本系统模板创建 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-24 16:22 |只看该作者 |倒序浏览

                                    今天用了将近一天的时间,做好了asianux2.0SP2基本系统的openvz模板。模板在asianux2.0Sp2最小安装基础上,添加了gcc、http、proftp、bind、mysql、php、prel、heartbear、ipvs,并测试在安装RedFlag HA Cluster 5.0 SE版本没有问题(模板内不包含HA)。
    直接贴出我的笔记:
    openvz的模板制作我以前在asianux2.0sp1最小安装版基础上,添加了gcc、http、ftp、named,今天开始做asianux2.0sp2加gcc、http、ftp、named,并且添加heartbeat和ipvs和RedFlag HA。
    做模板还是根据
http://wiki.openvz.org/Slackware_template_creation
关于slackware的制作方法。首先是安装一个asianux2.0sp2。本来我想的是定制安装,后来发现有很多东西我不知道到底是否需要,比如server组,定制的时候,里面默认选择了一些服务,有些我知道是需要的,但是有些我真不知道干什么的(这里又暴露了我一个弱点:做linux这么久了,定制安装时候,一些软件包我竟然不知道做什么用的。),既然是做模板,那就应该尽量精简,可以满足基本使用就行,其他的可以再装上去。而且我看openvz默认给的一个虚拟系统大小是1G,不知道是否可以扩大?我选择最小安装,然后需要什么补充什么。
    安装完asianux2.0sp2最小安装之后,开始添加gcc、http、proftp、bind、mysql、php、perl、heartbeat、ipvs,安装HA没有问题,又卸了,把heartbeat服务、kudzu服务、transparent_proxy服务开机不启动(我当时没有设置kudzu开机不启动,结果最后用此模板做的系统不启动IP地址,后来ps-ef发现一直在kudzu呢,后面的服务都没有起来)。以后需要什么再装吧。把整个系统打包,这就是模板的原版,在此基础上修改。因为修改的内容包括一些系统文件,比如/etc/fstab等,所以必须先弄到别的地方解开,然后修改。我准备拷贝到191环境里面,解压到/vz/private/111目录,这个111目录名是随便起的,现在只是一个中间阶段,因为在此基础上修改之后,还需要打包,那才是真正的模板。
    也可以通过scp直接拷贝过去是一样的,注意scp拷贝的时候,遇到软连接会拷贝真实文件过去,无形中增加了模板大小,所以scp拷之前可以单独打包。考虑到做模板时,有很多目录都要清空,比如/boot、/proc、/tmp等等,所以我选择先将有用的目录打包bin、etc、lib、root、usr、var、sbin,然后scp到191机器上,其他的目录因为都是空的,所以直接建立就行,启动/tmp需要有t权限,/dev的处理我也是采用打包,但是某些软链接连接到/proc下面的,一律都删除了。
tar cvfz dev.tgz --exclude dev/core --exclude dev/fd --exclude dev/stderr --exclude dev/stdin --exclude dev/stdout dev/
    对/dev的处理,我以为这样就可以了,结果基于这个dev是打包过来的模板建立的系统,启动正常,但是进入(vzctl enter
veid)的时候提示cannot open
pty。反正肯定是dev出了问题,但是怎么处理我不知道。我采用了最笨的方法,将一个基于asianux2.0sp1最小安装的模板(openvz网站
有下)里面的dev下所有内容拷到我做的asianux2.0sp2模板里面,这才算可以进入。
    接下来创建boot、home、initrd、media、misc、opt、proc、selinux、srv、sys、tmp,并且创建mnt软连接,给tmp加t权限。
    然后做如下一系列操作
rm -rf /vz/private/111/var/mail/*
rm -rf /vz/private/111/lib/modules
rm -rf /vz/private/111/etc/ssh/*key*
rm -rf /vz/private/111/etc/mtab
ln -s /proc/mounts /vz/private/111/etc/mtab
echo -n > /vz/private/111/etc/fstab
rm -rf /usr/share/doc
    修改/vz/private/111/etc/modprobe.conf为如下
alias eth0 pcnet32
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptscsih
    修改/vz/private/111/etc/sysconfig/i18n。默认里面是中文,的需要修改成英文,修改成如下内容:
LANG="en_US.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en:zh_CN.GB18030:zh_CN:zh:zh_TW.big5:zh_TW:zh:ja_JP.UTF-8:ja_JP:ja:ko_KR.eucKR:ko_KR:ko"
SYSFONT="latarcyrheb-sun16"
    这样该处理的就全部处理完了,生成asianux2.0sp2模板吧:
cd /vz/private/111
tar cvfz /vz/template/cache/asianux-2.0-SP2-ok-x86.tar.gz  *
    生成的模板名称是asianux-2.0-SP2-ok-x86.tar.gz,我只不过将模板放到了该放的位置(因为191机器就是我的openvz服务器),这样就可以直接使用了。
    如果想给模板增添新功能怎么办呢?比如基于asianux-2.0-SP2-ok-x86.tar.gz这个模板创建了一个虚拟系统,veid是999,
那么/vz/private/999就是这个虚拟系统里面所有内容。如果我们登录到999这个系统里面安装了一些软件或者做了一些修改,可以在修改完之
后,将999停止,然后直接打包/vz/private/999/里面的内容就可以了。打包可以参考上面生成asianux2.0SP2模板的方法。
    另外重建虚拟系统,启动虚拟系统,停止虚拟系统的脚本名称和内容都修改了,分别为vecreate.sh、vestart.sh、vestop.sh,内容分别如下:
# cat vecreate.sh
#!/bin/bash
#2007-07-17 by fan3838
if [ $# -lt 4 ];then
        echo "Usage: $0        "
        echo "Eg:    $0 192    172.16.81.192  172.16.80.11  lvs192"
        echo "The ipaddress must be not exist in the local network"
        exit 1
fi
#create a VE with asianux-2.0-SP2-ok-x86 template
echo "-----------------------------"
vzctl create $1 --ostemplate  asianux-2.0-SP2-ok-x86
if [ $? = 0 ]
then
        echo "-----------------------------"
        echo "--       create ok         --"
        echo "-----------------------------"
else
        echo "-----------------------------"
        echo "--     create failed       --"
        echo "--        why ?            --"
        echo "--   look the infomations  --"
        echo "-----------------------------"
        exit 2
fi
#set the ipaddr nameserver and hostname
vzctl set $1 --ipadd $2 --nameserver $3 --hostname $4 --onboot yes --save
# cat vestart.sh
#!/bin/bash
#2007-07-17 by fan3838
if [ $# -lt 1 ];then
        echo "Usage: $0  "
        echo "eg:    $0 192"
echo "-----------------------------------------------------------"
        vzlist -a
echo "-----------------------------------------------------------"
        exit 1
fi
#start a VE
echo "-----------------------------"
vzctl start $1
if [ $? = 0 ]
then
        echo "-----------------------------"
        echo "--        start ok         --"
        echo "-----------------------------"
else
        echo "-----------------------------"
        echo "--     start  failed       --"
        echo "--        why ?            --"
        echo "--   look the infomations  --"
        echo "-----------------------------"
        exit 2
fi
# cat vestop.sh
#!/bin/bash
#2007-07-17 by fan3838
if [ $# -lt 1 ];then
        echo "Usage: $0  "
        echo "eg:    $0 192"
echo "-----------------------------------------------------------"
        vzlist -a
echo "-----------------------------------------------------------"
        exit 1
fi
#stop a VE
echo "-----------------------------"
vzctl stop $1
if [ $? = 0 ]
then
        echo "-----------------------------"
        echo "--        stop  ok         --"
        echo "-----------------------------"
else
        echo "-----------------------------"
        echo "--     stop   failed       --"
        echo "--        why ?            --"
        echo "--   look the infomations  --"
        echo "-----------------------------"
        exit 2
fi
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/43502/showart_345851.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP