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

Diff of /recepies/lxc/ve2lxc.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 86 by dpavlin, Sun May 17 20:54:48 2009 UTC revision 93 by dpavlin, Thu May 21 15:55:27 2009 UTC
# Line 1  Line 1 
1  #!/bin/sh -x  #!/bin/sh -x
2    
3  test -z "$1" && echo "usage: $0 /path/to/ve/private" && exit  test -z "$1" && echo "usage: $0 /path/to/ve/private [10.60.0.253]" && exit
4    
5  dir=$1  dir=$1
6    hostname=ve2lxc
7    ip=$2
8    netmask=255.255.254.0
9    
10    test -z "$ip" && ip=10.60.0.253
11    
12  path=/$dir/etc/inittab  path=/$dir/etc/inittab
13  tmp=/tmp/inittab  tmp=/tmp/inittab
# Line 26  if ! diff -uw $path $tmp ; then Line 31  if ! diff -uw $path $tmp ; then
31          cp $path $path.old && mv $tmp $path          cp $path $path.old && mv $tmp $path
32  fi  fi
33    
 conf=/tmp/ve2lxc.conf  
 cp ve2lxc.conf $conf || exit  
 echo "lxc.rootfs = $dir" >> $conf  
   
34  lxc-stop -n ve2lxc  lxc-stop -n ve2lxc
35  lxc-destroy -n ve2lxc  lxc-destroy -n ve2lxc
36    
37  test -d /cgroup || mkdir /cgroup  test -d /cgroup || mkdir /cgroup
38  if ! grep /cgroup /etc/fstab ; then  grep /cgroup /etc/fstab || echo "cgroup /cgroup cgroup rw 0 0" >> /etc/fstab
39          echo "cgroup /cgroup cgroup rw 0 0" >> /etc/fstab  
40  fi  grep eth0 $dir/etc/network/interfaces || cat << __interfaces__ > $dir/etc/network/interfaces
41    auto eth0 lo
42    
43    iface lo inet loopback
44    
45    iface eth0 inet static
46            address $ip
47            netmask $netmask
48    
49    __interfaces__
50    
51    echo $hostname > $dir/etc/hostname
52    
53    conf=/tmp/ve2lxc.conf
54    
55    cat << __lxc__ > $conf
56    lxc.utsname = $hostname
57    lxc.tty = 4
58    lxc.pts = 1024
59    lxc.network.type = veth
60    lxc.network.flags = up
61    lxc.network.link = br0
62    lxc.network.name = eth0
63    lxc.network.mtu = 1500
64    #lxc.mount = $MNTFILE
65    lxc.rootfs = $dir
66    lxc.cgroup.devices.deny = a
67    # /dev/null and zero
68    lxc.cgroup.devices.allow = c 1:3 rwm
69    lxc.cgroup.devices.allow = c 1:5 rwm
70    # consoles
71    lxc.cgroup.devices.allow = c 5:1 rwm
72    lxc.cgroup.devices.allow = c 5:0 rwm
73    lxc.cgroup.devices.allow = c 4:0 rwm
74    lxc.cgroup.devices.allow = c 4:1 rwm
75    # /dev/{,u}random
76    lxc.cgroup.devices.allow = c 1:9 rwm
77    lxc.cgroup.devices.allow = c 1:8 rwm
78    lxc.cgroup.devices.allow = c 136:* rwm
79    lxc.cgroup.devices.allow = c 5:2 rwm
80    # rtc
81    lxc.cgroup.devices.allow = c 254:0 rwm
82    __lxc__
83    
84  mount | grep /cgroup || mount /cgroup || exit  mount | grep /cgroup || mount /cgroup || exit
85    
86  lxc-create -n ve2lxc -f $conf && read && lxc-start  -n ve2lxc  lxc-create -n ve2lxc -f $conf && lxc-start -n ve2lxc

Legend:
Removed from v.86  
changed lines
  Added in v.93

  ViewVC Help
Powered by ViewVC 1.1.26