diff options
Diffstat (limited to 'source4/scripting/python')
| -rw-r--r-- | source4/scripting/python/samba/provision.py | 31 | 
1 files changed, 28 insertions, 3 deletions
diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py index 67f8cf7cc2..0119f40c7f 100644 --- a/source4/scripting/python/samba/provision.py +++ b/source4/scripting/python/samba/provision.py @@ -244,6 +244,7 @@ def provision_paths_from_lp(lp, dnsdomain):      paths.templates = os.path.join(paths.private_dir, "templates.ldb")      paths.dns = os.path.join(paths.private_dir, dnsdomain + ".zone")      paths.namedconf = os.path.join(paths.private_dir, "named.conf") +    paths.namedtxt = os.path.join(paths.private_dir, "named.txt")      paths.krb5conf = os.path.join(paths.private_dir, "krb5.conf")      paths.winsdb = os.path.join(paths.private_dir, "wins.ldb")      paths.s4_ldapi_path = os.path.join(paths.private_dir, "ldapi") @@ -1045,6 +1046,7 @@ def provision(setup_dir, message, session_info,          policy_path = os.path.join(paths.sysvol, names.dnsdomain, "Policies",                                      "{" + policyguid + "}")          os.makedirs(policy_path, 0755) +        open(os.path.join(policy_path, "GPT.INI"), 'w').write("")          os.makedirs(os.path.join(policy_path, "Machine"), 0755)          os.makedirs(os.path.join(policy_path, "User"), 0755)          if not os.path.isdir(paths.netlogon): @@ -1083,12 +1085,15 @@ def provision(setup_dir, message, session_info,                               hostip6=hostip6, hostname=names.hostname,                               dnspass=dnspass, realm=names.realm,                               domainguid=domainguid, hostguid=hostguid) -            message("Please install the zone located in %s into your DNS server" % paths.dns)              create_named_conf(paths.namedconf, setup_path, realm=names.realm, +                              dnsdomain=names.dnsdomain, private_dir=paths.private_dir) + +            create_named_txt(paths.namedtxt, setup_path, realm=names.realm,                                dnsdomain=names.dnsdomain, private_dir=paths.private_dir,                                keytab_name=paths.dns_keytab) -            message("See %s for example configuration statements for secure GSS-TSIG updates" % paths.namedconf) +            message("See %s for an example configuration include file for BIND" % paths.namedconf) +            message("and %s for further documentation required for secure DNS updates" % paths.namedtxt)              create_krb5_conf(paths.krb5conf, setup_path, dnsdomain=names.dnsdomain,                               hostname=names.hostname, realm=names.realm) @@ -1378,7 +1383,7 @@ def create_zone_file(path, setup_path, dnsdomain, domaindn,  def create_named_conf(path, setup_path, realm, dnsdomain, -                      private_dir, keytab_name): +                      private_dir):      """Write out a file containing zone statements suitable for inclusion in a      named.conf file (including GSS-TSIG configuration). @@ -1394,8 +1399,28 @@ def create_named_conf(path, setup_path, realm, dnsdomain,              "DNSDOMAIN": dnsdomain,              "REALM": realm,              "REALM_WC": "*." + ".".join(realm.split(".")[1:]), +            "PRIVATE_DIR": private_dir +            }) + +def create_named_txt(path, setup_path, realm, dnsdomain, +                      private_dir, keytab_name): +    """Write out a file containing zone statements suitable for inclusion in a +    named.conf file (including GSS-TSIG configuration). +     +    :param path: Path of the new named.conf file. +    :param setup_path: Setup path function. +    :param realm: Realm name +    :param dnsdomain: DNS Domain name +    :param private_dir: Path to private directory +    :param keytab_name: File name of DNS keytab file +    """ + +    setup_file(setup_path("named.txt"), path, { +            "DNSDOMAIN": dnsdomain, +            "REALM": realm,              "DNS_KEYTAB": keytab_name,              "DNS_KEYTAB_ABS": os.path.join(private_dir, keytab_name), +            "PRIVATE_DIR": private_dir          })  def create_krb5_conf(path, setup_path, dnsdomain, hostname, realm):  | 
