s4-provision: Add DNS backend option to provision
authorAmitay Isaacs <amitay@gmail.com>
Mon, 5 Sep 2011 06:09:59 +0000 (16:09 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 7 Sep 2011 22:35:37 +0000 (00:35 +0200)
This option is introduced temporarily to test bind9 backend with
and without dlz_dlopen module.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
source4/scripting/python/samba/provision/__init__.py
source4/setup/provision

index 61d016c864cbb1e9c515eb7b637835a262ab77a8..9c2815721fc6975201140a4ffe18ae60fd77aa80 100644 (file)
@@ -1518,7 +1518,8 @@ def provision(logger, session_info, credentials, smbconf=None,
         domain=None, hostname=None, hostip=None, hostip6=None, domainsid=None,
         next_rid=1000, dc_rid=None, adminpass=None, ldapadminpass=None, krbtgtpass=None,
         domainguid=None, policyguid=None, policyguid_dc=None,
-        invocationid=None, machinepass=None, ntdsguid=None, dnspass=None,
+        invocationid=None, machinepass=None, ntdsguid=None,
+        dns_backend=None, dnspass=None,
         root=None, nobody=None, users=None, wheel=None, backup=None, aci=None,
         serverrole=None, dom_for_fun_level=None, ldap_backend_extra_port=None,
         ldap_backend_forced_uri=None, backend_type=None, sitename=None,
@@ -1783,7 +1784,8 @@ def provision(logger, session_info, credentials, smbconf=None,
                     dnsdomain=names.dnsdomain,
                     dns_keytab_path=paths.dns_keytab, dnspass=dnspass)
 
-                setup_ad_dns(samdb, names=names, hostip=hostip, hostip6=hostip6)
+                setup_ad_dns(samdb, names, logger, hostip=hostip, hostip6=hostip6,
+                            dns_backend=dns_backend, os_level=dom_for_fun_level)
 
                 domainguid = samdb.searchone(basedn=domaindn,
                     attribute="objectGUID")
@@ -1911,7 +1913,7 @@ def provision_become_dc(smbconf=None, targetdir=None,
         serverdn=None, domain=None, hostname=None, domainsid=None,
         adminpass=None, krbtgtpass=None, domainguid=None, policyguid=None,
         policyguid_dc=None, invocationid=None, machinepass=None, dnspass=None,
-        root=None, nobody=None, users=None, wheel=None, backup=None,
+        dns_backend=None, root=None, nobody=None, users=None, wheel=None, backup=None,
         serverrole=None, ldap_backend=None, ldap_backend_type=None,
         sitename=None, debuglevel=1):
 
@@ -1924,7 +1926,7 @@ def provision_become_dc(smbconf=None, targetdir=None,
         configdn=configdn, serverdn=serverdn, domain=domain,
         hostname=hostname, hostip=None, domainsid=domainsid,
         machinepass=machinepass, serverrole="domain controller",
-        sitename=sitename)
+        sitename=sitename, dns_backend=dns_backend, dnspass=dnspass)
     res.lp.set("debuglevel", str(debuglevel))
     return res
 
index 37faafd812c978c1be317586a425566ce8f5ecc7..39ef62d4b3f5cbff2032845adee6085218488539 100755 (executable)
@@ -74,6 +74,9 @@ parser.add_option("--krbtgtpass", type="string", metavar="PASSWORD",
                help="choose krbtgt password (otherwise random)")
 parser.add_option("--machinepass", type="string", metavar="PASSWORD", 
                help="choose machine password (otherwise random)")
+parser.add_option("--dns-backend", type="choice", metavar="NAMESERVER-BACKEND",
+                 choices=["SAMBA", "BIND9", "BIND9_DLZ"],
+        help="The DNS server backend. SAMBA is the builtin name server (experimental), BIND9 uses bind9 text database to store zone information (default), BIND9_DLZ uses samba4 AD to store zone information (recommended)")
 parser.add_option("--dnspass", type="string", metavar="PASSWORD", 
                help="choose dns password (otherwise random)")
 parser.add_option("--ldapadminpass", type="string", metavar="PASSWORD", 
@@ -244,6 +247,7 @@ try:
                  ntdsguid=opts.ntds_guid,
                  invocationid=opts.invocationid, adminpass=opts.adminpass,
                  krbtgtpass=opts.krbtgtpass, machinepass=opts.machinepass,
+                 dns_backend=opts.dns_backend,
                  dnspass=opts.dnspass, root=opts.root, nobody=opts.nobody,
                  wheel=opts.wheel, users=opts.users,
                  serverrole=server_role, dom_for_fun_level=dom_for_fun_level,