mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-04 22:20:28 -05:00
Issue#8511 - Update documentation and configs to correctly use multiprovider
This commit is contained in:
parent
a49b553676
commit
3716245fec
24 changed files with 114 additions and 107 deletions
|
|
@ -639,8 +639,8 @@ ldapexop
|
|||
objectIdentifier
|
||||
objectidentifier
|
||||
deallocators
|
||||
mirrormode
|
||||
MirrorMode
|
||||
multiprovider
|
||||
MultiProvider
|
||||
loopDetect
|
||||
SIGHUP
|
||||
authMethodNotSupported
|
||||
|
|
@ -1543,7 +1543,7 @@ builtin
|
|||
matcheduid
|
||||
Locator
|
||||
ldapmaster
|
||||
olcMirrorMode
|
||||
olcMultiProvider
|
||||
libldap
|
||||
refreshDeletes
|
||||
aliasProblem
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ server is moved to the head, so that it will be first contacted the next time
|
|||
a connection needs be created.
|
||||
|
||||
This feature can be used to provide a form of load balancing when using
|
||||
{{SECT: MirrorMode replication}}.
|
||||
{{SECT: Mirror mode replication}}.
|
||||
|
||||
H3: Further Information
|
||||
|
||||
|
|
|
|||
|
|
@ -435,7 +435,10 @@ replication scheme is vital in high-volume environments where a
|
|||
single {{slapd}} installation just doesn't provide the necessary availability
|
||||
or reliability. For extremely demanding environments where a
|
||||
single point of failure is not acceptable, {{multi-provider}} replication
|
||||
is also available. {{slapd}} includes support for {{LDAP Sync}}-based
|
||||
is also available. With {{multi-provider}} replication two or more nodes can
|
||||
accept write operations allowing for redundancy at the provider level.
|
||||
|
||||
{{slapd}} includes support for {{LDAP Sync}}-based
|
||||
replication.
|
||||
|
||||
{{B:Proxy Cache}}: {{slapd}} can be configured as a caching
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ type are:
|
|||
.{{S: }}
|
||||
+{{B: Start the server}}
|
||||
|
||||
Obviously this doesn't cater for any complicated deployments like {{SECT: MirrorMode}} or {{SECT: N-Way Multi-Provider}},
|
||||
Obviously this doesn't cater for any complicated deployments like {{SECT: Mirror mode}} or {{SECT: N-Way Multi-Provider}},
|
||||
but following the above sections and using either commercial support or community support should help. Also check the
|
||||
{{SECT: Troubleshooting}} section.
|
||||
|
||||
|
|
|
|||
|
|
@ -13,16 +13,17 @@ a {{master}} server and some number of {{slave}} servers. A master
|
|||
accepted directory updates from other clients, and a slave only
|
||||
accepted updates from a (single) master. The replication structure
|
||||
was rigidly defined and any particular database could only fulfill
|
||||
a single role, either master or slave.
|
||||
a single role, either master or slave. Another historic term introduced
|
||||
with OpenLDAP 2.4 was multimaster.
|
||||
|
||||
As OpenLDAP now supports a wide variety of replication topologies, these
|
||||
terms have been deprecated in favor of {{provider}} and
|
||||
{{consumer}}: A provider replicates directory updates to consumers;
|
||||
consumers receive replication updates from providers. Unlike the
|
||||
rigidly defined master/slave relationships, provider/consumer roles
|
||||
are quite fluid: replication updates received in a consumer can be
|
||||
further propagated by that consumer to other servers, so a consumer
|
||||
can also act simultaneously as a provider. Also, a consumer need not
|
||||
terms have been deprecated in favor of {{provider}}/{{multi-provider}} and
|
||||
{{consumer}}: A provider can accept external write operations and make them
|
||||
available for retrieval by consumers; consumers request replication updates from
|
||||
providers. Unlike the rigidly defined master/slave relationships,
|
||||
provider/consumer roles are quite fluid: replication updates received in a
|
||||
consumer can be further propagated by that consumer to other servers, so a
|
||||
consumer can also act simultaneously as a provider. Also, a consumer need not
|
||||
be an actual LDAP server; it may be just an LDAP client.
|
||||
|
||||
The following sections will describe the replication technology and
|
||||
|
|
@ -392,11 +393,11 @@ writes to the clients that are partitioned from the single provider
|
|||
|
||||
For configuration, please see the {{SECT:N-Way Multi-Provider}} section below
|
||||
|
||||
H3: MirrorMode replication
|
||||
H3: Mirror mode replication
|
||||
|
||||
MirrorMode is a hybrid configuration that provides all of the consistency
|
||||
Mirror mode is a hybrid configuration that provides all of the consistency
|
||||
guarantees of single-provider replication, while also providing the high
|
||||
availability of multi-provider. In MirrorMode two providers are set up to
|
||||
availability of multi-provider. In Mirror mode two providers are set up to
|
||||
replicate from each other (as a multi-provider configuration), but an
|
||||
external frontend is employed to direct all writes to only one of
|
||||
the two servers. The second provider will only be used for writes if
|
||||
|
|
@ -405,7 +406,7 @@ directing all writes to the second provider. When a crashed provider is
|
|||
repaired and restarted it will automatically catch up to any changes
|
||||
on the running provider and resync.
|
||||
|
||||
H4: Arguments for MirrorMode
|
||||
H4: Arguments for Mirror mode
|
||||
|
||||
* Provides a high-availability (HA) solution for directory writes (replicas handle reads)
|
||||
* As long as one provider is operational, writes can safely be accepted
|
||||
|
|
@ -414,16 +415,16 @@ can be ready to take over (hot standby)
|
|||
* Syncrepl also allows the provider nodes to re-synchronize after any downtime
|
||||
|
||||
|
||||
H4: Arguments against MirrorMode
|
||||
H4: Arguments against Mirror mode
|
||||
|
||||
* MirrorMode is not what is termed as a Multi-Provider solution. This is because
|
||||
* Mirror mode is not what is termed as a Multi-Provider solution. This is because
|
||||
writes have to go to just one of the mirror nodes at a time
|
||||
* MirrorMode can be termed as Active-Active Hot-Standby, therefore an external
|
||||
* Mirror mode can be termed as Active-Active Hot-Standby, therefore an external
|
||||
server (slapd in proxy mode) or device (hardware load balancer)
|
||||
is needed to manage which provider is currently active
|
||||
* Backups are managed slightly differently
|
||||
|
||||
For configuration, please see the {{SECT:MirrorMode}} section below
|
||||
For configuration, please see the {{SECT:Mirror mode}} section below
|
||||
|
||||
|
||||
H3: Syncrepl Proxy Mode
|
||||
|
|
@ -432,7 +433,7 @@ While the LDAP Sync protocol supports both pull- and push-based replication,
|
|||
the push mode (refreshAndPersist) must still be initiated from the consumer
|
||||
before the provider can begin pushing changes. In some network configurations,
|
||||
particularly where firewalls restrict the direction in which connections
|
||||
can be made, a provider-initiated push mode may be needed.
|
||||
can be made, a provider-initiated push mode may be needed.
|
||||
|
||||
This mode can be configured with the aid of the LDAP Backend
|
||||
({{SECT: Backends}} and {{slapd-ldap(8)}}). Instead of running the
|
||||
|
|
@ -789,8 +790,8 @@ Now we setup the first Provider Node (replace $URI1, $URI2 and $URI3 etc. with y
|
|||
> credentials=secret searchbase="cn=config" type=refreshAndPersist
|
||||
> retry="5 5 300 5" timeout=1
|
||||
> -
|
||||
> add: olcMirrorMode
|
||||
> olcMirrorMode: TRUE
|
||||
> add: olcMultiProvider
|
||||
> olcMultiProvider: TRUE
|
||||
|
||||
Now start up the provider and a consumer/s, also add the above LDIF to the first consumer, second consumer etc. It will then replicate {{B:cn=config}}. You now have N-Way Multi-Provider on the config database.
|
||||
|
||||
|
|
@ -814,7 +815,7 @@ We still have to replicate the actual data, not just the config, so add to the p
|
|||
> olcSyncRepl: rid=006 provider=$URI3 binddn="$MANAGERDN" bindmethod=simple
|
||||
> credentials=$PASSWD searchbase="$BASEDN" type=refreshOnly
|
||||
> interval=00:00:00:10 retry="5 5 300 5" timeout=1
|
||||
> olcMirrorMode: TRUE
|
||||
> olcMultiProvider: TRUE
|
||||
>
|
||||
> dn: olcOverlay=syncprov,olcDatabase={1}${BACKEND},cn=config
|
||||
> changetype: add
|
||||
|
|
@ -831,15 +832,15 @@ directives are the URLs of the servers from which to replicate. These
|
|||
must exactly match the URLs {{slapd}} listens on ({{-h}} in {{SECT:Command-Line Options}}).
|
||||
Otherwise slapd may attempt to replicate from itself, causing a loop.
|
||||
|
||||
H3: MirrorMode
|
||||
H3: Mirror mode
|
||||
|
||||
MirrorMode configuration is actually very easy. If you have ever setup a normal
|
||||
Mirror mode configuration is actually very easy. If you have ever setup a normal
|
||||
slapd syncrepl provider, then the only change is the following two directives:
|
||||
|
||||
> mirrormode on
|
||||
> multiprovider on
|
||||
> serverID 1
|
||||
|
||||
Note: You need to make sure that the {{serverID}} of each mirror node is
|
||||
Note: You need to make sure that the {{serverID}} of each provider node is
|
||||
different and add it as a global configuration option.
|
||||
|
||||
H4: Mirror Node Configuration
|
||||
|
|
@ -850,45 +851,45 @@ The first step is to configure the syncrepl provider the same as in the
|
|||
Here's a specific cut down example using {{SECT:LDAP Sync Replication}} in
|
||||
{{refreshAndPersist}} mode:
|
||||
|
||||
MirrorMode node 1:
|
||||
Mirror mode node 1:
|
||||
|
||||
> # Global section
|
||||
> serverID 1
|
||||
> # database section
|
||||
>
|
||||
> # syncrepl directive
|
||||
> syncrepl rid=001
|
||||
> provider=ldap://ldap-sid2.example.com
|
||||
> bindmethod=simple
|
||||
> binddn="cn=mirrormode,dc=example,dc=com"
|
||||
> credentials=mirrormode
|
||||
> searchbase="dc=example,dc=com"
|
||||
> schemachecking=on
|
||||
> type=refreshAndPersist
|
||||
> retry="60 +"
|
||||
> # syncrepl directive
|
||||
> syncrepl rid=001
|
||||
> provider=ldap://ldap-sid2.example.com
|
||||
> bindmethod=simple
|
||||
> binddn="cn=mirrormode,dc=example,dc=com"
|
||||
> credentials=mirrormode
|
||||
> searchbase="dc=example,dc=com"
|
||||
> schemachecking=on
|
||||
> type=refreshAndPersist
|
||||
> retry="60 +"
|
||||
>
|
||||
> mirrormode on
|
||||
> multiprovider on
|
||||
|
||||
MirrorMode node 2:
|
||||
Mirror mode node 2:
|
||||
|
||||
> # Global section
|
||||
> serverID 2
|
||||
> # database section
|
||||
>
|
||||
> # syncrepl directive
|
||||
> syncrepl rid=001
|
||||
> provider=ldap://ldap-sid1.example.com
|
||||
> bindmethod=simple
|
||||
> binddn="cn=mirrormode,dc=example,dc=com"
|
||||
> credentials=mirrormode
|
||||
> searchbase="dc=example,dc=com"
|
||||
> schemachecking=on
|
||||
> type=refreshAndPersist
|
||||
> retry="60 +"
|
||||
>
|
||||
> mirrormode on
|
||||
> # syncrepl directive
|
||||
> syncrepl rid=001
|
||||
> provider=ldap://ldap-sid1.example.com
|
||||
> bindmethod=simple
|
||||
> binddn="cn=mirrormode,dc=example,dc=com"
|
||||
> credentials=mirrormode
|
||||
> searchbase="dc=example,dc=com"
|
||||
> schemachecking=on
|
||||
> type=refreshAndPersist
|
||||
> retry="60 +"
|
||||
>
|
||||
> multiprovider on
|
||||
|
||||
It's simple really; each MirrorMode node is setup {{B:exactly}} the same, except
|
||||
It's simple really; each Mirror mode node is setup {{B:exactly}} the same, except
|
||||
that the {{serverID}} is unique, and each consumer is pointed to
|
||||
the other server.
|
||||
|
||||
|
|
@ -899,8 +900,8 @@ dedicated proxy software, 2. using a Back-LDAP proxy as a syncrepl provider
|
|||
|
||||
A typical enterprise example might be:
|
||||
|
||||
!import "dual_dc.png"; align="center"; title="MirrorMode Enterprise Configuration"
|
||||
FT[align="Center"] Figure X.Y: MirrorMode in a Dual Data Center Configuration
|
||||
!import "dual_dc.png"; align="center"; title="Mirror mode Enterprise Configuration"
|
||||
FT[align="Center"] Figure X.Y: Mirror mode in a Dual Data Center Configuration
|
||||
|
||||
H5: Normal Consumer Configuration
|
||||
|
||||
|
|
@ -908,7 +909,7 @@ This is exactly the same as the {{SECT:Set up the consumer slapd}} section. It
|
|||
can either setup in normal {{SECT:syncrepl replication}} mode, or in
|
||||
{{SECT:delta-syncrepl replication}} mode.
|
||||
|
||||
H4: MirrorMode Summary
|
||||
H4: Mirror mode Summary
|
||||
|
||||
You will now have a directory architecture that provides all of the
|
||||
consistency guarantees of single-provider replication, while also providing the
|
||||
|
|
|
|||
|
|
@ -5142,7 +5142,7 @@
|
|||
x="96.974648"
|
||||
y="113.75929"
|
||||
style="font-family:Arial;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:18px;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%" /></flowRegion><flowPara
|
||||
id="flowPara27617">MirrorMode 1</flowPara></flowRoot> <flowRoot
|
||||
id="flowPara27617">Mirror mode 1</flowPara></flowRoot> <flowRoot
|
||||
xml:space="preserve"
|
||||
id="flowRoot27619"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:Arial"
|
||||
|
|
@ -5154,7 +5154,7 @@
|
|||
x="96.974648"
|
||||
y="113.75929"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:Arial" /></flowRegion><flowPara
|
||||
id="flowPara27627">MirrorMode 2</flowPara></flowRoot> <path
|
||||
id="flowPara27627">Mirror mode 2</flowPara></flowRoot> <path
|
||||
d="M 103.99577,648.52356 C 103.99577,648.52356 103.75488,628.78956 123.98963,634.70975 C 144.22438,640.62995 140.61103,650.49696 140.85192,650.49696 C 141.09281,650.49696 137.23858,638.37464 152.65553,636.11932 C 166.62714,637.52889 173.13117,640.62995 172.4085,651.06079 C 171.68583,661.49163 164.94091,664.02886 164.94091,664.02886 C 164.94091,664.02886 177.2263,665.43843 173.85384,686.58202 C 168.55426,701.24157 168.55426,699.832 156.26888,701.52349 C 150.72841,698.98626 150.48752,696.73094 150.48752,696.73094 C 150.48752,696.73094 160.60489,707.72561 145.42883,714.77347 C 128.32565,720.12985 126.15764,715.3373 118.93094,712.80007 C 111.94514,707.72561 113.39048,701.52349 113.39048,701.52349 C 113.39048,701.52349 117.7265,711.95432 103.03221,713.92773 C 88.337924,715.90113 82.797457,711.95432 80.147668,695.8852 C 79.424999,683.76287 92.433052,682.63522 92.433052,682.63522 C 92.433052,682.63522 84.483686,682.91713 82.315677,676.71501 C 80.147668,670.51289 78.702329,662.33737 85.206355,651.3427 C 97.25085,638.09272 105.44111,646.83207 103.99577,648.52356 z "
|
||||
id="path1503"
|
||||
sodipodi:nodetypes="cccccccccccccccccc"
|
||||
|
|
@ -6805,6 +6805,6 @@
|
|||
y="279.42432"
|
||||
style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Arial" /></flowRegion><flowPara
|
||||
id="flowPara3132">Each LB points to</flowPara><flowPara
|
||||
id="flowPara3134">the same MirrorMode</flowPara><flowPara
|
||||
id="flowPara3134">the same Mirror mode</flowPara><flowPara
|
||||
id="flowPara3136">Node at any time.</flowPara></flowRoot> </g>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 289 KiB After Width: | Height: | Size: 289 KiB |
|
|
@ -1623,8 +1623,8 @@ switch.
|
|||
Specifies the maximum number of aliases to dereference when trying to
|
||||
resolve an entry, used to avoid infinite alias loops. The default is 15.
|
||||
.TP
|
||||
.B olcMirrorMode: TRUE | FALSE
|
||||
This option puts a consumer database into "mirror" mode. Update
|
||||
.B olcMultiProvider: TRUE | FALSE
|
||||
This option puts a consumer database into Multi-Provider mode. Update
|
||||
operations will be accepted from any user, not just the updatedn. The
|
||||
database must already be configured as syncrepl consumer
|
||||
before this keyword may be set. This mode also requires a
|
||||
|
|
|
|||
|
|
@ -1566,14 +1566,14 @@ by means of the RFC 4533 LDAP Content Synchronization protocol
|
|||
Specifies the maximum number of aliases to dereference when trying to
|
||||
resolve an entry, used to avoid infinite alias loops. The default is 15.
|
||||
.TP
|
||||
.B mirrormode on | off
|
||||
This option puts a consumer database into "mirror" mode. Update
|
||||
.B multiprovider on | off
|
||||
This option puts a consumer database into Multi-Provider mode. Update
|
||||
operations will be accepted from any user, not just the updatedn. The
|
||||
database must already be configured as a syncrepl consumer
|
||||
before this keyword may be set. This mode also requires a
|
||||
.B serverID
|
||||
(see above) to be configured.
|
||||
By default, mirrormode is off.
|
||||
By default, multiprovider is off.
|
||||
.TP
|
||||
.B monitoring on | off
|
||||
This option enables database-specific monitoring in the entry related
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@ enum {
|
|||
CFG_SSTR_IF_MAX,
|
||||
CFG_SSTR_IF_MIN,
|
||||
CFG_TTHREADS,
|
||||
CFG_MIRRORMODE,
|
||||
CFG_MULTIPROVIDER,
|
||||
CFG_HIDDEN,
|
||||
CFG_MONITORING,
|
||||
CFG_SERVERID,
|
||||
|
|
@ -473,8 +473,8 @@ static ConfigTable config_back_cf_table[] = {
|
|||
&config_generic, "( OLcfgDbAt:0.6 NAME 'olcMaxDerefDepth' "
|
||||
"EQUALITY integerMatch "
|
||||
"SYNTAX OMsInteger SINGLE-VALUE )", NULL, NULL },
|
||||
{ "mirrormode", "on|off", 2, 2, 0, ARG_DB|ARG_ON_OFF|ARG_MAGIC|CFG_MIRRORMODE,
|
||||
&config_generic, "( OLcfgDbAt:0.16 NAME 'olcMirrorMode' "
|
||||
{ "multiprovider", "on|off", 2, 2, 0, ARG_DB|ARG_ON_OFF|ARG_MAGIC|CFG_MULTIPROVIDER,
|
||||
&config_generic, "( OLcfgDbAt:0.16 NAME ( 'olcMultiProvider' 'olcMirrorMode' ) "
|
||||
"EQUALITY booleanMatch "
|
||||
"SYNTAX OMsBoolean SINGLE-VALUE )", NULL, NULL },
|
||||
{ "moduleload", "file", 2, 0, 0,
|
||||
|
|
@ -892,6 +892,9 @@ static ConfigTable config_back_cf_table[] = {
|
|||
&global_writetimeout, "( OLcfgGlAt:88 NAME 'olcWriteTimeout' "
|
||||
"EQUALITY integerMatch "
|
||||
"SYNTAX OMsInteger SINGLE-VALUE )", NULL, NULL },
|
||||
/* Legacy keywords */
|
||||
{ "mirrormode", "on|off", 2, 2, 0, ARG_DB|ARG_ON_OFF|ARG_MAGIC|CFG_MULTIPROVIDER,
|
||||
&config_generic, NULL, NULL, NULL },
|
||||
{ NULL, NULL, 0, 0, 0, ARG_IGNORED,
|
||||
NULL, NULL, NULL, NULL }
|
||||
};
|
||||
|
|
@ -981,7 +984,7 @@ static ConfigOCs cf_ocs[] = {
|
|||
"olcReplicaArgsFile $ olcReplicaPidFile $ olcReplicationInterval $ "
|
||||
"olcReplogFile $ olcRequires $ olcRestrict $ olcRootDN $ olcRootPW $ "
|
||||
"olcSchemaDN $ olcSecurity $ olcSizeLimit $ olcSyncUseSubentry $ olcSyncrepl $ "
|
||||
"olcTimeLimit $ olcUpdateDN $ olcUpdateRef $ olcMirrorMode $ "
|
||||
"olcTimeLimit $ olcUpdateDN $ olcUpdateRef $ olcMultiProvider $ "
|
||||
"olcMonitoring $ olcExtraAttrs ) )",
|
||||
Cft_Database, NULL, cfAddDatabase },
|
||||
{ "( OLcfgGlOc:5 "
|
||||
|
|
@ -1322,7 +1325,7 @@ config_generic(ConfigArgs *c) {
|
|||
case CFG_SYNC_SUBENTRY:
|
||||
c->value_int = (SLAP_SYNC_SUBENTRY(c->be) != 0);
|
||||
break;
|
||||
case CFG_MIRRORMODE:
|
||||
case CFG_MULTIPROVIDER:
|
||||
if ( SLAP_SHADOW(c->be))
|
||||
c->value_int = (SLAP_MULTIPROVIDER(c->be) != 0);
|
||||
else
|
||||
|
|
@ -1429,7 +1432,7 @@ config_generic(ConfigArgs *c) {
|
|||
snprintf(c->log, sizeof( c->log ), "change requires slapd restart");
|
||||
break;
|
||||
|
||||
case CFG_MIRRORMODE:
|
||||
case CFG_MULTIPROVIDER:
|
||||
SLAP_DBFLAGS(c->be) &= ~SLAP_DBFLAG_MULTI_SHADOW;
|
||||
if(SLAP_SHADOW(c->be))
|
||||
SLAP_DBFLAGS(c->be) |= SLAP_DBFLAG_SINGLE_SHADOW;
|
||||
|
|
@ -2270,7 +2273,7 @@ sortval_reject:
|
|||
SLAP_DBFLAGS(c->be) &= ~SLAP_DBFLAG_LASTBIND;
|
||||
break;
|
||||
|
||||
case CFG_MIRRORMODE:
|
||||
case CFG_MULTIPROVIDER:
|
||||
if(c->value_int && !SLAP_SHADOW(c->be)) {
|
||||
snprintf( c->cr_msg, sizeof( c->cr_msg ), "<%s> database is not a shadow",
|
||||
c->argv[0] );
|
||||
|
|
|
|||
|
|
@ -6503,7 +6503,7 @@ add_syncrepl(
|
|||
rc = -1;
|
||||
}
|
||||
} else {
|
||||
/* mirrormode still needs to see this flag in tool mode */
|
||||
/* multiprovider still needs to see this flag in tool mode */
|
||||
rc = config_sync_shadow( c ) ? -1 : 0;
|
||||
}
|
||||
ldap_free_urldesc( lud );
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ olcRootDN: cn=manager,dc=example,dc=com
|
|||
olcRootPW: secret
|
||||
olcSizeLimit: unlimited
|
||||
olcTimeLimit: unlimited
|
||||
olcMirrorMode: TRUE
|
||||
olcMultiProvider: TRUE
|
||||
olcSyncrepl: {0}rid=100 provider=@URI2@ binddn="cn=manager,dc=example,dc=com
|
||||
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
|
||||
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ olcRootDN: cn=manager,dc=example,dc=com
|
|||
olcRootPW: secret
|
||||
olcSizeLimit: unlimited
|
||||
olcTimeLimit: unlimited
|
||||
olcMirrorMode: TRUE
|
||||
olcMultiProvider: TRUE
|
||||
olcSyncrepl: {0}rid=100 provider=@URI1@ binddn="cn=manager,dc=example,dc=com
|
||||
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
|
||||
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ olcRootDN: cn=manager,dc=example,dc=com
|
|||
olcRootPW: secret
|
||||
olcSizeLimit: unlimited
|
||||
olcTimeLimit: unlimited
|
||||
olcMirrorMode: TRUE
|
||||
olcMultiProvider: TRUE
|
||||
olcSyncrepl: {0}rid=100 provider=@URI2@ binddn="cn=manager,dc=example,dc=com
|
||||
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
|
||||
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ olcRootDN: cn=manager,dc=example,dc=com
|
|||
olcRootPW: secret
|
||||
olcSizeLimit: unlimited
|
||||
olcTimeLimit: unlimited
|
||||
olcMirrorMode: TRUE
|
||||
olcMultiProvider: TRUE
|
||||
olcSyncrepl: {0}rid=100 provider=@URI2@ binddn="cn=manager,dc=example,dc=com
|
||||
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
|
||||
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ syncrepl
|
|||
sizeLimit=unlimited
|
||||
timelimit=unlimited
|
||||
|
||||
mirrormode TRUE
|
||||
multiprovider TRUE
|
||||
|
||||
overlay syncprov
|
||||
syncprov-sessionlog 100
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ olcRootDN: cn=manager,dc=example,dc=com
|
|||
olcRootPW: secret
|
||||
olcSizeLimit: unlimited
|
||||
olcTimeLimit: unlimited
|
||||
olcMirrorMode: TRUE
|
||||
olcMultiProvider: TRUE
|
||||
olcSyncrepl: {0}rid=100 provider=@URI2@ binddn="cn=manager,dc=example,dc=com
|
||||
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
|
||||
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ olcRootDN: cn=manager,dc=example,dc=com
|
|||
olcRootPW: secret
|
||||
olcSizeLimit: unlimited
|
||||
olcTimeLimit: unlimited
|
||||
olcMirrorMode: TRUE
|
||||
olcMultiProvider: TRUE
|
||||
olcSyncrepl: {0}rid=100 provider=@URI1@ binddn="cn=manager,dc=example,dc=com
|
||||
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
|
||||
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ olcRootDN: cn=manager,dc=example,dc=com
|
|||
olcRootPW: secret
|
||||
olcSizeLimit: unlimited
|
||||
olcTimeLimit: unlimited
|
||||
olcMirrorMode: TRUE
|
||||
olcMultiProvider: TRUE
|
||||
olcSyncrepl: {0}rid=100 provider=@URI2@ binddn="cn=manager,dc=example,dc=com
|
||||
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
|
||||
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ olcRootDN: cn=manager,dc=example,dc=com
|
|||
olcRootPW: secret
|
||||
olcSizeLimit: unlimited
|
||||
olcTimeLimit: unlimited
|
||||
olcMirrorMode: TRUE
|
||||
olcMultiProvider: TRUE
|
||||
olcSyncrepl: {0}rid=100 provider=@URI2@ binddn="cn=manager,dc=example,dc=com
|
||||
" credentials=secret bindmethod=simple searchbase="dc=example,dc=com" logba
|
||||
se="cn=accesslog" logfilter="(&(objectClass=auditWriteObject)(reqResult=0))
|
||||
|
|
|
|||
|
|
@ -169,8 +169,8 @@ echo " retry=\"3 10 300 5\" timeout=3" >> $TMP
|
|||
n=`expr $n + 1`
|
||||
done
|
||||
echo "-" >> $TMP
|
||||
echo "add: olcMirrorMode" >> $TMP
|
||||
echo "olcMirrorMode: TRUE" >> $TMP
|
||||
echo "add: olcMultiProvider" >> $TMP
|
||||
echo "olcMultiProvider: TRUE" >> $TMP
|
||||
$LDAPMODIFY -D cn=config -H $URI1 -y $CONFIGPWF < $TMP >> $TESTOUT 2>&1
|
||||
RC=$?
|
||||
if test $RC != 0 ; then
|
||||
|
|
@ -232,8 +232,8 @@ j=`expr $j + 1`
|
|||
done
|
||||
cat <<EOF >> $TMP
|
||||
-
|
||||
add: olcMirrorMode
|
||||
olcMirrorMode: TRUE
|
||||
add: olcMultiProvider
|
||||
olcMultiProvider: TRUE
|
||||
EOF
|
||||
$LDAPMODIFY -D cn=config -H $URI -y $CONFIGPWF < $TMP >>$TESTOUT 2>&1
|
||||
n=`expr $n + 1`
|
||||
|
|
@ -296,7 +296,7 @@ n=`expr $n + 1`
|
|||
done
|
||||
|
||||
cat <<EOF >> $TMP
|
||||
olcMirrorMode: TRUE
|
||||
olcMultiProvider: TRUE
|
||||
|
||||
dn: olcOverlay=syncprov,olcDatabase={1}${BACKEND},cn=config
|
||||
objectClass: olcOverlayConfig
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ fi
|
|||
# Instead, they will use an alternate DB so that they may be
|
||||
# configured differently from the provider. This alternate DB
|
||||
# will also be a consumer for the real cn=schema,cn=config tree.
|
||||
# It has MirrorMode enabled so that it can be written directly
|
||||
# It has multi-provider enabled so that it can be written directly
|
||||
# while being a consumer of the main schema.
|
||||
echo "Configuring consumer config DB on provider..."
|
||||
$LDAPMODIFY -D cn=config -H $URI1 -y $CONFIGPWF <<EOF >> $TESTOUT 2>&1
|
||||
|
|
@ -174,8 +174,8 @@ olcSyncrepl: {0}rid=001 provider=$URI1 binddn="cn=config"
|
|||
$SYNCTYPE retry="3 5 300 5" timeout=3
|
||||
suffixmassage="cn=schema,cn=config,cn=consumer"
|
||||
-
|
||||
add: olcMirrorMode
|
||||
olcMirrorMode: TRUE
|
||||
add: olcMultiProvider
|
||||
olcMultiProvider: TRUE
|
||||
|
||||
EOF
|
||||
RC=$?
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ olcSyncRepl: rid=001 provider=$PROVIDERURI binddn="$MANAGERDN" bindmethod=simple
|
|||
retry="3 +" timeout=3 logbase="cn=log"
|
||||
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
|
||||
syncdata=accesslog
|
||||
olcMirrorMode: TRUE
|
||||
olcMultiProvider: TRUE
|
||||
$INDEX2
|
||||
|
||||
dn: olcOverlay=syncprov,olcDatabase={2}$BACKEND,cn=config
|
||||
|
|
@ -357,8 +357,8 @@ olcSyncRepl: rid=001 provider=$PROVIDERURI binddn="$MANAGERDN" bindmethod=simple
|
|||
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
|
||||
syncdata=accesslog
|
||||
-
|
||||
replace: olcMirrorMode
|
||||
olcMirrorMode: TRUE
|
||||
replace: olcMultiProvider
|
||||
olcMultiProvider: TRUE
|
||||
|
||||
EOF
|
||||
RC=$?
|
||||
|
|
@ -506,8 +506,8 @@ olcSyncRepl: rid=001 provider=$PROVIDERURI binddn="$MANAGERDN" bindmethod=simple
|
|||
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
|
||||
syncdata=accesslog
|
||||
-
|
||||
replace: olcMirrorMode
|
||||
olcMirrorMode: TRUE
|
||||
replace: olcMultiProvider
|
||||
olcMultiProvider: TRUE
|
||||
|
||||
EOF
|
||||
RC=$?
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ olcSyncRepl: rid=001 provider=$PROVIDERURI binddn="$MANAGERDN" bindmethod=simple
|
|||
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
|
||||
syncdata=accesslog tls_cacert=$TESTDIR/tls/ca/certs/testsuiteCA.crt
|
||||
starttls=critical
|
||||
olcMirrorMode: TRUE
|
||||
olcMultiProvider: TRUE
|
||||
$INDEX2
|
||||
|
||||
dn: olcOverlay=syncprov,olcDatabase={2}$BACKEND,cn=config
|
||||
|
|
@ -367,8 +367,8 @@ olcSyncRepl: rid=001 provider=$PROVIDERURI binddn="$MANAGERDN" bindmethod=simple
|
|||
syncdata=accesslog tls_cacert=$TESTDIR/tls/ca/certs/testsuiteCA.crt
|
||||
starttls=critical
|
||||
-
|
||||
replace: olcMirrorMode
|
||||
olcMirrorMode: TRUE
|
||||
replace: olcMultiProvider
|
||||
olcMultiProvider: TRUE
|
||||
|
||||
EOF
|
||||
RC=$?
|
||||
|
|
@ -517,8 +517,8 @@ olcSyncRepl: rid=001 provider=$PROVIDERURI binddn="$MANAGERDN" bindmethod=simple
|
|||
syncdata=accesslog tls_cacert=$TESTDIR/tls/ca/certs/testsuiteCA.crt
|
||||
starttls=critical
|
||||
-
|
||||
replace: olcMirrorMode
|
||||
olcMirrorMode: TRUE
|
||||
replace: olcMultiProvider
|
||||
olcMultiProvider: TRUE
|
||||
|
||||
EOF
|
||||
RC=$?
|
||||
|
|
@ -177,7 +177,7 @@ olcSyncRepl: rid=001 provider=$PROVIDERURI binddn="$MANAGERDN" bindmethod=simple
|
|||
retry="3 +" timeout=3 logbase="cn=log"
|
||||
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
|
||||
syncdata=accesslog tls_cacert=$TESTDIR/tls/ca/certs/testsuiteCA.crt
|
||||
olcMirrorMode: TRUE
|
||||
olcMultiProvider: TRUE
|
||||
$INDEX2
|
||||
|
||||
dn: olcOverlay=syncprov,olcDatabase={2}$BACKEND,cn=config
|
||||
|
|
@ -365,8 +365,8 @@ olcSyncRepl: rid=001 provider=$PROVIDERURI binddn="$MANAGERDN" bindmethod=simple
|
|||
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
|
||||
syncdata=accesslog tls_cacert=$TESTDIR/tls/ca/certs/testsuiteCA.crt
|
||||
-
|
||||
replace: olcMirrorMode
|
||||
olcMirrorMode: TRUE
|
||||
replace: olcMultiProvider
|
||||
olcMultiProvider: TRUE
|
||||
|
||||
EOF
|
||||
RC=$?
|
||||
|
|
@ -514,8 +514,8 @@ olcSyncRepl: rid=001 provider=$PROVIDERURI binddn="$MANAGERDN" bindmethod=simple
|
|||
logfilter="(&(objectclass=auditWriteObject)(reqresult=0))"
|
||||
syncdata=accesslog tls_cacert=$TESTDIR/tls/ca/certs/testsuiteCA.crt
|
||||
-
|
||||
replace: olcMirrorMode
|
||||
olcMirrorMode: TRUE
|
||||
replace: olcMultiProvider
|
||||
olcMultiProvider: TRUE
|
||||
|
||||
EOF
|
||||
RC=$?
|
||||
Loading…
Reference in a new issue