
ie 2 dom0 et ovh. On pourrait envisager de généraliser, si on veut se passer du lagguy shitty /usr/scripts en nfs
40 lines
1.6 KiB
Text
40 lines
1.6 KiB
Text
# -*- 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 %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
|
|
|