Révision 28
trunk/shell/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