[PATCHES] samba-tool: add --site parameter to provision command
Bjoern Baumbach
bb at sernet.de
Wed Jun 4 06:25:44 MDT 2014
Hi!
Currently there is no option specify the Domain Controllers site when
setting up a new DC in a new forest. There is also no samba-tool command
to move a DC to another site.
Please review the attached patches that add the --site option to the
samba-tool domain provision command. This offers the option to specify a
default initial site name.
Best regards
Björn
--
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.sernet.de, mailto:kontakt at sernet.de
-------------- next part --------------
From 207b3d128770a1b4fbb5326c2598bd3526781e43 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Baumbach?= <bb at sernet.de>
Date: Mon, 26 May 2014 16:17:50 +0200
Subject: [PATCH 1/3] samba-tool: add --site parameter to provision command
This new parameter offers the option to specify a default initial site name.
Otherwise it will be "Default-First-Site-Name".
Signed-off-by: Björn Baumbach <bb at sernet.de>
---
python/samba/netcmd/domain.py | 5 ++++-
python/samba/provision/__init__.py | 10 +++++++---
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/python/samba/netcmd/domain.py b/python/samba/netcmd/domain.py
index 0e00bd5..b37ca1a 100644
--- a/python/samba/netcmd/domain.py
+++ b/python/samba/netcmd/domain.py
@@ -167,6 +167,8 @@ class cmd_domain_provision(Command):
help="set IPv4 ipaddress"),
Option("--host-ip6", type="string", metavar="IP6ADDRESS",
help="set IPv6 ipaddress"),
+ Option("--site", type="string", metavar="SITENAME",
+ help="set site name"),
Option("--adminpass", type="string", metavar="PASSWORD",
help="choose admin password (otherwise random)"),
Option("--krbtgtpass", type="string", metavar="PASSWORD",
@@ -244,6 +246,7 @@ class cmd_domain_provision(Command):
host_ip=None,
host_ip6=None,
adminpass=None,
+ site=None,
krbtgtpass=None,
machinepass=None,
dns_backend=None,
@@ -411,7 +414,7 @@ class cmd_domain_provision(Command):
domainguid=domain_guid, domainsid=domain_sid,
hostname=host_name,
hostip=host_ip, hostip6=host_ip6,
- ntdsguid=ntds_guid,
+ sitename=site, ntdsguid=ntds_guid,
invocationid=invocationid, adminpass=adminpass,
krbtgtpass=krbtgtpass, machinepass=machinepass,
dns_backend=dns_backend, dns_forwarder=dns_forwarder,
diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py
index 0acd6f4..ff27b9c 100644
--- a/python/samba/provision/__init__.py
+++ b/python/samba/provision/__init__.py
@@ -1749,7 +1749,7 @@ def interface_ips_v6(lp):
def provision_fill(samdb, secrets_ldb, logger, names, paths,
domainsid, schema=None,
targetdir=None, samdb_fill=FILL_FULL,
- hostip=None, hostip6=None,
+ hostip=None, hostip6=None, sitename=None,
next_rid=1000, dc_rid=None, adminpass=None, krbtgtpass=None,
domainguid=None, policyguid=None, policyguid_dc=None,
invocationid=None, machinepass=None, ntdsguid=None,
@@ -1823,10 +1823,13 @@ def provision_fill(samdb, secrets_ldb, logger, names, paths,
# It might be that this attribute does not exist in this schema
raise
+ if sitename is None:
+ sitename = DEFAULTSITE
+
setup_ad_dns(samdb, secrets_ldb, domainsid, names, paths, lp, logger,
hostip=hostip, hostip6=hostip6, dns_backend=dns_backend,
dnspass=dnspass, os_level=dom_for_fun_level,
- targetdir=targetdir, site=DEFAULTSITE, fill_level=samdb_fill)
+ targetdir=targetdir, site=sitename, fill_level=samdb_fill)
domainguid = samdb.searchone(basedn=samdb.get_default_basedn(),
attribute="objectGUID")
@@ -2152,7 +2155,8 @@ def provision(logger, session_info, smbconf=None,
if samdb_fill == FILL_FULL:
provision_fill(samdb, secrets_ldb, logger, names, paths,
schema=schema, targetdir=targetdir, samdb_fill=samdb_fill,
- hostip=hostip, hostip6=hostip6, domainsid=domainsid,
+ hostip=hostip, hostip6=hostip6, sitename=sitename,
+ domainsid=domainsid,
next_rid=next_rid, dc_rid=dc_rid, adminpass=adminpass,
krbtgtpass=krbtgtpass, domainguid=domainguid,
policyguid=policyguid, policyguid_dc=policyguid_dc,
--
1.7.9.5
From 566d6d71e10e57f76688e1dabe9fd4b13fa9f88a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Baumbach?= <bb at sernet.de>
Date: Wed, 28 May 2014 17:56:48 +0200
Subject: [PATCH 2/3] samba-tool domain: remove duplicate check if site is set
Signed-off-by: Björn Baumbach <bb at sernet.de>
---
python/samba/netcmd/domain.py | 3 ---
1 file changed, 3 deletions(-)
diff --git a/python/samba/netcmd/domain.py b/python/samba/netcmd/domain.py
index b37ca1a..2e7a9c7 100644
--- a/python/samba/netcmd/domain.py
+++ b/python/samba/netcmd/domain.py
@@ -512,9 +512,6 @@ class cmd_domain_dcpromo(Command):
else:
logger.setLevel(logging.INFO)
- if site is None:
- site = "Default-First-Site-Name"
-
netbios_name = lp.get("netbios name")
if not role is None:
--
1.7.9.5
From 3dd90ebf4930d03dd66dc33cf6b1c5b16fa64eb6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Baumbach?= <bb at sernet.de>
Date: Wed, 28 May 2014 17:57:35 +0200
Subject: [PATCH 3/3] samba-tool domain: define DEFAULTSITE globally and use
it
Signed-off-by: Björn Baumbach <bb at sernet.de>
---
python/samba/netcmd/domain.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/python/samba/netcmd/domain.py b/python/samba/netcmd/domain.py
index 2e7a9c7..ecfb513 100644
--- a/python/samba/netcmd/domain.py
+++ b/python/samba/netcmd/domain.py
@@ -76,6 +76,8 @@ from samba.provision.common import (
FILL_DRS
)
+DEFAULTSITE = "Default-First-Site-Name"
+
def get_testparm_var(testparm, smbconf, varname):
cmd = "%s -s -l --parameter-name='%s' %s 2>/dev/null" % (testparm, varname, smbconf)
output = os.popen(cmd, 'r').readline()
@@ -502,7 +504,7 @@ class cmd_domain_dcpromo(Command):
net = Net(creds, lp, server=credopts.ipaddress)
if site is None:
- site = "Default-First-Site-Name"
+ site = DEFAULTSITE
logger = self.get_logger()
if verbose:
@@ -581,7 +583,7 @@ class cmd_domain_join(Command):
net = Net(creds, lp, server=credopts.ipaddress)
if site is None:
- site = "Default-First-Site-Name"
+ site = DEFAULTSITE
logger = self.get_logger()
if verbose:
--
1.7.9.5
More information about the samba-technical
mailing list