/[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

Annotation of /recepies/lxc/ve2lxc.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 112 - (hide annotations)
Mon Jun 15 20:22:52 2009 UTC (14 years, 10 months ago) by dpavlin
File MIME type: application/x-sh
File size: 2190 byte(s)
added IP and ve2lxc hostname to /etc/hosts

1 dpavlin 86 #!/bin/sh -x
2    
3 dpavlin 92 test -z "$1" && echo "usage: $0 /path/to/ve/private [10.60.0.253]" && exit
4 dpavlin 86
5     dir=$1
6 dpavlin 93 hostname=ve2lxc
7 dpavlin 92 ip=$2
8 dpavlin 111 netmask=`grep netmask /etc/network/interfaces | head -1 | sed 's/^.*netmask *//'`
9     gateway=`grep gateway /etc/network/interfaces | head -1 | sed 's/^.*gateway *//'`
10 dpavlin 86
11 dpavlin 92 test -z "$ip" && ip=10.60.0.253
12    
13 dpavlin 86 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 dpavlin 93 grep /cgroup /etc/fstab || echo "cgroup /cgroup cgroup rw 0 0" >> /etc/fstab
40 dpavlin 86
41 dpavlin 92 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 dpavlin 111 gateway $gateway
50 dpavlin 92
51     __interfaces__
52    
53 dpavlin 93 echo $hostname > $dir/etc/hostname
54    
55 dpavlin 112 echo "$ip $hostname" >> $dir/etc/hosts
56    
57 dpavlin 93 conf=/tmp/ve2lxc.conf
58    
59     cat << __lxc__ > $conf
60     lxc.utsname = $hostname
61     lxc.tty = 4
62     lxc.pts = 1024
63     lxc.network.type = veth
64     lxc.network.flags = up
65     lxc.network.link = br0
66     lxc.network.name = eth0
67     lxc.network.mtu = 1500
68     #lxc.mount = $MNTFILE
69     lxc.rootfs = $dir
70     lxc.cgroup.devices.deny = a
71     # /dev/null and zero
72     lxc.cgroup.devices.allow = c 1:3 rwm
73     lxc.cgroup.devices.allow = c 1:5 rwm
74     # consoles
75     lxc.cgroup.devices.allow = c 5:1 rwm
76     lxc.cgroup.devices.allow = c 5:0 rwm
77     lxc.cgroup.devices.allow = c 4:0 rwm
78     lxc.cgroup.devices.allow = c 4:1 rwm
79     # /dev/{,u}random
80     lxc.cgroup.devices.allow = c 1:9 rwm
81     lxc.cgroup.devices.allow = c 1:8 rwm
82     lxc.cgroup.devices.allow = c 136:* rwm
83     lxc.cgroup.devices.allow = c 5:2 rwm
84     # rtc
85     lxc.cgroup.devices.allow = c 254:0 rwm
86     __lxc__
87    
88 dpavlin 110 cp -v /etc/resolv.conf /$dir/etc/resolv.conf
89    
90 dpavlin 86 mount | grep /cgroup || mount /cgroup || exit
91    
92 dpavlin 92 lxc-create -n ve2lxc -f $conf && lxc-start -n ve2lxc

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26