| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import os
- class Zone:
- def __init__(self, entries, program):
- self.entries = entries
- self.program = program
- if not os.path.exists('{0}/zones'.format(self.program)):
- os.makedirs('{0}/zones'.format(self.program))
- def zones(self):
- for entry in self.entries:
- with open('{0}/zones/{z.domain}'.format(self.program, z=entry), 'w') as f:
- f.write('$ORIGIN {z.domain}.\n'.format(z=entry))
- f.write('$TTL 86400\n')
- f.write('@\t\tIN\t\tSOA\t\tdns.master.test.\t\thost.master.test. (\n')
- f.write('\t\t\t\t\t\t20200327\n')
- f.write('\t\t\t\t\t\t21600\n')
- f.write('\t\t\t\t\t\t3600\n')
- f.write('\t\t\t\t\t\t604800\n')
- f.write('\t\t\t\t\t\t86400 )\n')
- f.write('\n')
- f.write('\t\tIN\t\tNS\t\tdns.master.test.\n')
- f.write('\t\tIN\t\tA\t\t{z.content}\n'.format(z=entry))
- for record in entry.subdomains:
- if record.type == 'A':
- f.write('{z.domain}\tIN\t\tA\t\t{z.content}\n'.format(z=record))
- def named(self, dnssec):
- with open('{0}/named.conf.local'.format(self.program), 'w') as f:
- for entry in self.entries:
- f.write('zone\t \"{z.domain}\"\t{{\n'.format(z=entry))
- f.write('\t\ttype master;\n')
- if dnssec:
- f.write('\t\tfile\t\"/etc/{0}/zones/{z.domain}.signed\";\n'.format(self.program, z=entry))
- else:
- f.write('\t\tfile\t\"/etc/{0}/zones/{z.domain}\";\n'.format(self.program, z=entry))
- f.write('};\n')
- f.write('\n')
|