Statistiques
| Révision :

root / trunk / shell / front-end-finish-up

Historique | Voir | Annoter | Télécharger (10,45 ko)

1 37 storres
#! /bin/bash -x
2 37 storres
#
3 37 storres
# ST - 2012-05-25
4 37 storres
#
5 37 storres
# Finish up the front end installation.
6 37 storres
#
7 37 storres
# Get the directory of the script.
8 37 storres
SCRIPT_PATH=`dirname $0`
9 37 storres
# Get the script name.
10 37 storres
SCRIPT_NAME=`basename $0`
11 37 storres
# Source the common configuration variables.
12 37 storres
. $SCRIPT_PATH/c-i-a-b.common
13 37 storres
14 37 storres
CURRENT_HOST_NAME=$FRONT_END_HOST_NAME
15 37 storres
#
16 37 storres
# Get the cluster MAC address
17 37 storres
#
18 38 storres
CURRENT_PATH=/etc
19 37 storres
FRONT_END_CLUSTER_MAC_ADDRESS=\
20 50 storres
`awk -F, -v INDEX=$CONST_FRONT_END_CLUSTER_STATIC_NETWORK_POSTFIX '{if (FNR==INDEX) {print $1}}' $SCRIPT_PATH/${CONST_TEMPLATES_DIR}$CURRENT_PATH/$CONST_DHCP_HOSTS_FILE_BASENAME`
21 37 storres
#
22 37 storres
#
23 37 storres
# Create the Xen configuration file from a template
24 37 storres
#
25 37 storres
CURRENT_PATH=/etc/xen
26 50 storres
cp ${CONST_TEMPLATES_DIR}$CURRENT_PATH/$CONST_FRONT_END_XEN_TEMPLATE_NAME \
27 37 storres
   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
28 45 storres
rpl -q Template Configuration $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
29 45 storres
rpl -q __FRONT_END_KERNEL__ $FRONT_END_KERNEL \
30 37 storres
   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
31 45 storres
rpl -q __FRONT_END_RAMDISK__ $FRONT_END_RAMDISK \
32 37 storres
   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
33 45 storres
rpl -q __FRONT_END_VCPUS_NUM__ $FRONT_END_VCPUS_NUM \
34 37 storres
   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
35 37 storres
CPUS_LIST=$FRONT_END_CPUS_LIST
36 37 storres
CPUS=""
37 37 storres
for i in $CPUS_LIST
38 37 storres
  do
39 37 storres
    if [ "x$CPUS" == "x" ]
40 37 storres
      then
41 37 storres
        CPUS=$i
42 37 storres
      else
43 37 storres
        CPUS="$CPUS,$i"
44 37 storres
    fi
45 37 storres
done
46 45 storres
rpl -q __FRONT_END_CPUS__ $CPUS \
47 37 storres
   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
48 37 storres
# Memory
49 45 storres
rpl -q __FRONT_END_MEMORY__ $FRONT_END_MEMORY \
50 37 storres
   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
51 37 storres
# Root device
52 45 storres
rpl -q __XEN_SYSTEM_DISK_ROOT_DEVICE_STANZA__ "$CONST_XEN_SYSTEM_DISK_ROOT_DEVICE_STANZA" \
53 37 storres
   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
54 37 storres
#
55 37 storres
# System disk stuff
56 37 storres
FRONT_END_SYSTEM_DISK_STANZA="'phy:${FRONT_END_SYSTEM_VOLUME_GROUP_DEVICE}/${FRONT_END_SYSTEM_DISK},$FRONT_END_SYSTEM_VIRTUAL_VOLUME,w'"
57 45 storres
rpl -q __FRONT_END_SYSTEM_DISK_STANZA__ "$FRONT_END_SYSTEM_DISK_STANZA" \
58 37 storres
   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
59 37 storres
# Home disk stuff
60 37 storres
FRONT_END_HOME_DISK_STANZA="'phy:${FRONT_END_HOME_VOLUME_GROUP_DEVICE}/${FRONT_END_HOME_DISK},$FRONT_END_HOME_VIRTUAL_VOLUME,w'"
61 45 storres
rpl -q __FRONT_END_HOME_DISK_STANZA__ "$FRONT_END_HOME_DISK_STANZA" \
62 37 storres
   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
63 37 storres
# Swap disk stuff.
64 37 storres
if [ "x$FRONT_END_SWAP_DISK_SIZE" != "x$CONST_NULL_DISK_SIZE" ] ; then
65 37 storres
  FRONT_END_SWAP_DISK_STANZA="'phy:${FRONT_END_SWAP_VOLUME_GROUP_DEVICE}/${FRONT_END_SWAP_DISK},$FRONT_END_SWAP_VIRTUAL_VOLUME,w'"
66 45 storres
  rpl -q __FRONT_END_SWAP_DISK_STANZA__ $FRONT_END_SWAP_DISK_STANZA \
67 37 storres
     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
68 37 storres
  # Comment out the noswap stanza.
69 45 storres
  rpl -q __FRONT_END_NOSWAP__ "#$CLUSTER_NOSWAP" \
70 37 storres
     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
71 37 storres
else
72 45 storres
  rpl -q __FRONT_END_SWAP_DISK_STANZA__ "" \
73 37 storres
     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
74 45 storres
  rpl -q __FRONT_END_NOSWAP__ $CLUSTER_NOSWAP \
75 37 storres
     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
76 37 storres
fi
77 37 storres
#
78 45 storres
rpl -q __FRONT_END_HOST_NAME__ $CURRENT_HOST_NAME \
79 37 storres
   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
80 37 storres
# Vif stuff.
81 37 storres
VIF_STANZA=$CONST_XEN_VIF_STANZA_PREFIX
82 37 storres
EXTERNAL_MAC="${CONST_XEN_MAC_PREFIX}${FRONT_END_EXTERNAL_MAC_ADDRESS}"
83 37 storres
INTERNAL_MAC="${CONST_XEN_MAC_PREFIX}${FRONT_END_CLUSTER_MAC_ADDRESS}"
84 37 storres
INTERNAL_BRIDGE="${CONST_XEN_BRIDGE_PREFIX}${CLUSTER_BRIDGE_NAME}"
85 37 storres
INTERNAL_IP="${CONST_XEN_IP_PREFIX}${FRONT_END_CLUSTER_STATIC_IP}"
86 37 storres
if [ $CLUSTER_EXTERNAL_ADDRESSES_BY_DHCP -eq 1 ] ;then
87 45 storres
  rpl -q __XEN_DHCP_STANZA__ "$CONST_XEN_DHCP_STANZA" \
88 37 storres
     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
89 37 storres
  VIF_STANZA=${VIF_STANZA}${EXTERNAL_MAC}"','"${INTERNAL_IP}","${INTERNAL_MAC}","${INTERNAL_BRIDGE}${CONST_XEN_VIF_STANZA_POSTFIX}
90 37 storres
else
91 37 storres
  # Comment out the DHCP_STANZA.
92 45 storres
  rpl -q __XEN_DHCP_STANZA__ "#$CONST_XEN_DHCP_STANZA" \
93 37 storres
     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
94 37 storres
  VIF_STANZA=${VIF_STANZA}${EXTERNAL_IP}","${EXTERNAL_MAC}",'"${INTERNAL_IP}","${INTERNAL_MAC},${INTERNAL_BRIDGE}${CONST_XEN_VIF_STANZA_POSTFIX}
95 37 storres
fi
96 37 storres
# In any case, write the VIF_STANZA
97 45 storres
rpl -q __VIF_STANZA__ "$VIF_STANZA" \
98 37 storres
   $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
99 37 storres
# Console stuff as extra parameter
100 45 storres
rpl -q __EXTRA_STANZA__ "$CONST_XEN_EXTRA_STANZA" \
101 37 storres
     $CONST_XEN_CONFIG_DIR/$CURRENT_HOST_NAME.cfg
102 37 storres
# End creation of Xen configuration file.
103 37 storres
#
104 37 storres
# Complet installation
105 37 storres
#
106 37 storres
# Modules stuff.
107 37 storres
#
108 37 storres
#  Create the directory on the new image, if it does not exit yet.
109 37 storres
if [ ! -d $FRONT_END_FILE_SYSTEM_MOUNT_POINT/lib/modules ] ; then
110 37 storres
  mkdir $FRONT_END_FILE_SYSTEM_MOUNT_POINT/lib/modules
111 37 storres
fi
112 37 storres
#
113 37 storres
#  Copy the modules
114 37 storres
#
115 37 storres
XEN_MODULES_DIRECTORY=`ls /lib/modules | grep xen `
116 37 storres
for i in $XEN_MODULES_DIRECTORY ; do
117 37 storres
  cp -a /lib/modules/$i $FRONT_END_FILE_SYSTEM_MOUNT_POINT/lib/modules
118 37 storres
done
119 37 storres
#
120 37 storres
# Module stuff done.
121 37 storres
#
122 37 storres
# Generate or configure the specific files from templates
123 37 storres
#
124 37 storres
# Create the /etc directory, if necessary
125 37 storres
if [ ! -d $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc ] ; then
126 37 storres
  mkdir $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc
127 37 storres
fi
128 37 storres
# Copy the sources list
129 37 storres
if [ ! -d $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc/apt ] ; then
130 37 storres
  mkdir $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc/apt
131 37 storres
fi
132 37 storres
cp /etc/apt/sources.list $FRONT_END_FILE_SYSTEM_MOUNT_POINT/etc/apt
133 37 storres
134 37 storres
# /etc/network/interfaces
135 37 storres
# The first interface is DHCP configured.
136 37 storres
# No '/' between $FRONT_END_FILE_SYSTEM_MOUNT_POINT and $CURRENT_PATH
137 37 storres
CURRENT_PATH=/etc/network
138 37 storres
if [ ! -d ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH} ] ; then
139 37 storres
  mkdir ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}
140 37 storres
fi
141 50 storres
cp ${CONST_TEMPLATES_DIR}$CURRENT_PATH/$FRONT_END_INTERFACES_TEMPLATE \
142 37 storres
   $FRONT_END_FILE_SYSTEM_MOUNT_POINT$CURRENT_PATH/interfaces
143 37 storres
if [ $CLUSTER_EXTERNAL_ADDRESSES_BY_DHCP -eq 1 ] ; then
144 37 storres
  ETH0_STANZA="iface eth0 inet dhcp"
145 45 storres
  rpl -q __ETH0_STATIC_OR_DHCP__ "$ETH0_STANZA"  \
146 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
147 45 storres
  rpl -q __ETH0_STATIC_ADDRESS__ "" \
148 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
149 45 storres
  rpl -q __ETH0_STATIC_NETMASK__ "" \
150 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
151 45 storres
  rpl -q __ETH0_STATIC_NETWORK__ "" \
152 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
153 45 storres
  rpl -q __ETH0_STATIC_GATEWAY__ "" \
154 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
155 45 storres
  rpl -q __ETH0_STATIC_BROADCAST__ "" \
156 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
157 45 storres
  rpl -q __ETH0_STATIC_NAMESERVERS__ "" \
158 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
159 45 storres
  rpl -q __ETH0_STATIC_DNS_SEARCH__ "" \
160 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
161 37 storres
else
162 37 storres
  ETH0_STANZA="iface eth0 inet static"
163 45 storres
  rpl -q __ETH0_STATIC_OR_DHCP__ "$ETH0_STANZA"  \
164 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
165 45 storres
  rpl -q __ETH0_STATIC_ADDRESS__ "$FRONT_END_CLUSTER_STATIC_IP" \
166 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
167 45 storres
  rpl -q __ETH0_STATIC_NETMASK__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_NETMASK" \
168 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
169 45 storres
  rpl -q __ETH0_STATIC_NETWORK__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_NETWORK" \
170 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
171 45 storres
  rpl -q __ETH0_STATIC_GATEWAY__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_GATEWAY" \
172 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
173 45 storres
  rpl -q __ETH0_STATIC_BROADCAST__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_BROADCAST" \
174 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
175 45 storres
  rpl -q __ETH0_STATIC_NAMESERVERS__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_DNS_NAMESERVERS" \
176 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
177 45 storres
  rpl-q __ETH0_STATIC_DNS_SEARCH__ "$FRONT_END_EXTERNAL_INTERFACE_STATIC_DNS_SEARCH" \
178 37 storres
      ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
179 37 storres
fi
180 37 storres
# Static address on the cluster interface.
181 37 storres
ADDRESS="${CLUSTER_STATIC_NETWORK_PREFIX}.${CONST_FRONT_END_CLUSTER_STATIC_NETWORK_POSTFIX}"
182 45 storres
rpl -q __ETH1_STATIC_ADDRESS__ $ADDRESS  \
183 37 storres
    ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
184 45 storres
rpl -q __ETH1_STATIC_NETMASK__ $CLUSTER_STATIC_NETMASK  \
185 37 storres
    ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/interfaces
186 37 storres
187 37 storres
# /etc/hostname
188 37 storres
CURRENT_PATH=/etc
189 37 storres
echo $CURRENT_HOST_NAME > "${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/hostname"
190 37 storres
# /etc/hosts. Script generated.
191 37 storres
CURRENT_PATH=/etc
192 37 storres
$SCRIPT_PATH/generate-hosts-file \
193 37 storres
  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/hosts
194 37 storres
# /etc/resolv.conf
195 37 storres
CURRENT_PATH=/etc
196 50 storres
cp ${CONST_TEMPLATES_DIR}$CURRENT_PATH/resolv.conf \
197 37 storres
   ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/resolv.conf
198 45 storres
rpl -q __CLUSTER_DOMAIN_NAME__ "${CLUSTER_DOMAIN_NAME}." \
199 37 storres
   ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/resolv.conf
200 45 storres
rpl -q __FRONT_END_STATIC_ADDRESS__ "${CLUSTER_STATIC_NETWORK_PREFIX}.${CONST_FRONT_END_CLUSTER_STATIC_NETWORK_POSTFIX}" \
201 37 storres
   ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/resolv.conf
202 37 storres
#
203 37 storres
# /etc/fstab
204 37 storres
#
205 37 storres
CURRENT_PATH=/etc
206 50 storres
cp ${CONST_TEMPLATES_DIR}${CURRENT_PATH}/${FRONT_END_FSTAB_TEMPLATE} \
207 37 storres
  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/fstab
208 37 storres
  # Front-End System Disk Line
209 37 storres
FESDL=${FRONT_END_SYSTEM_VIRTUAL_VOLUME_DEVICE}
210 37 storres
FESDL="$FESDL	/		$FRONT_END_SYSTEM_DISK_FILE_SYSTEM	errors=remount-ro	0	1"
211 45 storres
rpl -q __FRONT_END_SYSTEM_DISK_LINE__ "$FESDL" \
212 37 storres
  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/fstab
213 37 storres
  # Font-End Home Disk Line
214 37 storres
FEHDL=${FRONT_END_HOME_VIRTUAL_VOLUME_DEVICE}
215 37 storres
FEHDL="$FEHDL	/home		$FRONT_END_HOME_DISK_FILE_SYSTEM	errors=remount-ro	0	2"
216 45 storres
rpl -q __FRONT_END_HOME_DISK_LINE__ "$FEHDL" \
217 37 storres
  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/fstab
218 37 storres
  # Font-End Swap Disk Line
219 37 storres
if [ "x$FRONT_END_SWAP_DISK_SIZE" != "x$CONST_NULL_DISK_SIZE" ] ; then
220 37 storres
  FESDL=${FRONT_END_SWAP_VIRTUAL_VOLUME_DEVICE}
221 37 storres
  FESDL="$FESDL	none		swap				0	0"
222 37 storres
else
223 37 storres
  FESDL=""
224 37 storres
fi
225 45 storres
# "rpl -q" since $FESDL can be an empty string.
226 45 storres
rpl -q __FRONT_END_SWAP_DISK_LINE__ "$FESDL" \
227 37 storres
  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/fstab
228 37 storres
#
229 37 storres
# End /etc/fstab stuff.
230 37 storres
#
231 37 storres
# /etc/inittab stuff
232 37 storres
#
233 37 storres
rpl tty1 "$CONST_XEN_VIRTUAL_CONSOLE_NAME" \
234 37 storres
  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/inittab
235 37 storres
#
236 40 storres
# End /etc/inittab stuff.
237 40 storres
#
238 40 storres
# NFS V4 stuff
239 40 storres
#
240 50 storres
cp ${CONST_TEMPLATES_DIR}${CURRENT_PATH}/${FRONT_END_EXPORTS_TEMPLATE} \
241 40 storres
  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/$CONST_EXPORTS_FILE_BASENAME
242 40 storres
NFS_HOME_STANZA="$CLUSTER_STATIC_NETWORK_PREFIX.0/${CLUSTER_STATIC_NETMASK}$FRONT_END_NFS_OPTIONS"
243 45 storres
rpl -q __NFS_HOME_STANZA__ "$NFS_HOME_STANZA" \
244 40 storres
  ${FRONT_END_FILE_SYSTEM_MOUNT_POINT}${CURRENT_PATH}/$CONST_EXPORTS_FILE_BASENAME
245 40 storres
#
246 40 storres
# End NFS V4 stuff.
247 40 storres
#
248 45 storres
# Umount the front-end system disk
249 37 storres
#
250 37 storres
# Order matters since the /home file system is mounted on the
251 37 storres
# on the system partition
252 37 storres
umount $FRONT_END_FILE_SYSTEM_MOUNT_POINT/home
253 37 storres
umount $FRONT_END_FILE_SYSTEM_MOUNT_POINT
254 37 storres
#
255 37 storres
exit 0