Fichier de zone spcial pour Ariane.
Merci le CRI de faire la gueule, mais on va se dbrouiller sans vous. Ariane pense qu'il est secondaire sur crans.org, il croit donc qu'il est autoritaire sur crans.org et ne connat pas l'existence des zones wifi et ferme. On lui prsente donc un fichier o ces zones sont inclues dans crans.org darcs-hash:20050310231006-d1718-60babf704589ca2efceb43a03d0143e030341b2f.gz
This commit is contained in:
parent
86b61e33c8
commit
5e533c467e
1 changed files with 39 additions and 4 deletions
|
@ -111,9 +111,9 @@ zone "%(NOM_zone)s" {
|
||||||
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 })
|
||||||
|
|
||||||
fd.close()
|
fd.close()
|
||||||
|
|
||||||
|
|
||||||
def _gen(self) :
|
def _gen(self) :
|
||||||
### Génération du numéro de série
|
### Génération du numéro de série
|
||||||
# Le + 1000.... s'explique pas l'idée précédente et peu pratique d'avoir
|
# Le + 1000.... s'explique pas l'idée précédente et peu pratique d'avoir
|
||||||
|
@ -135,6 +135,7 @@ zone "%(NOM_zone)s" {
|
||||||
|
|
||||||
### Tri des machines
|
### Tri des machines
|
||||||
direct = {} # format : { zone : [ lignes correspondantes] }
|
direct = {} # format : { zone : [ lignes correspondantes] }
|
||||||
|
direct['ariane'] = "" # Pour Ariane
|
||||||
reverse = {}
|
reverse = {}
|
||||||
warnings = ''
|
warnings = ''
|
||||||
|
|
||||||
|
@ -155,6 +156,9 @@ zone "%(NOM_zone)s" {
|
||||||
ligne = "%s\tIN\tA\t%s\n" % ( nom, machine.ip() )
|
ligne = "%s\tIN\tA\t%s\n" % ( nom, machine.ip() )
|
||||||
try : direct[zone] += ligne
|
try : direct[zone] += ligne
|
||||||
except : direct[zone] = ligne
|
except : direct[zone] = ligne
|
||||||
|
if zone[-9:] == "crans.org":
|
||||||
|
direct['ariane'] += ("%s\tIN\tA\t%s\n" % ((nom + "." + zone)[:-10],
|
||||||
|
machine.ip() )).encode('iso-8859-15')
|
||||||
elif self.verbose :
|
elif self.verbose :
|
||||||
warnings += u'Résolution directe ignorée (mid=%s) : zone non autoritaire (%s)\n' % ( machine.id().encode('iso-8859-1'), zone.encode('iso-8859-1') )
|
warnings += u'Résolution directe ignorée (mid=%s) : zone non autoritaire (%s)\n' % ( machine.id().encode('iso-8859-1'), zone.encode('iso-8859-1') )
|
||||||
|
|
||||||
|
@ -167,6 +171,10 @@ zone "%(NOM_zone)s" {
|
||||||
alias = alias.encode('iso-8859-1')
|
alias = alias.encode('iso-8859-1')
|
||||||
try : direct[alias] += ligne
|
try : direct[alias] += ligne
|
||||||
except : direct[alias] = ligne
|
except : direct[alias] = ligne
|
||||||
|
if alias == "crans.org":
|
||||||
|
direct['ariane'] += ("@\tIN\tA\t%s\n" % machine.ip()).encode('iso-8859-15')
|
||||||
|
elif alias[-9:] == "crans.org":
|
||||||
|
direct['ariane'] += ("%s\tIN\tA\t%s\n" % (alias[:-10], machine.ip())).encode('iso-8859-15')
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Bon format ?
|
# Bon format ?
|
||||||
|
@ -188,6 +196,9 @@ zone "%(NOM_zone)s" {
|
||||||
ligne = "%s\tIN\tCNAME\t%s.\n" % ( nom, machine.nom() )
|
ligne = "%s\tIN\tCNAME\t%s.\n" % ( nom, machine.nom() )
|
||||||
try : direct[zone] += ligne
|
try : direct[zone] += ligne
|
||||||
except : direct[zone] = ligne
|
except : direct[zone] = ligne
|
||||||
|
if zone[-9:] == "crans.org":
|
||||||
|
direct['ariane'] += ("%s\tIN\tCNAME\t%s.\n" % ((nom + "." + zone)[:-10],
|
||||||
|
machine.nom() )).encode('iso-8859-15')
|
||||||
|
|
||||||
# Le reverse
|
# Le reverse
|
||||||
if AddrInNets(machine.ip(), self.zones_reverse) :
|
if AddrInNets(machine.ip(), self.zones_reverse) :
|
||||||
|
@ -202,17 +213,27 @@ zone "%(NOM_zone)s" {
|
||||||
warnings += u'Résolution inverse ignorée (mid=%s) : ip sur zone non autoritaire (%s)\n' % ( machine.id().encode('iso-8859-1'), machine.ip().encode('iso-8859-1') )
|
warnings += u'Résolution inverse ignorée (mid=%s) : ip sur zone non autoritaire (%s)\n' % ( machine.id().encode('iso-8859-1'), machine.ip().encode('iso-8859-1') )
|
||||||
|
|
||||||
### Ajouts pour les fichiers de résolution directs
|
### Ajouts pour les fichiers de résolution directs
|
||||||
for zone in direct.keys() :
|
for zone in filter(lambda x: x != 'ariane', direct.keys()) :
|
||||||
# MXs
|
# MXs
|
||||||
direct[zone] = MX % { 'zone' : zone } + direct[zone]
|
direct[zone] = MX % { 'zone' : zone } + direct[zone]
|
||||||
|
if zone[-9:] == "crans.org":
|
||||||
|
direct['ariane'] = MX % { 'zone' : zone } + direct['ariane']
|
||||||
|
|
||||||
### Ecriture des fichiers de zone et préparation du fichier de définition
|
### Ecriture des fichiers de zone et préparation du fichier de définition
|
||||||
f = ''
|
f = ''
|
||||||
for zone, lignes in direct.items() + reverse.items() :
|
for zone, lignes in direct.items() + reverse.items() :
|
||||||
|
if zone == 'ariane':
|
||||||
|
continue
|
||||||
file = self.DNS_DIR + 'db.' + zone
|
file = self.DNS_DIR + 'db.' + zone
|
||||||
fd = self._open_conf(file,';')
|
fd = self._open_conf(file,';')
|
||||||
fd.write(self.zone_entete % \
|
if zone != 'ariane':
|
||||||
{ 'zone' : zone, 'serveur_autoritaire' : self.DNSs[0] , 'serial' : serial } )
|
fd.write(self.zone_entete % \
|
||||||
|
{ 'zone' : zone, 'serveur_autoritaire' : self.DNSs[0] ,
|
||||||
|
'serial' : serial } )
|
||||||
|
else:
|
||||||
|
fd.write(self.zone_entete % \
|
||||||
|
{ 'zone' : 'crans.org', 'serveur_autoritaire' : self.DNSs[0] ,
|
||||||
|
'serial' : serial } )
|
||||||
fd.write('\n')
|
fd.write('\n')
|
||||||
fd.write(DNS)
|
fd.write(DNS)
|
||||||
fd.write(lignes)
|
fd.write(lignes)
|
||||||
|
@ -224,6 +245,20 @@ zone "%(NOM_zone)s" {
|
||||||
fd.write(f)
|
fd.write(f)
|
||||||
fd.close()
|
fd.close()
|
||||||
|
|
||||||
|
# Pour ariane
|
||||||
|
fd = self._open_conf("%s.ariane" % self.DNS_CONF, '//')
|
||||||
|
for zone in filter(lambda x: x!= 'ariane', direct):
|
||||||
|
if zone == "crans.org":
|
||||||
|
fd.write(self.zone_template % { 'NOM_zone' : zone,
|
||||||
|
'FICHIER_zone' : self.DNS_DIR + 'db.ariane' })
|
||||||
|
elif zone[-9:] != "crans.org":
|
||||||
|
fd.write(self.zone_template % { 'NOM_zone' : zone,
|
||||||
|
'FICHIER_zone' : self.DNS_DIR + 'db.' + zone })
|
||||||
|
for zone in reverse :
|
||||||
|
fd.write(self.zone_template % { 'NOM_zone' : zone,
|
||||||
|
'FICHIER_zone' : self.DNS_DIR + 'db.' + zone })
|
||||||
|
fd.close()
|
||||||
|
|
||||||
return warnings
|
return warnings
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue