munin-node: dehardcoding des IPs
Et on rajoute une fonction kikoo pour lister toutes les IPs associées à une liste de clients.
This commit is contained in:
parent
74bfd06b06
commit
b9b889e238
2 changed files with 34 additions and 4 deletions
|
@ -1,11 +1,17 @@
|
||||||
# -*- coding: utf-8; mode: python -*-
|
# -*- coding: utf-8; mode: python -*-
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
include("ip")
|
include("ip")
|
||||||
|
if '/usr/scripts/' not in sys.path:
|
||||||
|
sys.path.append('/usr/scripts/')
|
||||||
|
from gestion import config
|
||||||
|
|
||||||
info["owner"] = "root"
|
info["owner"] = "root"
|
||||||
info["group"] = "root"
|
info["group"] = "root"
|
||||||
|
|
||||||
# Remplacement du nom d'hôte pour les hôtes particuliers
|
# Remplacement du nom d'hôte pour les hôtes particuliers
|
||||||
|
# (deprecated)
|
||||||
munin_hostname = {
|
munin_hostname = {
|
||||||
"canard": "canard.ferme.crans.org",
|
"canard": "canard.ferme.crans.org",
|
||||||
"jouvence": "poulet.ferme.crans.org",
|
"jouvence": "poulet.ferme.crans.org",
|
||||||
|
@ -47,10 +53,13 @@ print "host_name %s" % munin_hostname
|
||||||
@
|
@
|
||||||
if not has("users"):
|
if not has("users"):
|
||||||
@# On autorise tout adm et localhost
|
@# On autorise tout adm et localhost
|
||||||
@allow ^10\.231\.136\..*$
|
|
||||||
@allow ^127\.0\.0\.1$
|
@allow ^127\.0\.0\.1$
|
||||||
@allow ^2a01:240:fe3d:c804:.*$
|
@cidr_allow 127.0.0.0/8
|
||||||
|
@cidr_allow ::1/128
|
||||||
|
|
||||||
|
for net in config.NETs['adm'] + config.prefix['adm']:
|
||||||
|
print "cidr_allow " + net
|
||||||
else:
|
else:
|
||||||
@# On autorise seulement le serveur munin
|
@# On autorise seulement le serveur munin
|
||||||
@allow ^10\.231\.136\.81$
|
for ip in ips_of_metadata(metadata.query.by_profiles(['munin-server'])):
|
||||||
@allow ^2a01:240:fe3d:c804:20f:1fff:fe66:e592$
|
print "cidr_allow %s/%d" % (ip, (128 if ':' in ip else 32))
|
||||||
|
|
|
@ -28,6 +28,27 @@ def admip():
|
||||||
def wifiip():
|
def wifiip():
|
||||||
return wifiipof(hostname)
|
return wifiipof(hostname)
|
||||||
|
|
||||||
|
def ips_of_metadata(clients, vlan='adm'):
|
||||||
|
"""Renvoie la liste des IPs des machines de la liste ``clients``
|
||||||
|
#TODO: sur le vlan ``vlan``
|
||||||
|
sur le vlan adm
|
||||||
|
|
||||||
|
Renvoie les Ipv4 et Ipv6.
|
||||||
|
|
||||||
|
``clients`` est une liste de ClientMetadata, qui peut être obtenue via
|
||||||
|
metadata.query.by_groups (ou similaire)
|
||||||
|
"""
|
||||||
|
out = []
|
||||||
|
for client in clients:
|
||||||
|
host = client.hostname
|
||||||
|
for res in socket.getaddrinfo(host, None, socket.AF_UNSPEC, socket.SOCK_STREAM):
|
||||||
|
# if res[0] == socket.AF_INET6:
|
||||||
|
# suffix = '/128'
|
||||||
|
# else:
|
||||||
|
# suffix = '/32'
|
||||||
|
out.append(res[4][0])
|
||||||
|
return out
|
||||||
|
|
||||||
ip_vlan = {
|
ip_vlan = {
|
||||||
'sable' : {
|
'sable' : {
|
||||||
'vlan-radin' : '10.42.0.1',
|
'vlan-radin' : '10.42.0.1',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue