Le fichier zones_crans est dorenavantgere par cfengine
darcs-hash:20070509125836-9e428-915964fd108acd440a8e2126e15ac0fbe1e5a7ee.gz
This commit is contained in:
parent
727c6a4ba3
commit
59469b06de
1 changed files with 32 additions and 14 deletions
|
@ -29,24 +29,29 @@ la base LDAP
|
||||||
|
|
||||||
### Fichiers à écrire
|
### Fichiers à écrire
|
||||||
# Répertoire d'écriture des fichiers de zone
|
# Répertoire d'écriture des fichiers de zone
|
||||||
DNS_DIR='/etc/bind/generated/' # Avec un / à la fin
|
DNS_DIR = '/etc/bind/generated/' # Avec un / à la fin
|
||||||
# Fichier de définition des zones pour le maître
|
# Fichier de définition des zones pour le maître
|
||||||
DNS_CONF=DNS_DIR + 'zones_crans'
|
DNS_CONF = DNS_DIR + 'zones_crans'
|
||||||
|
|
||||||
|
# Fichier de définition des zones pour les esclaves géré par cfengine
|
||||||
|
DNS_CONF_CFENGINE = "/etc/cfengine/files/etc/bind/generated/zones_crans.esclave"
|
||||||
|
|
||||||
### Sur quelles zones on a autorité ?
|
### Sur quelles zones on a autorité ?
|
||||||
## En cas de modification de ces zones penser à regéner le fichier de
|
## En cas de modification de ces zones penser à regéner le fichier de
|
||||||
## zone des esclaves (python /usr/scripts/gestion/gen_confs/bind.py)
|
## zone des esclaves (sur le serveur principal de cfengine : python /usr/scripts/gestion/gen_confs/bind.py puis lancer cfrun)
|
||||||
# Résolution directe
|
# Résolution directe
|
||||||
zones_direct = [ 'crans.org' , 'crans.ens-cachan.fr', 'wifi.crans.org' , 'ferme.crans.org' , 'clubs.ens-cachan.fr', 'adm.crans.org' ]
|
zones_direct = [ 'crans.org' , 'crans.ens-cachan.fr', 'wifi.crans.org' , 'ferme.crans.org' , 'clubs.ens-cachan.fr', 'adm.crans.org' ]
|
||||||
# Résolution inverse
|
# Résolution inverse
|
||||||
zones_reverse = [ '138.231.136.0/21', '138.231.144.0/24', '138.231.148.0/22' ]
|
zones_reverse = [ '138.231.136.0/21', '138.231.144.0/24', '138.231.148.0/22' ]
|
||||||
|
|
||||||
### Liste DNS
|
### Liste DNS
|
||||||
# Le premier est doit être le maitre
|
# Le premier doit être le maitre
|
||||||
DNSs = [ 'rouge.crans.org' , 'sila.crans.org' , 'freebox.crans.org' ]
|
DNSs = [ 'rouge.crans.org' , 'sila.crans.org' , 'freebox.crans.org' ]
|
||||||
|
DNSs_private = ['vert.adm.crans.org']
|
||||||
|
ip_master_DNS = "138.231.136.3"
|
||||||
|
|
||||||
### Liste des délégations de zone
|
### Liste des délégations de zone
|
||||||
# Pour les demandes des ces zones, le DNS dira d'aller voir les serveurs listés ici
|
# Pour les demandes de ces zones, le DNS dira d'aller voir les serveurs listés ici
|
||||||
# Pour les noms des serveurs on met l'IP sans point ou le nom avec un point
|
# Pour les noms des serveurs on met l'IP sans point ou le nom avec un point
|
||||||
DELEG = { 'tv.crans.org' : ['rouge.crans.org.' , 'sila.crans.org.' , 'freebox.crans.org.', 'mouton.ferme.crans.org.'] }
|
DELEG = { 'tv.crans.org' : ['rouge.crans.org.' , 'sila.crans.org.' , 'freebox.crans.org.', 'mouton.ferme.crans.org.'] }
|
||||||
|
|
||||||
|
@ -74,12 +79,12 @@ zone "%(NOM_zone)s" {
|
||||||
file "%(FICHIER_zone)s";
|
file "%(FICHIER_zone)s";
|
||||||
};
|
};
|
||||||
"""
|
"""
|
||||||
# Syntaxe utilisée dans le fichier DNS_CONF pour définir une zone sur le maître
|
# Syntaxe utilisée dans le fichier DNS_CONF_CFENFINE pour définir une zone sur un esclave
|
||||||
zone_template_slave="""
|
zone_template_slave="""
|
||||||
zone "%(NOM_zone)s" {
|
zone "%(NOM_zone)s" {
|
||||||
type slave;
|
type slave;
|
||||||
file "%(FICHIER_zone)s";
|
file "%(FICHIER_zone)s";
|
||||||
masters { 138.231.136.3; };
|
masters { %(ip_master_DNS)s; };
|
||||||
};
|
};
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -112,10 +117,11 @@ zone "%(NOM_zone)s" {
|
||||||
n[2] += 1
|
n[2] += 1
|
||||||
|
|
||||||
# Ecriture
|
# Ecriture
|
||||||
fd = self._open_conf(self.DNS_CONF,'//')
|
fd = self._open_conf(self.DNS_CONF_CFENGINE,'//')
|
||||||
for zone in zones :
|
for zone in zones :
|
||||||
fd.write(self.zone_template_slave % { 'NOM_zone' : zone,
|
fd.write(self.zone_template_slave % { 'NOM_zone' : zone,
|
||||||
'FICHIER_zone' : self.DNS_DIR + 'db.' + zone })
|
'FICHIER_zone' : self.DNS_DIR + 'db.' + zone,
|
||||||
|
'ip_master_DNS': self.ip_master_DNS})
|
||||||
|
|
||||||
fd.close()
|
fd.close()
|
||||||
|
|
||||||
|
@ -255,9 +261,21 @@ zone "%(NOM_zone)s" {
|
||||||
|
|
||||||
if __name__ == '__main__' :
|
if __name__ == '__main__' :
|
||||||
from socket import gethostname
|
from socket import gethostname
|
||||||
if gethostname().split(".")[0] == 'rouge' :
|
from config import cfengine_main
|
||||||
print "Ce serveur est maître !, utiliser generate."
|
def short_name(fullhostname):
|
||||||
else :
|
return fullhostname.split(".")[0]
|
||||||
print "Reconfiguration de bind en esclave (penser à le relancer)."
|
hostname = short_name(gethostname())
|
||||||
|
if hostname == short_name(cfengine_main):
|
||||||
|
print "Reconfiguration du fichier de cfengine pour configurer le bind d'un serveur en esclave (pensez à lancer cfrun)."
|
||||||
c = dns()
|
c = dns()
|
||||||
c.gen_slave()
|
c.gen_slave()
|
||||||
|
if hostname == short_name(dns.DNSs[0]):
|
||||||
|
print "Ce serveur est également serveur maitre, mais la reconfiguration du DNS maitre se fait par generate."
|
||||||
|
elif hostname == short_name(dns.DNSs[0]):
|
||||||
|
print "Ce serveur est maître ! Utilisez generate."
|
||||||
|
elif hostname in map(lambda fullhostname : short_name(fullhostname),dns.DNSs[1:]+dns.DNSs_private):
|
||||||
|
print "Ce serveur est esclave! Lancez le sur %s, puis lancez cfrun" % cfengine_main
|
||||||
|
else:
|
||||||
|
print "Ce serveur ne correspond à rien pour la configuration DNS."
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue