mirror of
https://github.com/samba-team/samba.git
synced 2025-02-03 13:47:25 +03:00
r22756: Make it easier to setup an LDAP replica. Provision with
--partitions-only (suggestions for a better name welcome) will setup the partitions records, but no any data in those partitions. This can then point at the already configured remote LDAP server. Andrew Bartlett (This used to be commit ee7b06fc832ca7c572205c7c268c3c7c552effa0)
This commit is contained in:
parent
19d56c775a
commit
112728c651
@ -453,7 +453,7 @@ function provision_fix_subobj(subobj, message, paths)
|
||||
return true;
|
||||
}
|
||||
|
||||
function provision_become_dc(subobj, message, paths, session_info)
|
||||
function provision_become_dc(subobj, message, erase, paths, session_info)
|
||||
{
|
||||
var lp = loadparm_init();
|
||||
var sys = sys_init();
|
||||
@ -478,8 +478,10 @@ function provision_become_dc(subobj, message, paths, session_info)
|
||||
message("Setting up " + paths.samdb + " rootDSE\n");
|
||||
setup_add_ldif("provision_rootdse_add.ldif", info, samdb, false);
|
||||
|
||||
message("Erasing data from partitions\n");
|
||||
ldb_erase_partitions(info, samdb, undefined);
|
||||
if (erase) {
|
||||
message("Erasing data from partitions\n");
|
||||
ldb_erase_partitions(info, samdb, undefined);
|
||||
}
|
||||
|
||||
message("Setting up " + paths.samdb + " indexes\n");
|
||||
setup_add_ldif("provision_index.ldif", info, samdb, false);
|
||||
|
@ -29,6 +29,7 @@ options = GetOptions(ARGV,
|
||||
'users=s',
|
||||
'quiet',
|
||||
'blank',
|
||||
'partitions-only',
|
||||
'ldap-base',
|
||||
'ldap-backend=s',
|
||||
'ldap-module=s',
|
||||
@ -79,6 +80,7 @@ provision [options]
|
||||
--users GROUPNAME choose 'users' group
|
||||
--quiet Be quiet
|
||||
--blank do not add users or groups, just the structure
|
||||
--partitions-only Configure Samba's partitions, but do not modify them (ie, join a BDC)
|
||||
--ldap-base output only an LDIF file, suitable for creating an LDAP baseDN
|
||||
--ldap-backend LDAPSERVER LDAP server to use for this provision
|
||||
--ldap-module= MODULE LDB mapping module to use for the LDAP backend
|
||||
@ -118,7 +120,7 @@ var blank = (options["blank"] != undefined);
|
||||
var ldapbase = (options["ldap-base"] != undefined);
|
||||
var ldapbackend = (options["ldap-backend"] != undefined);
|
||||
var ldapmodule = (options["ldap-module"] != undefined);
|
||||
|
||||
var partitions_only = (options["partitions-only"] != undefined);
|
||||
if (options["aci"] != undefined) {
|
||||
message("set ACI: %s\n", subobj["ACI"]);
|
||||
}
|
||||
@ -148,6 +150,8 @@ message("Provisioning for %s in realm %s\n", subobj.DOMAIN, subobj.REALM);
|
||||
message("Using administrator password: %s\n", subobj.ADMINPASS);
|
||||
if (ldapbase) {
|
||||
provision_ldapbase(subobj, message, paths);
|
||||
} else if (partitions_only) {
|
||||
provision_become_dc(subobj, message, false, paths, system_session);
|
||||
} else {
|
||||
provision(subobj, message, blank, paths, system_session, creds, ldapbackend);
|
||||
provision_dns(subobj, message, paths, system_session, creds);
|
||||
|
@ -224,7 +224,7 @@ static NTSTATUS test_become_dc_prepare_db(void *private_data,
|
||||
"\n"
|
||||
"var system_session = system_session();\n"
|
||||
"\n"
|
||||
"var ok = provision_become_dc(subobj, message, paths, system_session);\n"
|
||||
"var ok = provision_become_dc(subobj, message, true, paths, system_session);\n"
|
||||
"assert(ok);\n"
|
||||
"\n"
|
||||
"return 0;\n",
|
||||
|
Loading…
x
Reference in New Issue
Block a user