Révision 28 trunk/shell/generate-hosts-file

generate-hosts-file (revision 28)
1 1
#! /bin/bash
2 2
#
3
# Generate a /etc/hosts files that will be use
4
# by dnsmasq on the front end.
5
# 
3
# ST - 2012-05-15
6 4
#
5
# Create and start the front end.
6
#
7 7
# Get the directory of the script.
8 8
SCRIPT_PATH=`dirname $0`
9 9
# Get the script name.
10 10
SCRIPT_NAME=`basename $0`
11 11
# Source the common configuration variables.
12 12
. $SCRIPT_PATH/c-i-a-b.common
13
# Clean up the file
14
HOSTS_FILE="${SCRIPT_PATH}/${TEMPLATES_DIR}/etc/${HOSTS_FILE_BASENAME}"
15
rm -f $HOSTS_FILE
16
# Local host static entry
17
echo 127.0.0.1 localhost >> $HOSTS_FILE
18
# Compute the file entries for the compute nodes.
19
for i in `seq 1 $COMPUTE_NODE_MAX_NUM`
20
  do
21
    NODE_NUMBER=$i
22
    NODE_NUMBER_STRING=$NODE_NUMBER
23
    # Normalize the node numbers for the node names on 3 characters.
24
    while [ ${#NODE_NUMBER_STRING} -lt 3 ]
25
      do
26
        NODE_NUMBER_STRING="0$NODE_NUMBER_STRING"
27
    done
28
    COMPUTE_NODE_NAME="${COMPUTE_NODE_NAME_PREFIX}${NODE_NUMBER_STRING}"
29
    echo -n "${COMPUTE_NODE_STATIC_NETWORK_PREFIX}.${NODE_NUMBER} " >> $HOSTS_FILE
30
    echo -n "${COMPUTE_NODE_NAME}.$CLUSTER_DOMAIN_NAME " >> $HOSTS_FILE
31
    echo "${COMPUTE_NODE_NAME}" >> $HOSTS_FILE
32
    
13
#
14
# Output file stuff: we write all the output to file descriptor #5
15
# If no argument is given to the script descriptor #5 is redirected to 
16
# STDOUT (descriptor #1)
17
# If an argument is given, output is rediected to the file having
18
# the name of the argument.
19
#
20
if [ "x$1" == "x" ] ; then
21
  exec 5>&1
22
else
23
  exec 5> $1
24
fi
25
# Localhost stuff.
26
echo "127.0.0.1 localhost" 1>&5
27
# Compute nodes stuff.
28
CNCSNP=1
29
for CNCSNP in `seq 1 $CONST_COMPUTE_NODE_MAX_NUM`  ; do
30
  echo -n "${CLUSTER_STATIC_NETWORK_PREFIX}.${CNCSNP} " 1>&5
31
  CNCSNP_STRING=$CNCSNP
32
  while [ ${#CNCSNP_STRING} -lt 3 ] ; do
33
    CNCSNP_STRING=0$CNCSNP_STRING
34
  done
35
  echo -n "${COMPUTE_NODE_NAME_PREFIX}${CNCSNP_STRING}.${CLUSTER_DOMAIN_NAME} " 1>&5
36
  echo "${COMPUTE_NODE_NAME_PREFIX}${CNCSNP_STRING}" 1>&5
33 37
done
34
# More static entries
35
echo -n "${COMPUTE_NODE_STATIC_NETWORK_PREFIX}.$FRONT_END_STATIC_NETWORK_POSTFIX " >> $HOSTS_FILE
36
echo -n "$FRONT_END_NAME.$CLUSTER_DOMAIN_NAME " >> $HOSTS_FILE
37
echo  $FRONT_END_NAME >> $HOSTS_FILE
38
echo -n "${COMPUTE_NODE_STATIC_NETWORK_PREFIX}.$COMPUTE_NODE_MODEL_STATIC_NETWORK_POSTFIX " >> $HOSTS_FILE
39
echo -n "$COMPUTE_NODE_MODEL_NAME.$CLUSTER_DOMAIN_NAME " >> $HOSTS_FILE
40
echo $COMPUTE_NODE_MODEL_NAME >> $HOSTS_FILE
41
echo \# The following lines are desirable for IPv6 capable hosts >> $HOSTS_FILE
42
echo ::1     ip6-localhost ip6-loopback >> $HOSTS_FILE
43
echo fe00::0 ip6-localnet >> $HOSTS_FILE
44
echo ff00::0 ip6-mcastprefix >> $HOSTS_FILE
45
echo ff02::1 ip6-allnodes >> $HOSTS_FILE
46
echo ff02::2 ip6-allrouters >> $HOSTS_FILE
47
echo
48
echo Copy the \"$HOSTS_FILE\" file to the frontend.
49
echo
38
# Front-end stuff.
39
echo -n "${CLUSTER_STATIC_NETWORK_PREFIX}.${CONST_FRONT_END_CLUSTER_STATIC_NETWORK_POSTFIX} " 1>&5
40
echo -n "${FRONT_END_HOST_NAME}.${CLUSTER_DOMAIN_NAME} " 1>&5
41
echo "$FRONT_END_HOST_NAME" 1>&5
42
# Compute node model stuff.
43
echo -n "${CLUSTER_STATIC_NETWORK_PREFIX}.${CONST_COMPUTE_NODE_MODEL_CLUSTER_STATIC_NETWORK_POSTFIX} " 1>&5
44
echo -n "${COMPUTE_NODE_MODEL_HOST_NAME}.${CLUSTER_DOMAIN_NAME} " 1>&5
45
echo "$COMPUTE_NODE_MODEL_HOST_NAME" 1>&5
46
#
47
# IPv6 stuff
48
echo "#" 1>&5
49
echo "# The following lines are desirable for IPv6 capable hosts" 1>&5
50
echo "::1 ip6-localhost ip6-loopback" 1>&5
51
echo "fe00::0 ip6-localnet" 1>&5
52
echo "ff00::0 ip6-mcastprefix" 1>&5
53
echo "ff02::1 ip6-allnodes" 1>&5
54
echo "ffO2::2 ip6-allraouters" 1>&5
55
exec 5>&-
50 56
exit 0

Formats disponibles : Unified diff