# -*- encoding: utf-8 -*- info["owner"] = "root" info["group"] = "root" info["perms"] = 0644 @# Fichier gere par BCfg2 (plugin Python) @# @# A ne modifier que sur bcfg2 include('ip') if has('wheezy'): monit_p = '/usr/bin/monit' else: monit_p = '/usr/sbin/monit' def has_shared_scripts(client): return ('external' not in client.groups) and ( ('nfs' in client.groups) or ('crans-nfs' in client.groups)) if has('autostatus'): comment("Seveurs ne possedant pas de nfs :") for client in metadata.query.all(): if not has_shared_scripts(client): print "* * * * * root ( /bin/nc -w 10 %s 4242 || true ) > /usr/scripts/var/monit/status/%s 2> /dev/null" % (client.hostname, client.hostname.split('.', 1)[0]) if not has_shared_scripts(metadata): comment("Pas de nfs: attente de connexion depuis le serveur d'autostatus") print '* * * * * root ( /bin/nc -w 60 -l -p 4242 -s %s -c "%s status" || true ) 2> /dev/null' % (admip(), monit_p) else: @# Copie de `monit status` sur le nfs print "* * * * * root %s status > /usr/scripts/var/monit/status/`hostname` 2> /dev/null" % monit_p @# Montage de /usr/scripts pour que monit puisse écrire son status @*/5 * * * * root if ! [ -d /usr/scripts/var/monit/status ] ; then if ! /bin/mount | grep /usr/scripts > /dev/null ; then /bin/mount /usr/scripts ; else echo "Erreur d'acces a /usr/scripts/var/monit/status" ; fi ; fi @# Redémarrage de monit s'il ne tourne pas print """*/5 * * * * root if [ -n "$( %s status 2>&1 > /dev/null)" ]; then /etc/init.d/monit restart > /dev/null 2> /dev/null; fi""" % monit_p