Setting tag linux-2.6-32-30
[build.git] / vbuild-init-lxc.sh
index 7ef8526..7450a89 100755 (executable)
@@ -20,6 +20,7 @@ COMMAND_VBUILD="vbuild-init-lxc.sh"
 COMMAND_MYPLC="vtest-init-lxc.sh"
 
 lxc_version="0.8.0-rc2"
+lxc_git_repo="git://lxc.git.sourceforge.net/gitroot/lxc/lxc"
 
 function bridge_init () {
 
@@ -82,7 +83,8 @@ broadcast=$(/sbin/ip addr show $INTERFACE_LAN | grep -v inet6 | grep inet | head
     sleep 2
     echo "Setting bridge address=$address broadcast=$broadcast"
     # static
-    /sbin/ifconfig $INTERFACE_BRIDGE $address broadcast $broadcast up
+    #/sbin/ifconfig $INTERFACE_BRIDGE $address broadcast $broadcast up
+    dhclient $INTERFACE_BRIDGE
     sleep 1
 
     #Reconfigure the routing table
@@ -147,15 +149,14 @@ function prepare_host() {
     check_yum_installed libvirt
 
     #retrieve and install lxc from sources 
-    #raw_version=$(lxc-version ||: )
-    #lxc_installed_version=$(echo $raw_version | sed -e 's,.*: ,,')
-    #if [ "$lxc_installed_version" != "$lxc_version" ] ; then
-    if [ ! -f /usr/bin/lxc-ls ] ; then
-       #echo "Expecting version" '['$lxc_version']'
-       #echo "Found version" '['$lxc_installed_version']'
+    raw_version=$(lxc-version ||: )
+    lxc_installed_version=$(echo $raw_version | sed -e 's,.*: ,,')
+    if [ "$lxc_installed_version" != "$lxc_version" ] ; then
+       echo "Expecting version" '['$lxc_version']'
+       echo "Found version" '['$lxc_installed_version']'
         echo "Installing lxc ..."
         cd /root
-       [ -d lxc ] || git clone git://lxc.git.sourceforge.net/gitroot/lxc/lxc 
+       [ -d lxc ] || git clone "$lxc_git_repo"
         cd lxc
        git pull
        git checkout $lxc_version
@@ -381,6 +382,7 @@ lxc.network.link = $lxc_network_link
 lxc.network.name = $IFNAME
 lxc.network.mtu = 1500
 lxc.network.ipv4 = $IP/$CIDR
+lxc.network.veth.pair = $veth_pair
 #cgroups
 #lxc.cgroup.devices.deny = a
 # /dev/null and zero
@@ -558,14 +560,18 @@ function setup_lxc() {
     # start container
     lxc-start -d -n $lxc
 
-    lxc-wait -n $lxc -s RUNNING
-
     echo $IP is up, waiting for ssh...
 
-    for i in $(seq 1 10); do
-        echo "ssh attempt $i ..."
-        ssh -o "StrictHostKeyChecking no" $IP 'uname -i' && break || :
-       sleep 2
+    # wait max 5 min for sshd to start 
+    ssh_up=""
+    stop_time=$(($(date +%s) + 300))
+    current_time=$(date +%s)
+
+    while [ "$current_time" -lt "$stop_time" ] ; do
+         echo "ssh attempt ..."
+         ssh -o "StrictHostKeyChecking no" $IP 'uname -i' && { ssh_up=true; echo "SSHD in container $lxc is UP"; break ; } || :
+         sleep 10
+         current_time=$(($current_time + 10))
     done
 
     [ -z $ssh_up ] && echo "SSHD in container $lxc is not running"
@@ -858,6 +864,7 @@ function main () {
        
         lxc_network_type=veth
         lxc_network_link=virbr0
+       veth_pair="veth$z"
         echo "the IP address of container $lxc is $IP "
     else
         [[ -z "$REPO_URL" ]] && usage
@@ -867,6 +874,7 @@ function main () {
         [[ -z "$HOSTNAME" ]] && usage
         lxc_network_type=veth
         lxc_network_link=br0
+        veth_pair="i$(echo $HOSTNAME | cut -d. -f1)"
     fi
 
     CIDR=$(cidr_notation $NETMASK)