X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=vbuild-init-lxc.sh;h=7450a8980e1e7aa1779984412c1ede32f4cf537d;hb=8450a791d2c0aa45d71a19de92cff9957e0b9932;hp=7ef852620024e51917f8269c8d4fb1967bcafa03;hpb=6f9032cb9d2d996db3069906359fe2b008068ff4;p=build.git diff --git a/vbuild-init-lxc.sh b/vbuild-init-lxc.sh index 7ef85262..7450a898 100755 --- a/vbuild-init-lxc.sh +++ b/vbuild-init-lxc.sh @@ -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)