PURPOSE_="Generate config files needed for Evergreen-ILS Cluster"
SYNOPSIS_="$NAME_"
REQUIRES_="standard GNU commands, apt, dpkg"
- VERSION_="1.19"
- DATE_="2010-09-23; last update: 2013-11-04"
+ VERSION_="1.20"
+ DATE_="2010-09-23; last update: 2013-11-05"
AUTHOR_="Andy Witter <awitter@georgialibraries.org>"
URL_="http://evergreen-ils.org"
CATEGORY_="devel"
#eval echo "host \$BRICKHOSTNAME${BRICK}_HEAD_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf
### Build munin.conf file.
- eval echo -e "[${CLUSTERDOMAINNAME}\;\$BRICKHOSTNAME${BRICK}-head]" >>$TMPMUNINCONF
+ eval echo -e "[${CLUSTERDOMAINNAME}\;\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}]" >>$TMPMUNINCONF
#eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}_HEAD_IP" >>$TMPMUNINCONF
eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF
#eval echo -e "\\\thost_name \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF
#eval echo "host \$BRICKHOSTNAME${BRICK}_HEAD_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK})-head/etc/munin/munin-node.conf
### Build munin.conf file.
- eval echo -e "[${CLUSTERDOMAINNAME}\;\$BRICKHOSTNAME${BRICK}-head]" >>$TMPMUNINCONF
+ eval echo -e "[${CLUSTERDOMAINNAME}\;\$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}]" >>$TMPMUNINCONF
#eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}_HEAD_IP" >>$TMPMUNINCONF
eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF
#eval echo -e "\\\thost_name \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF
#eval echo "host \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP" >> ${OUTDIR}/$(eval echo \$BRICKHOSTNAME${BRICK})/$(eval echo \$BRICKHOSTNAME${BRICK}-drone0${DRONE})/etc/munin/munin-node.conf
### Build munin.conf file.
- eval echo -e "[${CLUSTERDOMAINNAME}\;\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}]" >>$TMPMUNINCONF
+ eval echo -e "[${CLUSTERDOMAINNAME}\;\$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME}]" >>$TMPMUNINCONF
#eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}_IP" >>$TMPMUNINCONF
eval echo -e "\\\taddress \$BRICKHOSTNAME${BRICK}_DRONE${DRONE}.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF
#eval echo -e "\\\thost_name \$BRICKHOSTNAME${BRICK}-head.${CLUSTERDOMAINNAME}" >>$TMPMUNINCONF
for MONITOR in $MACHINES_MONITOR
do
mkdir -p "$OUTDIR/$MONITOR/etc/icinga/objects"
+ mkdir -p "$OUTDIR/$MONITOR/etc/apache2/sites-available"
+ cp -f "$TEMPLATEDIR/monitor/icinga-vhost.conf" "/etc/apache2/sites-available"
cp -f "$TMPFOLDER/hosts.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects"
cp -f "$TMPFOLDER/hostgroups.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects"
cp -f "$TEMPLATEDIR/monitor/services.cfg" "$OUTDIR/$MONITOR/etc/icinga/objects"
+ sed -i "s^CLUSTER_DOMAIN_NAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$MONITOR/etc/apache2/sites-available/icinga-vhost.conf"
#cp -f "$TEMPLATEDIR/monitor/commands.cfg" "$OUTDIR/$MONITOR/etc/icinga"
### Generate sources.list for apt to install icinga
do
mkdir -p "$OUTDIR/$MONITOR/etc/munin"
mkdir -p "$OUTDIR/$MONITOR/etc/apache2/sites-available"
+ mkdir -p "$OUTDIR/$MONITOR/etc/apache2/conf.d"
+ cp -f "$TEMPLATEDIR/monitor/munin-apache2.conf" "$OUTDIR/$MONITOR/etc/apache2/conf.d"
cp -f "$TMPMUNINCONF" "$OUTDIR/$MONITOR/etc/munin"
cp -f "$TEMPLATEDIR/monitor/munin-vhost.conf" "$OUTDIR/$MONITOR/etc/apache2/sites-available"
sed -i "s^CLUSTER_DOMAIN_NAME^${CLUSTERDOMAINNAME}^g" "$OUTDIR/$MONITOR/etc/apache2/sites-available/munin-vhost.conf"
--- /dev/null
+<VirtualHost *:80>
+ ServerAdmin webmaster@CLUSTER_DOMAIN_NAME
+ ServerName icinga.CLUSTER_DOMAIN_NAME
+ DocumentRoot /usr/share/icinga/htdocs
+
+ ScriptAlias /cgi-bin/icinga /usr/lib/cgi-bin/icinga
+
+ # Where the stylesheets (config files) reside
+ Alias /stylesheets /etc/icinga/stylesheets
+ Alias /icinga/stylesheets /etc/icinga/stylesheets
+
+ # Where the HTML pages live
+ Alias /icinga /usr/share/icinga/htdocs
+
+ <DirectoryMatch "^(?:/usr/share/icinga/htdocs|/usr/lib/cgi-bin/icinga|/etc/icinga/stylesheets)/">
+ Options FollowSymLinks
+ AllowOverride None
+ </DirectoryMatch>
+ LogLevel notice
+ CustomLog /var/log/apache2/access.log combined
+ ErrorLog /var/log/apache2/error.log
+ ServerSignature On
+</VirtualHost>
+
fi
fi
## Munin on monitor servers.
-if [ -e "$WD/Munin/munin-cron.crontab" ]
+if [ -e "$WD/Munin/munin-cron.crontab" ] ### This file only should exist on a monitoring server.
then
- crontab -u munin "$WD/Munin/munin-cron.crontab"
-else
- echo "Cannot install crontab for munin"
+ if crontab -u munin "$WD/Munin/munin-cron.crontab"
+ then
+ sleep 2
+ echo "Running munin-cron manually for first time."
+ echo "This may take a while the first time..."
+ sudo su -c munin-cron --shell=/bin/bash munin
+ else
+ echo "Failed to install crontab for munin. Not running"
+ echo "munin-cron to populate the web directory."
+ fi
fi