LXC之三—创建模板
LXC之三—创建模板
40至50岁昵称男所谓的模板就是⼀个原型,依据该原型可以创建⼀系列类似的LXC虚拟机,如果使⽤lxc-1.0.0.3⾃带的模板,那么该原型只提供最基本的配置,如果想使⽤vim,对不起,没有,如果想使⽤gcc,抱歉,依然没有,如果想使⽤mysql,更是没有。这⾥所说的模板制作,只是⼀个⽐较简单的最基础的制作,有点类似嵌⼊式系统的最⼩系统的概念,只保留最最基本的应⽤,在这基础之上,添加⼀些应⽤就可以了。
创建的步骤如下:
/tmp/exclude⽬录下创建⼀个临时的⽬录:
.bash_history
lost+found
/dev/*
/mnt/*
/tmp/*秦岚个人简历
/
proc/*
/sys/*
/usr/src/*
进⼊/tmp/exclude⽬录下:
tar --numeric-owner -czvf /tmp/centos-5. ./
mkdir -p /var/lxc/centos
cd /var/lxc/centos/
tar xvzf /tmp/centos-5.
更改防⽕墙设置中的两项 etc/sysconfig/iptables-config
IPTABLES_MODULES=""
IPTABLES_MODULES_UNLOAD="no"
编写创建设备⽂件的脚本 /var/lxc/fix_dev.sh:
#!/bin/bash
# Makes default devices needed in lxc containers
ROOT=$(pwd)
DEV=${ROOT}/dev
if [ $ROOT = '/' ]; then
printf "\033[22;35m\nDO NOT RUN ON THE HOST NODE\n\n"
tput sgr0
exit 1
fi
if [ ! -d $DEV ]; then
printf "\033[01;33m\nRun this script in rootfs\n\n"
tput sgr0
exit 1
fi
rm -rf ${DEV}
泊莱雅适合什么年龄mkdir ${DEV}
mknod -m 666 ${DEV}/null c 1 3
mknod -m 666 ${DEV}/zero c 1 5
祛湿气最好的方法目前最有效的mknod -m 666 ${DEV}/random c 1 8
mknod -m 666 ${DEV}/urandom c 1 9
mkdir -m 755 ${DEV}/pts
mkdir -m 1777 ${DEV}/shm
mknod -m 666 ${DEV}/tty c 5 0
mknod -m 666 ${DEV}/tty0 c 4 0
mknod -m 666 ${DEV}/tty1 c 4 1
mknod -m 666 ${DEV}/tty2 c 4 2
mknod -m 666 ${DEV}/tty3 c 4 3
mknod -m 666 ${DEV}/tty4 c 4 4
卫生间瓷砖选择mknod -m 600 ${DEV}/console c 5 1
mknod -m 666 ${DEV}/full c 1 7
mknod -m 600 ${DEV}/initctl p
mknod -m 666 ${DEV}/ptmx c 5 2
exit 0
当然这⼀步关系到创建后的最终原型,具体来说,就是这⾥的模板是最简单的,当然也可以拷贝当前⽂件系统的⼀些⽂件⽬录,
如/bin /sys等等。例如将mysql安装好了,那么/bin 或者/usr/bin⽬录下就会有相应的mysqldump等命令,这时再在/u01等相关⽬录下创建相应的mysql需要⽤到的⽂件,然后将/u01复制到该⽬录下,那么创建的模板中就可以使⽤mysql了,这⼀过程中我试过chroot命令。
创建⽂件:
root@servukas:/var/lxc/centos# sh ../fix_dev.sh
具体的centos⽬录下的内容如下,bin等⽬录是后加进去的,这个⽅法可以⽤来添加⼊mysql等原来模板不能提供的⼀些应⽤:
创建模板的配置⽂件,如果看过lxc1.0.03的配置⽂件,就可以知道其分了两个部分,⼀个是所谓的comm,⼀个是所谓的centos,同理这⾥采⽤了两个⽂件,具体配置⽂件如下:
Config⽂件:
lxcwork.flags = up
lxcwork.link = virbr0
lxcwork.hwaddr = fe:93:0c:fb:02:3a
#fs = /usr/local/var/lib/lxc/CN/rootfs
# Include common configuration
lxc.include = /var/lxc/f
l是多大码lxc.arch = i686
lxc.utsname = CN
lxc.autodev = 0
lxc.devttydir = lxc
< = 4
lxc.pts = 1024
# Mount entries
#unt = /var/lxc/centos.fstab
# Ensure hostname is changed on clone
lxc.hook.clone = /usr/local/share/lxc/hooks/clonehostname
xc.cap.drop = mac_admin mac_override setfcap setpcap
lxc.cap.drop = sys_module sys_nice sys_pacct
lxc.cap.drop = sys_rawio sys_time
# Control Group devices: all denied except those whitelisted
# Allow any mknod (but not reading/writing the node)
模板已经创建好,使⽤⽅法如下:
和博客⼀简介那篇⽂章相⽐,这⾥没有使⽤-t centos参数,-t 表⽰template,也就是模板,看上述配置⽂件的黄⾊两⾏就可以看出,这⾥使⽤了设计的模板,其中#开始的是注释,#后的为使⽤模板是的⽂件系统路径。这⾥列出来是为了突出两种情况下的最⼤区别。所以没有依赖于centos模板。
灰⾊的两⾏,第⼀⾏是config包含的comm配置⽂件,第⼆⾏表⽰下⾯即配置⽂件的开始。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。