/[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 112 by dpavlin, Mon Jun 15 20:22:52 2009 UTC revision 192 by dpavlin, Fri Mar 19 14:02:14 2010 UTC
# Line 1  Line 1 
1  #!/bin/sh -x  #!/bin/sh -x
2    
3  test -z "$1" && echo "usage: $0 /path/to/ve/private [10.60.0.253]" && exit  test -z "$1" && echo "usage: $0 /path/to/ve/private [10.60.0.253 [hostname]]" && exit
4    
5  dir=$1  dir=$1
 hostname=ve2lxc  
6  ip=$2  ip=$2
7    hostname=$3
8  netmask=`grep netmask /etc/network/interfaces | head -1 | sed 's/^.*netmask *//'`  netmask=`grep netmask /etc/network/interfaces | head -1 | sed 's/^.*netmask *//'`
9  gateway=`grep gateway /etc/network/interfaces | head -1 | sed 's/^.*gateway *//'`  gateway=`grep gateway /etc/network/interfaces | head -1 | sed 's/^.*gateway *//'`
10    
11  test -z "$ip" && ip=10.60.0.253  test -z "$ip" && ip=10.60.0.252
12    test -z "$hostname" && hostname=ve2lxc
13    
14  path=/$dir/etc/inittab  path=/$dir/etc/inittab
15  tmp=/tmp/inittab  tmp=/tmp/inittab
# Line 32  if ! diff -uw $path $tmp ; then Line 33  if ! diff -uw $path $tmp ; then
33          cp $path $path.old && mv $tmp $path          cp $path $path.old && mv $tmp $path
34  fi  fi
35    
36  lxc-stop -n ve2lxc  lxc-stop -n $hostname
37  lxc-destroy -n ve2lxc  lxc-destroy -n $hostname
38    
39  test -d /cgroup || mkdir /cgroup  test -d /cgroup || mkdir /cgroup
40  grep /cgroup /etc/fstab || echo "cgroup /cgroup cgroup rw 0 0" >> /etc/fstab  grep /cgroup /etc/fstab || echo "cgroup /cgroup cgroup rw 0 0" >> /etc/fstab
# Line 54  echo $hostname > $dir/etc/hostname Line 55  echo $hostname > $dir/etc/hostname
55    
56  echo "$ip $hostname" >> $dir/etc/hosts  echo "$ip $hostname" >> $dir/etc/hosts
57    
58  conf=/tmp/ve2lxc.conf  conf=/tmp/$hostname.conf
59    
60  cat << __lxc__ > $conf  cat << __lxc__ > $conf
61  lxc.utsname = $hostname  lxc.utsname = $hostname
62  lxc.tty = 4  lxc.tty = 4
63  lxc.pts = 1024  lxc.pts = 1024
64    
65  lxc.network.type = veth  lxc.network.type = veth
66  lxc.network.flags = up  lxc.network.flags = up
67  lxc.network.link = br0  lxc.network.link = br0
68  lxc.network.name = eth0  lxc.network.name = eth0
69  lxc.network.mtu = 1500  lxc.network.mtu = 1500
70    #lxc.network.hwaddr = AC:DE:48:00:00:01
71    # interface visible on host, part of bridge
72    #lxc.network.veth.pair = veth0
73    
74  #lxc.mount = $MNTFILE  #lxc.mount = $MNTFILE
75  lxc.rootfs = $dir  lxc.rootfs = $dir
76    # lxc.mount.entry=/opt /virtual/lxc/rootfs/opt none ro,bind 0 0
77    
78  lxc.cgroup.devices.deny = a  lxc.cgroup.devices.deny = a
79  # /dev/null and zero  # /dev/null and zero
80  lxc.cgroup.devices.allow = c 1:3 rwm  lxc.cgroup.devices.allow = c 1:3 rwm
# Line 89  cp -v /etc/resolv.conf /$dir/etc/resolv. Line 97  cp -v /etc/resolv.conf /$dir/etc/resolv.
97    
98  mount | grep /cgroup || mount /cgroup || exit  mount | grep /cgroup || mount /cgroup || exit
99    
100  lxc-create -n ve2lxc -f $conf && lxc-start -n ve2lxc  lxc-create -n $hostname -f $conf && lxc-start -n $hostname

Legend:
Removed from v.112  
changed lines
  Added in v.192

  ViewVC Help
Powered by ViewVC 1.1.26