1
0
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:
Andrew Bartlett 2007-05-08 04:38:16 +00:00 committed by Gerald (Jerry) Carter
parent 19d56c775a
commit 112728c651
3 changed files with 11 additions and 5 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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",