test pcucontrol master
[build.git] / vbuild-init-vserver.sh
index 4f77d3a..808e02d 100755 (executable)
@@ -82,7 +82,7 @@ EOF
 function package_method () {
     fcdistro=$1; shift
     case $fcdistro in
-       f[0-9]*|centos[0-9]*) echo yum ;;
+       f[0-9]*|centos[0-9]*|sl[0-9]*) echo yum ;;
        lenny|etch) echo debootstrap ;;
        *) echo Unknown distro $fcdistro ;;
     esac 
@@ -153,33 +153,42 @@ function setup_vserver () {
        fi
     fi
 
+    BCAPFILE=/etc/vservers/$vserver/bcapabilities
+    touch $BCAPFILE
     if [ -n "$VBUILD_MODE" ] ; then 
        ### capabilities required for a build vserver
         # set up appropriate vserver capabilities to mount, mknod and IPC_LOCK
-       BCAPFILE=/etc/vservers/$vserver/bcapabilities
-       touch $BCAPFILE
-       cap=$(grep ^CAP_SYS_ADMIN /etc/vservers/$vserver/bcapabilities | wc -l)
-       [ $cap -eq 0 ] && echo 'CAP_SYS_ADMIN' >> /etc/vservers/$vserver/bcapabilities
-       cap=$(grep ^CAP_MKNOD /etc/vservers/$vserver/bcapabilities | wc -l)
-       [ $cap -eq 0 ] && echo 'CAP_MKNOD' >> /etc/vservers/$vserver/bcapabilities
-       cap=$(grep ^CAP_IPC_LOCK /etc/vservers/$vserver/bcapabilities | wc -l)
-       [ $cap -eq 0 ] && echo 'CAP_IPC_LOCK' >> /etc/vservers/$vserver/bcapabilities
+       grep -q ^CAP_SYS_ADMIN $BCAPFILE || echo CAP_SYS_ADMIN >> $BCAPFILE
+       grep -q ^CAP_MKNOD $BCAPFILE || echo CAP_MKNOD >> $BCAPFILE
+       grep -q ^CAP_IPC_LOCK $BCAPFILE || echo CAP_IPC_LOCK >> $BCAPFILE
+       # useful for f15 guests that use set_cap_file 
+       grep -q ^CAP_SETFCAP $BCAPFILE || echo CAP_SETFCAP >> $BCAPFILE
     else
        ### capabilities required for a myplc vserver
        # for /etc/plc.d/gpg - need to init /dev/random
-       cap=$(grep ^CAP_MKNOD /etc/vservers/$vserver/bcapabilities | wc -l)
-       [ $cap -eq 0 ] && echo 'CAP_MKNOD' >> /etc/vservers/$vserver/bcapabilities
-       cap=$(grep ^CAP_NET_BIND_SERVICE /etc/vservers/$vserver/bcapabilities | wc -l)
-       [ $cap -eq 0 ] && echo 'CAP_NET_BIND_SERVICE' >> /etc/vservers/$vserver/bcapabilities
+       grep -q ^CAP_MKNOD $BCAPFILE || echo CAP_MKNOD >> $BCAPFILE
+       grep -q ^CAP_NET_BIND_SERVICE $BCAPFILE || echo CAP_NET_BIND_SERVICE >> $BCAPFILE
+       # useful for f15 guests that use set_cap_file 
+       grep -q ^CAP_SETFCAP $BCAPFILE || echo CAP_SETFCAP >> $BCAPFILE
     fi
 
     # Set persistent for the network context
-    echo persistent,lback_allow > /etc/vservers/$vserver/nflags
+    # Thierry: Daniel's kernels come with single_ip turned off by default, let's make this explicit 
+    echo "persistent,lback_allow,~single_ip" > /etc/vservers/$vserver/nflags
 
-    # Set the init style of your vserver to plain for f13
-    if [ "$fcdistro" == "f13" ] ; then
-       echo plain > /etc/vservers/$vserver/apps/init/style
-    fi
+    # Set cflags
+    echo -e "persistent\n~info_init" > /etc/vservers/$vserver/cflags
+
+    # Enable cgroup
+    mkdir /etc/vservers/$vserver/cgroup
+
+    # Start Vserver automatically on boot
+    echo "default" > /etc/vservers/$vserver/apps/init/mark
+
+    # Set the init style of your vserver to plain for f13 and higher
+    case $fcdistro in 
+       f1[3-9]) echo plain > /etc/vservers/$vserver/apps/init/style ;;
+    esac
 
     if [ "$pkg_method" = "yum" ] ; then
        $personality vyum $vserver -- -y install yum