Index: trunk/shell/create-start-front-end
===================================================================
--- trunk/shell/create-start-front-end	(revision 33)
+++ trunk/shell/create-start-front-end	(revision 34)
@@ -50,6 +50,9 @@
 fi
 mount $FRONT_END_SYSTEM_VOLUME_GROUP_DEVICE/$FRONT_END_SYSTEM_DISK \
       $FRONT_END_FILE_SYSTEM_MOUNT_POINT
+if [ $? -ne 0 ] ; then
+  exit 1
+fi 
 # Create the directory for the homes
 if [ ! -d "$FRONT_END_FILE_SYSTEM_MOUNT_POINT/home" ]; then
   mkdir "$FRONT_END_FILE_SYSTEM_MOUNT_POINT/home"
@@ -64,214 +67,12 @@
 FRONT_END_CLUSTER_MAC_ADDRESS=\
 `awk -F, -v INDEX=$CONST_FRONT_END_CLUSTER_STATIC_NETWORK_POSTFIX '{if (FNR==INDEX) {print $1}}' $SCRIPT_PATH/$TEMPLATES_DIR$CURRENT_PATH/$CONST_DHCP_HOSTS_FILE_BASENAME`
 #
-# Create the Xen configuration file from a template
-#
-CURRENT_PATH=/etc/xen
-cp templates$CURRENT_PATH/$CONST_FRONT_END_XEN_TEMPLATE_NAME \
-   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-rpl Template Configuration $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-rpl __FRONT_END_KERNEL__ $COMPUTE_NODE_KERNEL \
-   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-rpl __FRONT_END_RAMDISK__ $FRONT_END_RAMDISK \
-   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-rpl __FRONT_END_VCPUS_NUM__ $FRONT_END_VCPUS_NUM \
-   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-CPUS_LIST=$FRONT_END_CPUS_LIST
-CPUS=""
-for i in $CPUS_LIST
-  do
-    if [ "x$CPUS" == "x" ]
-      then
-        CPUS=$i
-      else
-        CPUS="$CPUS,$i"
-    fi
-done
-rpl __FRONT_END_CPUS__ $CPUS \
-   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-# Memory
-rpl __FRONT_END_MEMORY__ $FRONT_END_MEMORY \
-   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-# Root device
-rpl __XEN_SYSTEM_DISK_ROOT_DEVICE__ "$CONST_XEN_SYSTEM_DISK_ROOT_DEVICE" \
-   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-#
-rpl __FRONT_END_SYSTEM_DISK__ $FRONT_END_SYSTEM_VOLUME_GROUP_DEVICE/$FRONT_END_SYSTEM_DISK \
-   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-rpl __FRONT_END_HOME_DISK__ $FRONT_END_HOME_VOLUME_GROUP_DEVICE/$FRONT_END_HOME_DISK \
-   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-# Swap disk stuff.
-if [ "x$FRONT_END_SWAP_DISK_SIZE" != "x$CONST_NULL_DISK_SIZE" ] ; then
-  FRONT_END_SWAP_DISK_STANZA="'phy:$FRONT_END_SWAP_VOLUME_GROUP_DEVICE/${FRONT_END_SWAP_DISK},xvda3,w',"
-  rpl __FRONT_END_SWAP_DISK__ $FRONT_END_SWAP_DISK_STANZA \
-     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-  # Comment out the noswap stanza.
-  rpl __FRONT_END_NOSWAP__ "#$CLUSTER_NOSWAP" \
-     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-else
-  echo y | rpl -f __FRONT_END_SWAP_DISK__ "" \
-     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-  rpl __FRONT_END_NOSWAP__ $CLUSTER_NOSWAP \
-     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-fi
-#
-rpl __FRONT_END_HOST_NAME__ $CURRENT_HOST_NAME \
-   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-# Vif stuff.
-VIF_STANZA=$CONST_XEN_VIF_STANZA_PREFIX
-EXTERNAL_MAC="${CONST_XEN_MAC_PREFIX}${FRONT_END_EXTERNAL_MAC_ADDRESS}"
-INTERNAL_MAC="${CONST_XEN_MAC_PREFIX}${FRONT_END_CLUSTER_MAC_ADDRESS}"
-INTERNAL_BRIDGE="${CONST_XEN_BRIDGE_PREFIX}${CLUSTER_BRIDGE_NAME}"
-INTERNAL_IP="${CONST_XEN_IP_PREFIX}${FRONT_END_CLUSTER_STATIC_IP}"
-if [ $CLUSTER_EXTERNAL_ADDRESSES_BY_DHCP -eq 1 ] ;then
-  rpl __XEN_DHCP_STANZA__ "$CONST_XEN_DHCP_STANZA" \
-     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-  VIF_STANZA=${VIF_STANZA}${EXTERNAL_MAC}"','"${INTERNAL_IP}","${INTERNAL_MAC}","${INTERNAL_BRIDGE}${CONST_XEN_VIF_STANZA_POSTFIX}
-else
-  # Comment out the DHCP_STANZA.
-  rpl __XEN_DHCP_STANZA__ "#$CONST_XEN_DHCP_STANZA" \
-     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-  VIF_STANZA=${VIF_STANZA}${EXTERNAL_IP}","${EXTERNAL_MAC}",'"${INTERNAL_IP}","${INTERNAL_MAC},${INTERNAL_BRIDGE}${CONST_XEN_VIF_STANZA_POSTFIX}
-fi
-# In any case, write the VIF_STANZA
-rpl __VIF_STANZA__ "$VIF_STANZA" \
-   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-#
 # Install the system.
 # 
 debootstrap --arch $CONST_DEBIAN_ARCH $CONST_DEBIAN_VERSION \
     $FRONT_END_FILE_SYSTEM_MOUNT_POINT
-exit 0
+# exit 0
 #
-# Complet installation
+# Complete the installation
 #
-# Modules stuff.
-XEN_MODULES_DIRECTORY=`ls /lib/modules | grep xen `
-for i in $XEN_MODULES_DIRECTORY ; do
-  cp -a /lib/modules/i $FRONT_END_FILE_SYSTEM_MOUNT_POINT/lib/modules
-done
-# Generate or configure the specific files from templates
-#
-# Create the /etc directory, if necessary
-if [ ! -d $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc ] ; then
-  mkdir $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc
-fi
-# Copy the sources list
-cp /etc/apt/sources.list $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc/apt
-
-# /etc/network/interfaces
-# The first interface is DHCP configured.
-# No '/' between $FRONT_END_FILE_SYSTEM_MOUNT_POINT and $CURRENT_PATH
-CURRENT_PATH=/etc/network
-if [ ! -d ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH} ] ; then
-  mkdir ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}
-fi
-cp templates$CURRENT_PATH/$FRONT_END_INTERFACES_TEMPLATE \
-   $FRONT_END_FILE_SYSTEM_MOUNT_POINT$CURRENT_PATH/interfaces
-if [ $CLUSTER_EXTERNAL_ADDRESSES_BY_DHCP -eq 1 ] ; then
-  ETH0_STANZA="iface eth0 inet dhcp"
-  rpl __ETH0_STATIC_OR_DHCP__ "$ETH0_STANZA"  \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
-  echo y | rpl __ETH0_STATIC_ADDRESS__ "" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
-  echo y | rpl __ETH0_STATIC_NETMASK__ "" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
-  echo y | rpl __ETH0_STATIC_NETWORK__ "" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
-  echo y | rpl __ETH0_STATIC_GATEWAY__ "" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
-  echo y | rpl __ETH0_STATIC_BROADCAST__ "" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
-  echo y | rpl __ETH0_STATIC_NAMESERVERS__ "" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
-  echo y | rpl __ETH0_STATIC_DNS_SEARCH__ "" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
-else
-  ETH0_STANZA="iface eth0 inet static"
-  rpl __ETH0_STATIC_OR_DHCP__ "$ETH0_STANZA"  \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces 
-  echo y | rpl __ETH0_STATIC_ADDRESS__ "$FRONT_END_CLUSTER_STATIC_IP" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces 
-  echo y | rpl __ETH0_STATIC_NETMASK__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_NETMASK" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces 
-  echo y | rpl __ETH0_STATIC_NETWORK__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_NETWORK" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
-  echo y | rpl __ETH0_STATIC_GATEWAY__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_GATEWAY" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces 
-  echo y | rpl __ETH0_STATIC_BROADCAST__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_BROADCAST" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces 
-  echo y | rpl __ETH0_STATIC_NAMESERVERS__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_DNS_NAMESERVERS" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces 
-  echo y | rpl __ETH0_STATIC_DNS_SEARCH__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_DNS_SEARCH" \
-      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
-fi 
-ADDRESS="$CLUSTER_STATIC_NETWORK_PREFIX.$FRONT_END_STATIC_NETWORK_POSTFIX"
-rpl __ETH1_STATIC_ADDRESS__ $ADDRESS  \
-    ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
-# /etc/hostname
-CURRENT_PATH=/etc
-echo $CURRENT_HOST_NAME > "${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/hostname"
-# /etc/hosts. Script generated.
-CURRENT_PATH=/etc
-$SCRIPT_PATH/generate-hosts-file \
-  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/hosts
-# /etc/resolv.conf
-CURRENT_PATH=/etc
-cp $TEMPLATES_DIR$CURRENT_PATH/resolv.conf \
-   ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/resolv.conf
-rpl __CLUSTER_DOMAIN_NAME__ "${CLUSTER_DOMAIN_NAME}." \
-   ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/resolv.conf
-rpl __FRONT_END_STATIC_ADDRESS__ "${CLUSTER_STATIC_NETWORK_PREFIX}.${CONST_FRONT_END_CLUSTER_STATIC_NETWORK_POSTFIX}" \
-   ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/resolv.conf
-# /etc/fstab
-CURRENT_PATH=/etc
-cp ${TEMPLATES_DIR}${CURRENT_PATH}/${FRONT_END_FSTAB_TEMPLATE} \
-  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/fstab
-  # Front-End System Disk Line
-FESDL=${FRONT_END_SYSTEM_VOLUME_GROUP_DEVICE}/${FRONT_END_SYSTEM_DISK}
-FESDL="$FESDL	/	errors=remount-ro	0	1"
-rpl __FRONT_END_SYSTEM_DISK_LINE__ "$FESDL" \
-  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/fstab
-  # Font-End Home Disk Line
-FEHDL=${FRONT_END_HOME_DISK_VOLUME_GROUP_DEVICE}/${FRONT_END_HOME_DISK}
-FEHDL="$FEHDL	/	errors=remount-ro	0	2"
-rpl __FRONT_END_HOME_DISK_LINE__ "$FEHDL" \
-  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/fstab
-  # Font-End Swap Disk Line
-if [ "x$FRONT_END_SWAP_DISK_SIZE" != "x$CONST_NULL_DISK_SIZE" ] ; then
-  FESDL=${FRONT_END_SWAP_VOLUME_GROUP_DEVICE}/${FRONT_END_SWAP_DISK}
-  FESDL="$FESDL		none	swap		0	0"
-else
-  FESDL=""
-fi
-rpl __FRONT_END_SWAP_DISK_LINE__ "$FESDL" \
-  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/fstab
-
-#
-# Umount the compute node system disk
-#
-umount $FRONT_END_FILE_SYSTEM_MOUNT_POINT
-#
-# Start the virtual machine
-#
-xm create $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
-#
-# Wait until the virtual machine has started
-#
-IS_RUNNING=""
-while [ -z "$IS_RUNNING" ]
-  do
-    IS_RUNNING=`xm list | grep $CURRENT_HOST_NAME`
-    sleep 1
-done
-#
-# Pin the VCPUs to "real" CPUs.
-#
-VCPU_NUM=0
-for i in $CPUS_LIST
-  do
-    xm vcpu-pin $CURRENT_HOST_NAME $VCPU_NUM $i
-    VCPU_NUM=$((VCPU_NUM + 1))
-done
-
 exit 0
Index: trunk/shell/finish-up-front-end
===================================================================
--- trunk/shell/finish-up-front-end	(revision 0)
+++ trunk/shell/finish-up-front-end	(revision 34)
@@ -0,0 +1,256 @@
+#! /bin/bash -x
+#
+# ST - 2012-05-25
+#
+# Finish up the front end installation.
+#
+# Get the directory of the script.
+SCRIPT_PATH=`dirname $0`
+# Get the script name.
+SCRIPT_NAME=`basename $0`
+# Source the common configuration variables.
+. $SCRIPT_PATH/c-i-a-b.common
+
+CURRENT_HOST_NAME=$FRONT_END_HOST_NAME
+#
+# Get the cluster MAC address
+#
+FRONT_END_CLUSTER_MAC_ADDRESS=\
+`awk -F, -v INDEX=$CONST_FRONT_END_CLUSTER_STATIC_NETWORK_POSTFIX '{if (FNR==INDEX) {print $1}}' $SCRIPT_PATH/$TEMPLATES_DIR$CURRENT_PATH/$CONST_DHCP_HOSTS_FILE_BASENAME`
+#
+#
+# Create the Xen configuration file from a template
+#
+CURRENT_PATH=/etc/xen
+cp templates$CURRENT_PATH/$CONST_FRONT_END_XEN_TEMPLATE_NAME \
+   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+rpl Template Configuration $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+rpl __FRONT_END_KERNEL__ $COMPUTE_NODE_KERNEL \
+   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+rpl __FRONT_END_RAMDISK__ $FRONT_END_RAMDISK \
+   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+rpl __FRONT_END_VCPUS_NUM__ $FRONT_END_VCPUS_NUM \
+   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+CPUS_LIST=$FRONT_END_CPUS_LIST
+CPUS=""
+for i in $CPUS_LIST
+  do
+    if [ "x$CPUS" == "x" ]
+      then
+        CPUS=$i
+      else
+        CPUS="$CPUS,$i"
+    fi
+done
+rpl __FRONT_END_CPUS__ $CPUS \
+   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+# Memory
+rpl __FRONT_END_MEMORY__ $FRONT_END_MEMORY \
+   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+# Root device
+rpl __XEN_SYSTEM_DISK_ROOT_DEVICE_STANZA__ "$CONST_XEN_SYSTEM_DISK_ROOT_DEVICE_STANZA" \
+   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+#
+# System disk stuff
+FRONT_END_SYSTEM_DISK_STANZA="'phy:${FRONT_END_SYSTEM_VOLUME_GROUP_DEVICE}/${FRONT_END_SYSTEM_DISK},$FRONT_END_SYSTEM_VIRTUAL_VOLUME,w'"
+rpl __FRONT_END_SYSTEM_DISK_STANZA__ "$FRONT_END_SYSTEM_DISK_STANZA" \
+   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+# Home disk stuff
+FRONT_END_HOME_DISK_STANZA="'phy:${FRONT_END_HOME_VOLUME_GROUP_DEVICE}/${FRONT_END_HOME_DISK},$FRONT_END_HOME_VIRTUAL_VOLUME,w'"
+rpl __FRONT_END_HOME_DISK_STANZA__ "$FRONT_END_HOME_DISK_STANZA" \
+   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+# Swap disk stuff.
+if [ "x$FRONT_END_SWAP_DISK_SIZE" != "x$CONST_NULL_DISK_SIZE" ] ; then
+  FRONT_END_SWAP_DISK_STANZA="'phy:${FRONT_END_SWAP_VOLUME_GROUP_DEVICE}/${FRONT_END_SWAP_DISK},$FRONT_END_SWAP_VIRTUAL_VOLUME,w'"
+  rpl __FRONT_END_SWAP_DISK_STANZA__ $FRONT_END_SWAP_DISK_STANZA \
+     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+  # Comment out the noswap stanza.
+  rpl __FRONT_END_NOSWAP__ "#$CLUSTER_NOSWAP" \
+     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+else
+  echo y | rpl -f __FRONT_END_SWAP_DISK_STANZA__ "" \
+     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+  rpl __FRONT_END_NOSWAP__ $CLUSTER_NOSWAP \
+     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+fi
+#
+rpl __FRONT_END_HOST_NAME__ $CURRENT_HOST_NAME \
+   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+# Vif stuff.
+VIF_STANZA=$CONST_XEN_VIF_STANZA_PREFIX
+EXTERNAL_MAC="${CONST_XEN_MAC_PREFIX}${FRONT_END_EXTERNAL_MAC_ADDRESS}"
+INTERNAL_MAC="${CONST_XEN_MAC_PREFIX}${FRONT_END_CLUSTER_MAC_ADDRESS}"
+INTERNAL_BRIDGE="${CONST_XEN_BRIDGE_PREFIX}${CLUSTER_BRIDGE_NAME}"
+INTERNAL_IP="${CONST_XEN_IP_PREFIX}${FRONT_END_CLUSTER_STATIC_IP}"
+if [ $CLUSTER_EXTERNAL_ADDRESSES_BY_DHCP -eq 1 ] ;then
+  rpl __XEN_DHCP_STANZA__ "$CONST_XEN_DHCP_STANZA" \
+     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+  VIF_STANZA=${VIF_STANZA}${EXTERNAL_MAC}"','"${INTERNAL_IP}","${INTERNAL_MAC}","${INTERNAL_BRIDGE}${CONST_XEN_VIF_STANZA_POSTFIX}
+else
+  # Comment out the DHCP_STANZA.
+  rpl __XEN_DHCP_STANZA__ "#$CONST_XEN_DHCP_STANZA" \
+     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+  VIF_STANZA=${VIF_STANZA}${EXTERNAL_IP}","${EXTERNAL_MAC}",'"${INTERNAL_IP}","${INTERNAL_MAC},${INTERNAL_BRIDGE}${CONST_XEN_VIF_STANZA_POSTFIX}
+fi
+# In any case, write the VIF_STANZA
+rpl __VIF_STANZA__ "$VIF_STANZA" \
+   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+# End creation of Xen configuration file.
+#
+# Complet installation
+#
+# Modules stuff.
+#
+#  Create the directory on the new image, if it does not exit yet.
+if [ ! -d $FRONT_END_FILE_SYSTEM_MOUNT_POINT/lib/modules ] ; then
+  mkdir $FRONT_END_FILE_SYSTEM_MOUNT_POINT/lib/modules
+fi
+#
+#  Copy the modules
+#
+XEN_MODULES_DIRECTORY=`ls /lib/modules | grep xen `
+for i in $XEN_MODULES_DIRECTORY ; do
+  cp -a /lib/modules/$i $FRONT_END_FILE_SYSTEM_MOUNT_POINT/lib/modules
+done
+#
+# Module stuff done.
+#
+# Generate or configure the specific files from templates
+#
+# Create the /etc directory, if necessary
+if [ ! -d $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc ] ; then
+  mkdir $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc
+fi
+# Copy the sources list
+if [ ! -d $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc/apt ] ; then
+  mkdir $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc/apt
+fi
+cp /etc/apt/sources.list $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc/apt
+
+# /etc/network/interfaces
+# The first interface is DHCP configured.
+# No '/' between $FRONT_END_FILE_SYSTEM_MOUNT_POINT and $CURRENT_PATH
+CURRENT_PATH=/etc/network
+if [ ! -d ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH} ] ; then
+  mkdir ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}
+fi
+cp templates$CURRENT_PATH/$FRONT_END_INTERFACES_TEMPLATE \
+   $FRONT_END_FILE_SYSTEM_MOUNT_POINT$CURRENT_PATH/interfaces
+if [ $CLUSTER_EXTERNAL_ADDRESSES_BY_DHCP -eq 1 ] ; then
+  ETH0_STANZA="iface eth0 inet dhcp"
+  rpl __ETH0_STATIC_OR_DHCP__ "$ETH0_STANZA"  \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
+  echo y | rpl __ETH0_STATIC_ADDRESS__ "" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
+  echo y | rpl __ETH0_STATIC_NETMASK__ "" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
+  echo y | rpl __ETH0_STATIC_NETWORK__ "" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
+  echo y | rpl __ETH0_STATIC_GATEWAY__ "" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
+  echo y | rpl __ETH0_STATIC_BROADCAST__ "" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
+  echo y | rpl __ETH0_STATIC_NAMESERVERS__ "" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
+  echo y | rpl __ETH0_STATIC_DNS_SEARCH__ "" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
+else
+  ETH0_STANZA="iface eth0 inet static"
+  rpl __ETH0_STATIC_OR_DHCP__ "$ETH0_STANZA"  \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces 
+  echo y | rpl __ETH0_STATIC_ADDRESS__ "$FRONT_END_CLUSTER_STATIC_IP" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces 
+  echo y | rpl __ETH0_STATIC_NETMASK__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_NETMASK" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces 
+  echo y | rpl __ETH0_STATIC_NETWORK__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_NETWORK" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
+  echo y | rpl __ETH0_STATIC_GATEWAY__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_GATEWAY" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces 
+  echo y | rpl __ETH0_STATIC_BROADCAST__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_BROADCAST" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces 
+  echo y | rpl __ETH0_STATIC_NAMESERVERS__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_DNS_NAMESERVERS" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces 
+  echo y | rpl __ETH0_STATIC_DNS_SEARCH__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_DNS_SEARCH" \
+      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
+fi 
+# Static address on the cluster interface.
+ADDRESS="${CLUSTER_STATIC_NETWORK_PREFIX}.${CONST_FRONT_END_CLUSTER_STATIC_NETWORK_POSTFIX}"
+rpl __ETH1_STATIC_ADDRESS__ $ADDRESS  \
+    ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
+rpl __ETH1_STATIC_NETMASK__ $CLUSTER_STATIC_NETMASK  \
+    ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
+    
+# /etc/hostname
+CURRENT_PATH=/etc
+echo $CURRENT_HOST_NAME > "${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/hostname"
+# /etc/hosts. Script generated.
+CURRENT_PATH=/etc
+$SCRIPT_PATH/generate-hosts-file \
+  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/hosts
+# /etc/resolv.conf
+CURRENT_PATH=/etc
+cp $TEMPLATES_DIR$CURRENT_PATH/resolv.conf \
+   ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/resolv.conf
+rpl __CLUSTER_DOMAIN_NAME__ "${CLUSTER_DOMAIN_NAME}." \
+   ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/resolv.conf
+rpl __FRONT_END_STATIC_ADDRESS__ "${CLUSTER_STATIC_NETWORK_PREFIX}.${CONST_FRONT_END_CLUSTER_STATIC_NETWORK_POSTFIX}" \
+   ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/resolv.conf
+#
+# /etc/fstab
+#
+CURRENT_PATH=/etc
+cp ${TEMPLATES_DIR}${CURRENT_PATH}/${FRONT_END_FSTAB_TEMPLATE} \
+  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/fstab
+  # Front-End System Disk Line
+FESDL=${FRONT_END_SYSTEM_VIRTUAL_VOLUME_DEVICE}
+FESDL="$FESDL	/		$FRONT_END_SYSTEM_DISK_FILE_SYSTEM	errors=remount-ro	0	1"
+rpl __FRONT_END_SYSTEM_DISK_LINE__ "$FESDL" \
+  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/fstab
+  # Font-End Home Disk Line
+FEHDL=${FRONT_END_HOME_VIRTUAL_VOLUME_DEVICE}
+FEHDL="$FEHDL	/home		$FRONT_END_HOME_DISK_FILE_SYSTEM	errors=remount-ro	0	2"
+rpl __FRONT_END_HOME_DISK_LINE__ "$FEHDL" \
+  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/fstab
+  # Font-End Swap Disk Line
+if [ "x$FRONT_END_SWAP_DISK_SIZE" != "x$CONST_NULL_DISK_SIZE" ] ; then
+  FESDL=${FRONT_END_SWAP_VIRTUAL_VOLUME_DEVICE}
+  FESDL="$FESDL	none		swap				0	0"
+else
+  FESDL=""
+fi
+# "rpl -f" since $FESDL can be an empty string.
+rpl -f __FRONT_END_SWAP_DISK_LINE__ "$FESDL" \
+  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/fstab
+#
+# Umount the compute node system disk
+#
+# Order matters since the /home file system is mounted on the
+# on the system partition
+umount $FRONT_END_FILE_SYSTEM_MOUNT_POINT/home
+umount $FRONT_END_FILE_SYSTEM_MOUNT_POINT
+#
+# Start the virtual machine
+#
+xm create $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
+#
+exit 0
+#
+# Wait until the virtual machine has started
+#
+IS_RUNNING=""
+while [ -z "$IS_RUNNING" ]
+  do
+    IS_RUNNING=`xm list | grep $CURRENT_HOST_NAME`
+    sleep 1
+done
+#
+# Pin the VCPUs to "real" CPUs.
+#
+VCPU_NUM=0
+for i in $CPUS_LIST
+  do
+    xm vcpu-pin $CURRENT_HOST_NAME $VCPU_NUM $i
+    VCPU_NUM=$((VCPU_NUM + 1))
+done
+
+exit 0

Property changes on: trunk/shell/finish-up-front-end
___________________________________________________________________
Added: svn:executable
   + *

Index: trunk/shell/c-i-a-b.common
===================================================================
--- trunk/shell/c-i-a-b.common	(revision 33)
+++ trunk/shell/c-i-a-b.common	(revision 34)
@@ -29,7 +29,11 @@
 CONST_XEN_MAC_PREFIX="mac="
 CONST_XEN_NOSWAP="noswap = 1" # For /etc/xen-tools/xen-tools.conf.
 CONST_XEN_NETWORK_SCRIPT_KEYWORD=network-script # For /etc/xen/xend-config.sxp.
-CONST_XEN_SYSTEM_DISK_ROOT_DEVICE="/dev/xvda1 ro"
+# Do not change the ordre below.
+CONST_XEN_VIRTUAL_DRIVE_1=xvda1
+CONST_XEN_VIRTUAL_DRIVE_2=xvda2
+CONST_XEN_VIRTUAL_DRIVE_3=xvda3
+CONST_XEN_SYSTEM_DISK_ROOT_DEVICE_STANZA="root         = '/dev/$CONST_XEN_VIRTUAL_DRIVE_1 ro'"
 CONST_XEN_VIF_STANZA_POSTFIX="' ]"
 CONST_XEN_VIF_STANZA_PREFIX="vif         = [ '"
 #
@@ -47,6 +51,7 @@
 CLUSTER_MAC_ADDRESS_PREFIX="00:16:3E:0F:6A"
 CLUSTER_NOSWAP="$CONST_XEN_NOSWAP"
 CLUSTER_STATIC_EXTERNAL_PREFIX="140.77.15"
+CLUSTER_STATIC_NETMASK="255.255.255.0"
 CLUSTER_STATIC_NETWORK_PREFIX="192.168.1"
 CLUSTER_SWAP_SIZE=$CONST_NULL_DISK_SIZE
 #
@@ -88,6 +93,8 @@
 FRONT_END_HOME_DISK_FILE_SYSTEM=ext3
 #FRONT_END_HOME_DISK_SIZE=512G
 FRONT_END_HOME_DISK_SIZE=5G
+FRONT_END_HOME_VIRTUAL_VOLUME=$CONST_XEN_VIRTUAL_DRIVE_2
+FRONT_END_HOME_VIRTUAL_VOLUME_DEVICE="/dev/$FRONT_END_HOME_VIRTUAL_VOLUME"
 FRONT_END_HOME_VOLUME_GROUP=vg_slow
 FRONT_END_HOME_VOLUME_GROUP_DEVICE="/dev/$FRONT_END_HOME_VOLUME_GROUP"
 FRONT_END_HOST_NAME="tamadi-1-fe"
@@ -99,12 +106,16 @@
 FRONT_END_SWAP_DISK="${CONST_FRONT_END}-${CONST_SWAP_DISK_POSTFIX}"
 #FRONT_END_SWAP_DISK_SIZE=$CONST_NULL_DISK_SIZE # 0G means no swap disk.
 FRONT_END_SWAP_DISK_SIZE=1G # 0G means no swap disk.
+FRONT_END_SWAP_VIRTUAL_VOLUME=$CONST_XEN_VIRTUAL_DRIVE_3
+FRONT_END_SWAP_VIRTUAL_VOLUME_DEVICE="/dev/$FRONT_END_SWAP_VIRTUAL_VOLUME"
 FRONT_END_SWAP_VOLUME_GROUP=vg_fast
 FRONT_END_SWAP_VOLUME_GROUP_DEVICE="/dev/$FRONT_END_SWAP_VOLUME_GROUP"
 FRONT_END_SYSTEM_DISK="${CONST_FRONT_END}-${CONST_SYSTEM_DISK_POSTFIX}"
 #FRONT_END_SYSTEM_DISK_SIZE=46G
 FRONT_END_SYSTEM_DISK_SIZE=10G
 FRONT_END_SYSTEM_DISK_FILE_SYSTEM=ext3
+FRONT_END_SYSTEM_VIRTUAL_VOLUME=$CONST_XEN_VIRTUAL_DRIVE_1
+FRONT_END_SYSTEM_VIRTUAL_VOLUME_DEVICE="/dev/$FRONT_END_SYSTEM_VIRTUAL_VOLUME"
 FRONT_END_SYSTEM_VOLUME_GROUP=vg_fast
 FRONT_END_SYSTEM_VOLUME_GROUP_DEVICE="/dev/$FRONT_END_SYSTEM_VOLUME_GROUP"
 FRONT_END_VCPUS_NUM=3
Index: trunk/shell/templates/etc/hosts
===================================================================
--- trunk/shell/templates/etc/hosts	(revision 33)
+++ trunk/shell/templates/etc/hosts	(revision 34)
@@ -1,259 +0,0 @@
-127.0.0.1 localhost
-192.168.1.1 compute-node-001.ciab.lip.ens-lyon.fr compute-node-001
-192.168.1.2 compute-node-002.ciab.lip.ens-lyon.fr compute-node-002
-192.168.1.3 compute-node-003.ciab.lip.ens-lyon.fr compute-node-003
-192.168.1.4 compute-node-004.ciab.lip.ens-lyon.fr compute-node-004
-192.168.1.5 compute-node-005.ciab.lip.ens-lyon.fr compute-node-005
-192.168.1.6 compute-node-006.ciab.lip.ens-lyon.fr compute-node-006
-192.168.1.7 compute-node-007.ciab.lip.ens-lyon.fr compute-node-007
-192.168.1.8 compute-node-008.ciab.lip.ens-lyon.fr compute-node-008
-192.168.1.9 compute-node-009.ciab.lip.ens-lyon.fr compute-node-009
-192.168.1.10 compute-node-010.ciab.lip.ens-lyon.fr compute-node-010
-192.168.1.11 compute-node-011.ciab.lip.ens-lyon.fr compute-node-011
-192.168.1.12 compute-node-012.ciab.lip.ens-lyon.fr compute-node-012
-192.168.1.13 compute-node-013.ciab.lip.ens-lyon.fr compute-node-013
-192.168.1.14 compute-node-014.ciab.lip.ens-lyon.fr compute-node-014
-192.168.1.15 compute-node-015.ciab.lip.ens-lyon.fr compute-node-015
-192.168.1.16 compute-node-016.ciab.lip.ens-lyon.fr compute-node-016
-192.168.1.17 compute-node-017.ciab.lip.ens-lyon.fr compute-node-017
-192.168.1.18 compute-node-018.ciab.lip.ens-lyon.fr compute-node-018
-192.168.1.19 compute-node-019.ciab.lip.ens-lyon.fr compute-node-019
-192.168.1.20 compute-node-020.ciab.lip.ens-lyon.fr compute-node-020
-192.168.1.21 compute-node-021.ciab.lip.ens-lyon.fr compute-node-021
-192.168.1.22 compute-node-022.ciab.lip.ens-lyon.fr compute-node-022
-192.168.1.23 compute-node-023.ciab.lip.ens-lyon.fr compute-node-023
-192.168.1.24 compute-node-024.ciab.lip.ens-lyon.fr compute-node-024
-192.168.1.25 compute-node-025.ciab.lip.ens-lyon.fr compute-node-025
-192.168.1.26 compute-node-026.ciab.lip.ens-lyon.fr compute-node-026
-192.168.1.27 compute-node-027.ciab.lip.ens-lyon.fr compute-node-027
-192.168.1.28 compute-node-028.ciab.lip.ens-lyon.fr compute-node-028
-192.168.1.29 compute-node-029.ciab.lip.ens-lyon.fr compute-node-029
-192.168.1.30 compute-node-030.ciab.lip.ens-lyon.fr compute-node-030
-192.168.1.31 compute-node-031.ciab.lip.ens-lyon.fr compute-node-031
-192.168.1.32 compute-node-032.ciab.lip.ens-lyon.fr compute-node-032
-192.168.1.33 compute-node-033.ciab.lip.ens-lyon.fr compute-node-033
-192.168.1.34 compute-node-034.ciab.lip.ens-lyon.fr compute-node-034
-192.168.1.35 compute-node-035.ciab.lip.ens-lyon.fr compute-node-035
-192.168.1.36 compute-node-036.ciab.lip.ens-lyon.fr compute-node-036
-192.168.1.37 compute-node-037.ciab.lip.ens-lyon.fr compute-node-037
-192.168.1.38 compute-node-038.ciab.lip.ens-lyon.fr compute-node-038
-192.168.1.39 compute-node-039.ciab.lip.ens-lyon.fr compute-node-039
-192.168.1.40 compute-node-040.ciab.lip.ens-lyon.fr compute-node-040
-192.168.1.41 compute-node-041.ciab.lip.ens-lyon.fr compute-node-041
-192.168.1.42 compute-node-042.ciab.lip.ens-lyon.fr compute-node-042
-192.168.1.43 compute-node-043.ciab.lip.ens-lyon.fr compute-node-043
-192.168.1.44 compute-node-044.ciab.lip.ens-lyon.fr compute-node-044
-192.168.1.45 compute-node-045.ciab.lip.ens-lyon.fr compute-node-045
-192.168.1.46 compute-node-046.ciab.lip.ens-lyon.fr compute-node-046
-192.168.1.47 compute-node-047.ciab.lip.ens-lyon.fr compute-node-047
-192.168.1.48 compute-node-048.ciab.lip.ens-lyon.fr compute-node-048
-192.168.1.49 compute-node-049.ciab.lip.ens-lyon.fr compute-node-049
-192.168.1.50 compute-node-050.ciab.lip.ens-lyon.fr compute-node-050
-192.168.1.51 compute-node-051.ciab.lip.ens-lyon.fr compute-node-051
-192.168.1.52 compute-node-052.ciab.lip.ens-lyon.fr compute-node-052
-192.168.1.53 compute-node-053.ciab.lip.ens-lyon.fr compute-node-053
-192.168.1.54 compute-node-054.ciab.lip.ens-lyon.fr compute-node-054
-192.168.1.55 compute-node-055.ciab.lip.ens-lyon.fr compute-node-055
-192.168.1.56 compute-node-056.ciab.lip.ens-lyon.fr compute-node-056
-192.168.1.57 compute-node-057.ciab.lip.ens-lyon.fr compute-node-057
-192.168.1.58 compute-node-058.ciab.lip.ens-lyon.fr compute-node-058
-192.168.1.59 compute-node-059.ciab.lip.ens-lyon.fr compute-node-059
-192.168.1.60 compute-node-060.ciab.lip.ens-lyon.fr compute-node-060
-192.168.1.61 compute-node-061.ciab.lip.ens-lyon.fr compute-node-061
-192.168.1.62 compute-node-062.ciab.lip.ens-lyon.fr compute-node-062
-192.168.1.63 compute-node-063.ciab.lip.ens-lyon.fr compute-node-063
-192.168.1.64 compute-node-064.ciab.lip.ens-lyon.fr compute-node-064
-192.168.1.65 compute-node-065.ciab.lip.ens-lyon.fr compute-node-065
-192.168.1.66 compute-node-066.ciab.lip.ens-lyon.fr compute-node-066
-192.168.1.67 compute-node-067.ciab.lip.ens-lyon.fr compute-node-067
-192.168.1.68 compute-node-068.ciab.lip.ens-lyon.fr compute-node-068
-192.168.1.69 compute-node-069.ciab.lip.ens-lyon.fr compute-node-069
-192.168.1.70 compute-node-070.ciab.lip.ens-lyon.fr compute-node-070
-192.168.1.71 compute-node-071.ciab.lip.ens-lyon.fr compute-node-071
-192.168.1.72 compute-node-072.ciab.lip.ens-lyon.fr compute-node-072
-192.168.1.73 compute-node-073.ciab.lip.ens-lyon.fr compute-node-073
-192.168.1.74 compute-node-074.ciab.lip.ens-lyon.fr compute-node-074
-192.168.1.75 compute-node-075.ciab.lip.ens-lyon.fr compute-node-075
-192.168.1.76 compute-node-076.ciab.lip.ens-lyon.fr compute-node-076
-192.168.1.77 compute-node-077.ciab.lip.ens-lyon.fr compute-node-077
-192.168.1.78 compute-node-078.ciab.lip.ens-lyon.fr compute-node-078
-192.168.1.79 compute-node-079.ciab.lip.ens-lyon.fr compute-node-079
-192.168.1.80 compute-node-080.ciab.lip.ens-lyon.fr compute-node-080
-192.168.1.81 compute-node-081.ciab.lip.ens-lyon.fr compute-node-081
-192.168.1.82 compute-node-082.ciab.lip.ens-lyon.fr compute-node-082
-192.168.1.83 compute-node-083.ciab.lip.ens-lyon.fr compute-node-083
-192.168.1.84 compute-node-084.ciab.lip.ens-lyon.fr compute-node-084
-192.168.1.85 compute-node-085.ciab.lip.ens-lyon.fr compute-node-085
-192.168.1.86 compute-node-086.ciab.lip.ens-lyon.fr compute-node-086
-192.168.1.87 compute-node-087.ciab.lip.ens-lyon.fr compute-node-087
-192.168.1.88 compute-node-088.ciab.lip.ens-lyon.fr compute-node-088
-192.168.1.89 compute-node-089.ciab.lip.ens-lyon.fr compute-node-089
-192.168.1.90 compute-node-090.ciab.lip.ens-lyon.fr compute-node-090
-192.168.1.91 compute-node-091.ciab.lip.ens-lyon.fr compute-node-091
-192.168.1.92 compute-node-092.ciab.lip.ens-lyon.fr compute-node-092
-192.168.1.93 compute-node-093.ciab.lip.ens-lyon.fr compute-node-093
-192.168.1.94 compute-node-094.ciab.lip.ens-lyon.fr compute-node-094
-192.168.1.95 compute-node-095.ciab.lip.ens-lyon.fr compute-node-095
-192.168.1.96 compute-node-096.ciab.lip.ens-lyon.fr compute-node-096
-192.168.1.97 compute-node-097.ciab.lip.ens-lyon.fr compute-node-097
-192.168.1.98 compute-node-098.ciab.lip.ens-lyon.fr compute-node-098
-192.168.1.99 compute-node-099.ciab.lip.ens-lyon.fr compute-node-099
-192.168.1.100 compute-node-100.ciab.lip.ens-lyon.fr compute-node-100
-192.168.1.101 compute-node-101.ciab.lip.ens-lyon.fr compute-node-101
-192.168.1.102 compute-node-102.ciab.lip.ens-lyon.fr compute-node-102
-192.168.1.103 compute-node-103.ciab.lip.ens-lyon.fr compute-node-103
-192.168.1.104 compute-node-104.ciab.lip.ens-lyon.fr compute-node-104
-192.168.1.105 compute-node-105.ciab.lip.ens-lyon.fr compute-node-105
-192.168.1.106 compute-node-106.ciab.lip.ens-lyon.fr compute-node-106
-192.168.1.107 compute-node-107.ciab.lip.ens-lyon.fr compute-node-107
-192.168.1.108 compute-node-108.ciab.lip.ens-lyon.fr compute-node-108
-192.168.1.109 compute-node-109.ciab.lip.ens-lyon.fr compute-node-109
-192.168.1.110 compute-node-110.ciab.lip.ens-lyon.fr compute-node-110
-192.168.1.111 compute-node-111.ciab.lip.ens-lyon.fr compute-node-111
-192.168.1.112 compute-node-112.ciab.lip.ens-lyon.fr compute-node-112
-192.168.1.113 compute-node-113.ciab.lip.ens-lyon.fr compute-node-113
-192.168.1.114 compute-node-114.ciab.lip.ens-lyon.fr compute-node-114
-192.168.1.115 compute-node-115.ciab.lip.ens-lyon.fr compute-node-115
-192.168.1.116 compute-node-116.ciab.lip.ens-lyon.fr compute-node-116
-192.168.1.117 compute-node-117.ciab.lip.ens-lyon.fr compute-node-117
-192.168.1.118 compute-node-118.ciab.lip.ens-lyon.fr compute-node-118
-192.168.1.119 compute-node-119.ciab.lip.ens-lyon.fr compute-node-119
-192.168.1.120 compute-node-120.ciab.lip.ens-lyon.fr compute-node-120
-192.168.1.121 compute-node-121.ciab.lip.ens-lyon.fr compute-node-121
-192.168.1.122 compute-node-122.ciab.lip.ens-lyon.fr compute-node-122
-192.168.1.123 compute-node-123.ciab.lip.ens-lyon.fr compute-node-123
-192.168.1.124 compute-node-124.ciab.lip.ens-lyon.fr compute-node-124
-192.168.1.125 compute-node-125.ciab.lip.ens-lyon.fr compute-node-125
-192.168.1.126 compute-node-126.ciab.lip.ens-lyon.fr compute-node-126
-192.168.1.127 compute-node-127.ciab.lip.ens-lyon.fr compute-node-127
-192.168.1.128 compute-node-128.ciab.lip.ens-lyon.fr compute-node-128
-192.168.1.129 compute-node-129.ciab.lip.ens-lyon.fr compute-node-129
-192.168.1.130 compute-node-130.ciab.lip.ens-lyon.fr compute-node-130
-192.168.1.131 compute-node-131.ciab.lip.ens-lyon.fr compute-node-131
-192.168.1.132 compute-node-132.ciab.lip.ens-lyon.fr compute-node-132
-192.168.1.133 compute-node-133.ciab.lip.ens-lyon.fr compute-node-133
-192.168.1.134 compute-node-134.ciab.lip.ens-lyon.fr compute-node-134
-192.168.1.135 compute-node-135.ciab.lip.ens-lyon.fr compute-node-135
-192.168.1.136 compute-node-136.ciab.lip.ens-lyon.fr compute-node-136
-192.168.1.137 compute-node-137.ciab.lip.ens-lyon.fr compute-node-137
-192.168.1.138 compute-node-138.ciab.lip.ens-lyon.fr compute-node-138
-192.168.1.139 compute-node-139.ciab.lip.ens-lyon.fr compute-node-139
-192.168.1.140 compute-node-140.ciab.lip.ens-lyon.fr compute-node-140
-192.168.1.141 compute-node-141.ciab.lip.ens-lyon.fr compute-node-141
-192.168.1.142 compute-node-142.ciab.lip.ens-lyon.fr compute-node-142
-192.168.1.143 compute-node-143.ciab.lip.ens-lyon.fr compute-node-143
-192.168.1.144 compute-node-144.ciab.lip.ens-lyon.fr compute-node-144
-192.168.1.145 compute-node-145.ciab.lip.ens-lyon.fr compute-node-145
-192.168.1.146 compute-node-146.ciab.lip.ens-lyon.fr compute-node-146
-192.168.1.147 compute-node-147.ciab.lip.ens-lyon.fr compute-node-147
-192.168.1.148 compute-node-148.ciab.lip.ens-lyon.fr compute-node-148
-192.168.1.149 compute-node-149.ciab.lip.ens-lyon.fr compute-node-149
-192.168.1.150 compute-node-150.ciab.lip.ens-lyon.fr compute-node-150
-192.168.1.151 compute-node-151.ciab.lip.ens-lyon.fr compute-node-151
-192.168.1.152 compute-node-152.ciab.lip.ens-lyon.fr compute-node-152
-192.168.1.153 compute-node-153.ciab.lip.ens-lyon.fr compute-node-153
-192.168.1.154 compute-node-154.ciab.lip.ens-lyon.fr compute-node-154
-192.168.1.155 compute-node-155.ciab.lip.ens-lyon.fr compute-node-155
-192.168.1.156 compute-node-156.ciab.lip.ens-lyon.fr compute-node-156
-192.168.1.157 compute-node-157.ciab.lip.ens-lyon.fr compute-node-157
-192.168.1.158 compute-node-158.ciab.lip.ens-lyon.fr compute-node-158
-192.168.1.159 compute-node-159.ciab.lip.ens-lyon.fr compute-node-159
-192.168.1.160 compute-node-160.ciab.lip.ens-lyon.fr compute-node-160
-192.168.1.161 compute-node-161.ciab.lip.ens-lyon.fr compute-node-161
-192.168.1.162 compute-node-162.ciab.lip.ens-lyon.fr compute-node-162
-192.168.1.163 compute-node-163.ciab.lip.ens-lyon.fr compute-node-163
-192.168.1.164 compute-node-164.ciab.lip.ens-lyon.fr compute-node-164
-192.168.1.165 compute-node-165.ciab.lip.ens-lyon.fr compute-node-165
-192.168.1.166 compute-node-166.ciab.lip.ens-lyon.fr compute-node-166
-192.168.1.167 compute-node-167.ciab.lip.ens-lyon.fr compute-node-167
-192.168.1.168 compute-node-168.ciab.lip.ens-lyon.fr compute-node-168
-192.168.1.169 compute-node-169.ciab.lip.ens-lyon.fr compute-node-169
-192.168.1.170 compute-node-170.ciab.lip.ens-lyon.fr compute-node-170
-192.168.1.171 compute-node-171.ciab.lip.ens-lyon.fr compute-node-171
-192.168.1.172 compute-node-172.ciab.lip.ens-lyon.fr compute-node-172
-192.168.1.173 compute-node-173.ciab.lip.ens-lyon.fr compute-node-173
-192.168.1.174 compute-node-174.ciab.lip.ens-lyon.fr compute-node-174
-192.168.1.175 compute-node-175.ciab.lip.ens-lyon.fr compute-node-175
-192.168.1.176 compute-node-176.ciab.lip.ens-lyon.fr compute-node-176
-192.168.1.177 compute-node-177.ciab.lip.ens-lyon.fr compute-node-177
-192.168.1.178 compute-node-178.ciab.lip.ens-lyon.fr compute-node-178
-192.168.1.179 compute-node-179.ciab.lip.ens-lyon.fr compute-node-179
-192.168.1.180 compute-node-180.ciab.lip.ens-lyon.fr compute-node-180
-192.168.1.181 compute-node-181.ciab.lip.ens-lyon.fr compute-node-181
-192.168.1.182 compute-node-182.ciab.lip.ens-lyon.fr compute-node-182
-192.168.1.183 compute-node-183.ciab.lip.ens-lyon.fr compute-node-183
-192.168.1.184 compute-node-184.ciab.lip.ens-lyon.fr compute-node-184
-192.168.1.185 compute-node-185.ciab.lip.ens-lyon.fr compute-node-185
-192.168.1.186 compute-node-186.ciab.lip.ens-lyon.fr compute-node-186
-192.168.1.187 compute-node-187.ciab.lip.ens-lyon.fr compute-node-187
-192.168.1.188 compute-node-188.ciab.lip.ens-lyon.fr compute-node-188
-192.168.1.189 compute-node-189.ciab.lip.ens-lyon.fr compute-node-189
-192.168.1.190 compute-node-190.ciab.lip.ens-lyon.fr compute-node-190
-192.168.1.191 compute-node-191.ciab.lip.ens-lyon.fr compute-node-191
-192.168.1.192 compute-node-192.ciab.lip.ens-lyon.fr compute-node-192
-192.168.1.193 compute-node-193.ciab.lip.ens-lyon.fr compute-node-193
-192.168.1.194 compute-node-194.ciab.lip.ens-lyon.fr compute-node-194
-192.168.1.195 compute-node-195.ciab.lip.ens-lyon.fr compute-node-195
-192.168.1.196 compute-node-196.ciab.lip.ens-lyon.fr compute-node-196
-192.168.1.197 compute-node-197.ciab.lip.ens-lyon.fr compute-node-197
-192.168.1.198 compute-node-198.ciab.lip.ens-lyon.fr compute-node-198
-192.168.1.199 compute-node-199.ciab.lip.ens-lyon.fr compute-node-199
-192.168.1.200 compute-node-200.ciab.lip.ens-lyon.fr compute-node-200
-192.168.1.201 compute-node-201.ciab.lip.ens-lyon.fr compute-node-201
-192.168.1.202 compute-node-202.ciab.lip.ens-lyon.fr compute-node-202
-192.168.1.203 compute-node-203.ciab.lip.ens-lyon.fr compute-node-203
-192.168.1.204 compute-node-204.ciab.lip.ens-lyon.fr compute-node-204
-192.168.1.205 compute-node-205.ciab.lip.ens-lyon.fr compute-node-205
-192.168.1.206 compute-node-206.ciab.lip.ens-lyon.fr compute-node-206
-192.168.1.207 compute-node-207.ciab.lip.ens-lyon.fr compute-node-207
-192.168.1.208 compute-node-208.ciab.lip.ens-lyon.fr compute-node-208
-192.168.1.209 compute-node-209.ciab.lip.ens-lyon.fr compute-node-209
-192.168.1.210 compute-node-210.ciab.lip.ens-lyon.fr compute-node-210
-192.168.1.211 compute-node-211.ciab.lip.ens-lyon.fr compute-node-211
-192.168.1.212 compute-node-212.ciab.lip.ens-lyon.fr compute-node-212
-192.168.1.213 compute-node-213.ciab.lip.ens-lyon.fr compute-node-213
-192.168.1.214 compute-node-214.ciab.lip.ens-lyon.fr compute-node-214
-192.168.1.215 compute-node-215.ciab.lip.ens-lyon.fr compute-node-215
-192.168.1.216 compute-node-216.ciab.lip.ens-lyon.fr compute-node-216
-192.168.1.217 compute-node-217.ciab.lip.ens-lyon.fr compute-node-217
-192.168.1.218 compute-node-218.ciab.lip.ens-lyon.fr compute-node-218
-192.168.1.219 compute-node-219.ciab.lip.ens-lyon.fr compute-node-219
-192.168.1.220 compute-node-220.ciab.lip.ens-lyon.fr compute-node-220
-192.168.1.221 compute-node-221.ciab.lip.ens-lyon.fr compute-node-221
-192.168.1.222 compute-node-222.ciab.lip.ens-lyon.fr compute-node-222
-192.168.1.223 compute-node-223.ciab.lip.ens-lyon.fr compute-node-223
-192.168.1.224 compute-node-224.ciab.lip.ens-lyon.fr compute-node-224
-192.168.1.225 compute-node-225.ciab.lip.ens-lyon.fr compute-node-225
-192.168.1.226 compute-node-226.ciab.lip.ens-lyon.fr compute-node-226
-192.168.1.227 compute-node-227.ciab.lip.ens-lyon.fr compute-node-227
-192.168.1.228 compute-node-228.ciab.lip.ens-lyon.fr compute-node-228
-192.168.1.229 compute-node-229.ciab.lip.ens-lyon.fr compute-node-229
-192.168.1.230 compute-node-230.ciab.lip.ens-lyon.fr compute-node-230
-192.168.1.231 compute-node-231.ciab.lip.ens-lyon.fr compute-node-231
-192.168.1.232 compute-node-232.ciab.lip.ens-lyon.fr compute-node-232
-192.168.1.233 compute-node-233.ciab.lip.ens-lyon.fr compute-node-233
-192.168.1.234 compute-node-234.ciab.lip.ens-lyon.fr compute-node-234
-192.168.1.235 compute-node-235.ciab.lip.ens-lyon.fr compute-node-235
-192.168.1.236 compute-node-236.ciab.lip.ens-lyon.fr compute-node-236
-192.168.1.237 compute-node-237.ciab.lip.ens-lyon.fr compute-node-237
-192.168.1.238 compute-node-238.ciab.lip.ens-lyon.fr compute-node-238
-192.168.1.239 compute-node-239.ciab.lip.ens-lyon.fr compute-node-239
-192.168.1.240 compute-node-240.ciab.lip.ens-lyon.fr compute-node-240
-192.168.1.241 compute-node-241.ciab.lip.ens-lyon.fr compute-node-241
-192.168.1.242 compute-node-242.ciab.lip.ens-lyon.fr compute-node-242
-192.168.1.243 compute-node-243.ciab.lip.ens-lyon.fr compute-node-243
-192.168.1.244 compute-node-244.ciab.lip.ens-lyon.fr compute-node-244
-192.168.1.245 compute-node-245.ciab.lip.ens-lyon.fr compute-node-245
-192.168.1.246 compute-node-246.ciab.lip.ens-lyon.fr compute-node-246
-192.168.1.247 compute-node-247.ciab.lip.ens-lyon.fr compute-node-247
-192.168.1.248 compute-node-248.ciab.lip.ens-lyon.fr compute-node-248
-192.168.1.249 compute-node-249.ciab.lip.ens-lyon.fr compute-node-249
-192.168.1.250 compute-node-250.ciab.lip.ens-lyon.fr compute-node-250
-192.168.1. .ciab.lip.ens-lyon.fr 
-192.168.1. .ciab.lip.ens-lyon.fr 
-# The following lines are desirable for IPv6 capable hosts
-::1 ip6-localhost ip6-loopback
-fe00::0 ip6-localnet
-ff00::0 ip6-mcastprefix
-ff02::1 ip6-allnodes
-ff02::2 ip6-allrouters
Index: trunk/shell/templates/etc/network/interfaces.front-end
===================================================================
--- trunk/shell/templates/etc/network/interfaces.front-end	(revision 33)
+++ trunk/shell/templates/etc/network/interfaces.front-end	(revision 34)
@@ -16,7 +16,7 @@
 #
 iface eth1 inet static
  address __ETH1_STATIC_ADDRESS__
- netmask 255.255.255.0
+ netmask __ETH1_STATIC_NETMASK__
 #
 # post-up  ethtool -K eth0 tx off
 #
Index: trunk/shell/templates/etc/xen/front-end.cfg
===================================================================
--- trunk/shell/templates/etc/xen/front-end.cfg	(revision 33)
+++ trunk/shell/templates/etc/xen/front-end.cfg	(revision 34)
@@ -16,11 +16,11 @@
 #
 #  Disk device(s).
 #
-root        = '__XEN_SYSTEM_DISK_ROOT_DEVICE__'
+__XEN_SYSTEM_DISK_ROOT_DEVICE_STANZA__
 disk        = [
-                  'phy:__FRONT_END_SYSTEM_DISK__,xvda1,w',
-                  'phy:__FRONT_END_HOME_DISK__,xvda2,w',
-                  __FRONT_END_SWAP_DISK__
+                  __FRONT_END_SYSTEM_DISK_STANZA__,
+                  __FRONT_END_HOME_DISK_STANZA__,
+                  __FRONT_END_SWAP_DISK_STANZA__
               ]
 
 __FRONT_END_NOSWAP__
