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
mkdir $rootfs_path/root/.ssh
cat /root/.ssh/id_rsa.pub >> $rootfs_path/root/.ssh/authorized_keys
+ # start container
lxc-start -d -n $lxc
- sleep 20
+ lxc-wait -n $lxc -s RUNNING
+
+ echo $IP is up, waiting for ssh...
+
+ # 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"
+
# rpm --rebuilddb
chroot $rootfs_path rpm --rebuilddb
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
[[ -z "$HOSTNAME" ]] && usage
lxc_network_type=veth
lxc_network_link=br0
+ veth_pair="i$(echo $HOSTNAME | cut -d. -f1)"
fi
CIDR=$(cidr_notation $NETMASK)
exit 1
fi
- # be strict on lxc-lines matching name exactly using ^<name>$
- # as otherwise the timestamps may show up here
- lxc-ls -1 | grep -q '^'"$lxc"'$' && { echo "container $lxc already exists - exiting" ; exit 1 ; }
-
path=/var/lib/lxc
rootfs_path=$path/$lxc/rootfs
config_path=$path/$lxc
cache_base=/var/cache/lxc/fedora/$arch
cache=$cache_base/$release
root_password=root
-
+
+ # check whether the rootfs directory is created to know if the container exists
+ # bacause /var/lib/lxc/$lxc is already created while putting $lxc.timestamp
+ [ -d $rootfs_path ] && { echo "container $lxc already exists - exiting" ; exit 1 ; }
setup_lxc $lxc $fcdistro $pldistro $personality