At some point in the last few weeks, I repeatedly had to recreate my Nagios config for currently six filers. After doing that a few times, I ended up (like sooo often) writing a short Bash script, that’ll do this for me - without any fuss.

The only thing the script needs, is that the filers and the filers are registered in DNS … Here’s an example:

1
2
3
4
fas3240a      IN   A     172.31.76.150
fas3240a-sp   IN   A     172.31.74.150
fas3240b      IN   A     172.31.76.151
fas3240b-sp   IN   A     172.31.74.151

With that done, the script will create the necessary Nagios config for those filers.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#!/bin/bash -f

#set -x
for host in $@; do
	echo "define host{" | tee /etc/nagios/objects/hosts/san/$host.cfg
	echo -e "thost_namettt$host" | tee -a /etc/nagios/objects/hosts/san/$host.cfg
	echo -e "tusettttgeneric-host-perfdata" | tee -a /etc/nagios/objects/hosts/san/$host.cfg
	echo "" | tee -a /etc/nagios/objects/hosts/san/$host.cfg
	echo -e "taddresstttt$( dig +short $host.home.barfoo.org )" | tee -a /etc/nagios/objects/hosts/san/$host.cfg
	echo -e "taliastttt$host.home.barfoo.org" | tee -a /etc/nagios/objects/hosts/san/$host.cfg
	echo -e "tdisplay_namettt$host.home.barfoo.org" | tee -a /etc/nagios/objects/hosts/san/$host.cfg
	echo -e "thostgroupstttnetapp-fas-fc" | tee -a /etc/nagios/objects/hosts/san/$host.cfg
	echo -e "t_DOTSPtt$( dig +short $host-sp.home.barfoo.org )" | tee -a /etc/nagios/objects/hosts/san/$host.cfg
	echo "}" | tee -a /etc/nagios/objects/hosts/san/$host.cfg
	echo | tee -a /etc/nagios/objects/hosts/san/$host.cfg
done

#set +x