SYNOPSIS_="$NAME_"
REQUIRES_="standard GNU commands, apt, dpkg"
VERSION_="0.96"
- DATE_="2010-09-18; last update: 2012-11-14"
+ DATE_="2010-09-18; last update: 2012-11-16"
AUTHOR_="Andy Witter <awitter@georgialibraries.org>"
URL_="http://evergreen-ils.org"
CATEGORY_="devel"
#DRONECOUNT="2"
TMPHOSTS="/tmp/tmphost.txt"
TMPZONEFILE="/tmp/tmpzonefile.txt"
+TMPREVZONEFILE="/tmp/tmprevzonefile.txt"
TMPOSRFNODES="/tmp/tmposrfnodes"
TMPOPENSRF_XML="/tmp/tmpopensrf.xml"
PSQL_VERSION="9.1"
MONITOR01_IP="${PRIVATENET}.201"
ADMIN01_IP="${PRIVATENET}.211"
+
+
cp -f "$TEMPLATEDIR/ntp.conf" /tmp
cp -f "$TEMPLATEDIR/resolv.conf" /tmp
sed -i "s^CLUSTER_DOMAIN_NAME^$CLUSTERDOMAINNAME^g" "/tmp/resolv.conf"
then
cp $TEMPLATEDIR/hosts-footer-prefixed /tmp/hosts-footer
cp "$TEMPLATEDIR/lvs/bind/zonefile-footer-prefixed" /tmp/zonefile-footer
+ cp "$TEMPLATEDIR/lvs/bind/revzonefile-footer-prefixed" /tmp/revzonefile-footer
sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" /tmp/hosts-footer
sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" /tmp/zonefile-footer
+ sed -i "s^PREFIX^$HOSTNAME_PREFIX^g" /tmp/revzonefile-footer
else
cp $TEMPLATEDIR/hosts-footer /tmp
cp "$TEMPLATEDIR/lvs/bind/zonefile-footer" /tmp
+ cp "$TEMPLATEDIR/lvs/bind/revzonefile-footer" /tmp
fi
sed -i "s^Priv_NET^${PRIVATENET}^g" /tmp/hosts-footer
sed -i "s^ClusterDomainName^${CLUSTERDOMAINNAME}^g" /tmp/hosts-footer
sed -i "s^Priv_NET^${PRIVATENET}^g" /tmp/zonefile-footer
+sed -i "s^domain.org^${CLUSTERDOMAINNAME}^g" /tmp/revzonefile-footer
### Start reports output configuration.
echo
then
ADD_REPORTS_SHARE="1"
REPORTS_NFS_HOSTNAME_IP="${PRIVATENET}.161"
- sed -i "9a\\${PRIVATENET}.161\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME} ${REPORTS_NFS_HOSTNAME}" /tmp/hosts-footer
- sed -i "9a\\${REPORTS_NFS_HOSTNAME}\tA\t${PRIVATENET}.161" /tmp/zonefile-footer
+ #sed -i "9a\\${PRIVATENET}.161\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME} ${REPORTS_NFS_HOSTNAME}" /tmp/hosts-footer
+ sed -i "/.171/i\\${PRIVATENET}.161\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME}\t${REPORTS_NFS_HOSTNAME}" /tmp/hosts-footer
+ #sed -i "17a\\${REPORTS_NFS_HOSTNAME}\tA\t${PRIVATENET}.161" /tmp/zonefile-footer
+ sed -i "/.171/i\\${REPORTS_NFS_HOSTNAME}\tA\t${PRIVATENET}.161" /tmp/zonefile-footer
+ #sed -i "15a\\161\tIN\tPTR\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME}." /tmp/revzonefile-footer
+ sed -i "/171/i\161\tIN\tPTR\t${REPORTS_NFS_HOSTNAME}.${CLUSTERDOMAINNAME}." /tmp/revzonefile-footer
fi
fi
### Prepare global hosts temp file and DNS zone file.
[ -e "$TMPHOSTS" ] && rm -f "$TMPHOSTS"
[ -e "$TMPZONEFILE" ] && rm -f "$TMPZONEFILE"
+[ -e "$TMPREVZONEFILE" ] && rm -f "$TMPREVZONEFILE"
[ -e "$TMPOSRFNODES" ] && rm -f "$TMPOSRFNODES"
if [ "$USE_HOSTNAME_PREFIX" = "y" ] || [ "$USE_HOSTNAME_PREFIX" = "Y" ]
then
cat $TEMPLATEDIR/hosts-header > "$TMPHOSTS"
cat "$TEMPLATEDIR/lvs/bind/zonefile-header" > "$TMPZONEFILE"
fi
+cat "$TEMPLATEDIR/lvs/bind/revzonefile-header" > "$TMPREVZONEFILE"
+
+### Split the private network into 3 separate octects
+PRIVATENET_1ST=$(echo $PRIVATENET | awk -F"." '{ print $1 }')
+PRIVATENET_2ND=$(echo $PRIVATENET | awk -F"." '{ print $2 }')
+PRIVATENET_3RD=$(echo $PRIVATENET | awk -F"." '{ print $3 }')
+
+### Reverse the private net for DNS reverse zone.
+REV_PRIVATENET="${PRIVATENET_3RD}.${PRIVATENET_2ND}.${PRIVATENET_1ST}"
+sed -i "s^_REV_PRIVATE_NET^$REV_PRIVATENET^g" "$TMPREVZONEFILE"
### Add lvs servers entry to the global hosts file and DNS zone file.
NUM=0
((NUM++))
#echo "$LVS01_PRIVATE_IP $LVS_SERVERS.${CLUSTERDOMAINNAME} $LVS_SERVERS " >> "$TMPHOSTS"
eval echo "\$LVS0${NUM}_PRIVATE_IP $LVS_SERVERS.${CLUSTERDOMAINNAME} $LVS_SERVERS " >> "$TMPHOSTS"
- eval echo "$LVS_SERVERS A \$LVS0${NUM}_PRIVATE_IP" >> "$TMPZONEFILE"
+ eval printf "$LVS_SERVERS\\\tA\\\t\$LVS0${NUM}_PRIVATE_IP\\\n" >> "$TMPZONEFILE"
+ printf "0${NUM}\tIN\tPTR\t$LVS_SERVERS.${CLUSTERDOMAINNAME}.\n" >> "$TMPREVZONEFILE"
done
eval echo "\$BRICKHOSTNAME${BRICK}-head" > ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hostname
eval echo "\$BRICKHOSTNAME${BRICK}-head" >> $TMPOSRFNODES
eval echo "\$BRICKHOSTNAME${BRICK}_HEAD_IP \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} public.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} private.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} \$BRICKHOSTNAME${BRICK}-head" >> $TMPHOSTS
- eval echo "\$BRICKHOSTNAME${BRICK}-head A \$BRICKHOSTNAME${BRICK}_HEAD_IP" >> $TMPZONEFILE
- eval echo "public.\$BRICKHOSTNAME${BRICK}-head A \$BRICKHOSTNAME${BRICK}_HEAD_IP" >> $TMPZONEFILE
- eval echo "private.\$BRICKHOSTNAME${BRICK}-head A \$BRICKHOSTNAME${BRICK}_HEAD_IP" >> $TMPZONEFILE
+ eval printf "\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE
+ eval printf "public.\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE
+ eval printf "private.\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE
+ eval printf "${BRICK}0\\\tIN\\\tPTR\\\t\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE
+ eval printf "${BRICK}0\\\tIN\\\tPTR\\\tpublic.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE
+ eval printf "${BRICK}0\\\tIN\\\tPTR\\\tprivate.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE
eval echo "/openils/var/data/offline \$BRICKHOSTNAME${BRICK}_HEAD_IP\(rw,sync,no_subtree_check\)" >> /tmp/exports
eval echo "/storage/reports-output \$BRICKHOSTNAME${BRICK}_HEAD_IP\(ro,sync,no_subtree_check\)" >> /tmp/exports_reporter
printf ")\n" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg
eval echo "\$BRICKHOSTNAME${BRICK}-head" > ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/hostname
eval echo "\$BRICKHOSTNAME${BRICK}-head" >> $TMPOSRFNODES
eval echo "\$BRICKHOSTNAME${BRICK}_HEAD_IP \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} public.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} private.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME} \$BRICKHOSTNAME${BRICK}-head" >> $TMPHOSTS
- eval echo "\$BRICKHOSTNAME${BRICK}-head A \$BRICKHOSTNAME${BRICK}_HEAD_IP" >> $TMPZONEFILE
- eval echo "public.\$BRICKHOSTNAME${BRICK}-head A \$BRICKHOSTNAME${BRICK}_HEAD_IP" >> $TMPZONEFILE
- eval echo "private.\$BRICKHOSTNAME${BRICK}-head A \$BRICKHOSTNAME${BRICK}_HEAD_IP" >> $TMPZONEFILE
+ eval printf "\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE
+ eval printf "public.\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE
+ eval printf "private.\$BRICKHOSTNAME${BRICK}-head\\\tA\\\t\$BRICKHOSTNAME${BRICK}_HEAD_IP\\\n" >> $TMPZONEFILE
+ eval printf "${BRICK}0\\\tIN\\\tPTR\\\t\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE
+ eval printf "${BRICK}0\\\tIN\\\tPTR\\\tpublic.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE
+ eval printf "${BRICK}0\\\tIN\\\tPTR\\\tprivate.\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE
for DRONE in $(seq $DRONECOUNT)
do
typeset TMPBRICKDRONES="$(eval echo \$BRICKHOSTNAME${BRICK}-head)_drones.txt"
### eval echo "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" >> $TMPBRICKDRONES
eval echo -e "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME} \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}" \
>> $TMPHOSTS
- eval echo -e "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE} A \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP" >> $TMPZONEFILE
+ eval printf "\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}\\\tA\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP\\\n" >> $TMPZONEFILE
+ eval printf "${BRICK}${DRONE}\\\tIN\\\tPTR\\\t\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME}.\\\n" >> $TMPREVZONEFILE
done
#echo
printf ")\n" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/openils/conf/.oils_brick.cfg
### Complete DNS zonefile configuration
cat /tmp/zonefile-footer >> "$TMPZONEFILE"
+cat /tmp/revzonefile-footer >> "$TMPREVZONEFILE"
sed -i "s^domain.org^$CLUSTERDOMAINNAME^g" "$TMPZONEFILE"
+sed -i "s^domain.org^$CLUSTERDOMAINNAME^g" "$TMPREVZONEFILE"
sed -i "s^Priv_NET^$PRIVATENET^g" "$TMPZONEFILE"
[ -z "$HOSTNAME_PREFIX" ] || sed -i "s^${HOSTNAME_PREFIX}-${HOSTNAME_PREFIX}^${HOSTNAME_PREFIX}^g" "$OUTDIR/$LVS_SERVER/etc/hosts"
mkdir -p "$OUTDIR/$LVS_SERVER/etc/bind"
cp -f "$TMPZONEFILE" "$OUTDIR/$LVS_SERVER/etc/bind/${CLUSTERDOMAINNAME}-zone"
+ cp -f "$TMPREVZONEFILE" "$OUTDIR/$LVS_SERVER/etc/bind/${PRIVATENET}-zone"
+ sed -i "s^_MY_HOSTNAME^$LVS_SERVER^g" "$OUTDIR/$LVS_SERVER/etc/bind/${CLUSTERDOMAINNAME}-zone"
+ sed -i "s^_MY_HOSTNAME^$LVS_SERVER^g" "$OUTDIR/$LVS_SERVER/etc/bind/${PRIVATENET}-zone"
done
### setup named.conf for bind DNS server on LVS servers
fi
eval sed -i "s^_MY_IP^\$LVS0${NUM}_PRIVATE_IP^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local"
sed -i "s^Priv_NET^$PRIVATENET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local"
- sed -i "s^domain.com^$CLUSTERDOMAINNAME^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local"
+ sed -i "s^domain.org^$CLUSTERDOMAINNAME^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local"
+ sed -i "s^_REV_PRIVATE_NET^$REV_PRIVATENET^g" "$OUTDIR/$LVS_SERVERS/etc/bind/named.conf.local"
done