/[sysadmin-cookbook]/recepies/lxc/ve2lxc.sh
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /recepies/lxc/ve2lxc.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 111 - (show annotations)
Mon Jun 15 20:22:04 2009 UTC (14 years, 10 months ago) by dpavlin
File MIME type: application/x-sh
File size: 2150 byte(s)
added gateway to lxc's /etc/network/interfaces

1 #!/bin/sh -x
2
3 test -z "$1" && echo "usage: $0 /path/to/ve/private [10.60.0.253]" && exit
4
5 dir=$1
6 hostname=ve2lxc
7 ip=$2
8 netmask=`grep netmask /etc/network/interfaces | head -1 | sed 's/^.*netmask *//'`
9 gateway=`grep gateway /etc/network/interfaces | head -1 | sed 's/^.*gateway *//'`
10
11 test -z "$ip" && ip=10.60.0.253
12
13 path=/$dir/etc/inittab
14 tmp=/tmp/inittab
15
16 cp $path $tmp || exit
17
18 function append() {
19 if ! grep "$1" $path ; then
20 echo "$1" >> $tmp
21 fi
22 }
23
24 append "z6:6:respawn:/sbin/sulogin"
25 append "1:2345:respawn:/sbin/getty 38400 console"
26 append "c1:12345:respawn:/sbin/getty 38400 tty1 linux"
27 append "c2:12345:respawn:/sbin/getty 38400 tty2 linux"
28 append "c3:12345:respawn:/sbin/getty 38400 tty3 linux"
29 append "c4:12345:respawn:/sbin/getty 38400 tty4 linux"
30
31 if ! diff -uw $path $tmp ; then
32 cp $path $path.old && mv $tmp $path
33 fi
34
35 lxc-stop -n ve2lxc
36 lxc-destroy -n ve2lxc
37
38 test -d /cgroup || mkdir /cgroup
39 grep /cgroup /etc/fstab || echo "cgroup /cgroup cgroup rw 0 0" >> /etc/fstab
40
41 grep eth0 $dir/etc/network/interfaces || cat << __interfaces__ > $dir/etc/network/interfaces
42 auto eth0 lo
43
44 iface lo inet loopback
45
46 iface eth0 inet static
47 address $ip
48 netmask $netmask
49 gateway $gateway
50
51 __interfaces__
52
53 echo $hostname > $dir/etc/hostname
54
55 conf=/tmp/ve2lxc.conf
56
57 cat << __lxc__ > $conf
58 lxc.utsname = $hostname
59 lxc.tty = 4
60 lxc.pts = 1024
61 lxc.network.type = veth
62 lxc.network.flags = up
63 lxc.network.link = br0
64 lxc.network.name = eth0
65 lxc.network.mtu = 1500
66 #lxc.mount = $MNTFILE
67 lxc.rootfs = $dir
68 lxc.cgroup.devices.deny = a
69 # /dev/null and zero
70 lxc.cgroup.devices.allow = c 1:3 rwm
71 lxc.cgroup.devices.allow = c 1:5 rwm
72 # consoles
73 lxc.cgroup.devices.allow = c 5:1 rwm
74 lxc.cgroup.devices.allow = c 5:0 rwm
75 lxc.cgroup.devices.allow = c 4:0 rwm
76 lxc.cgroup.devices.allow = c 4:1 rwm
77 # /dev/{,u}random
78 lxc.cgroup.devices.allow = c 1:9 rwm
79 lxc.cgroup.devices.allow = c 1:8 rwm
80 lxc.cgroup.devices.allow = c 136:* rwm
81 lxc.cgroup.devices.allow = c 5:2 rwm
82 # rtc
83 lxc.cgroup.devices.allow = c 254:0 rwm
84 __lxc__
85
86 cp -v /etc/resolv.conf /$dir/etc/resolv.conf
87
88 mount | grep /cgroup || mount /cgroup || exit
89
90 lxc-create -n ve2lxc -f $conf && lxc-start -n ve2lxc

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26