Utilizzo della riga di comando
È possibile emettere i comandi qui forniti alla riga di comando per creare un sottoalbero.
dn: o=sample
objectclass: organization
objectclass: ibm-replicationContext
o: sampleSe questa voce esiste già, modificarla per aggiungere objectclass=ibm-replicationContext invece di aggiungere l'intera voce.- Creare un file ldif
suffix_update.ldifcon le seguenti informazioni per aggiungere il suffisso objectclass=ibm-replicationContext al suffisso o al ramo già esistente:dn: o=sample changetype: modify add: objectclass objectclass: ibm-replicationContext - Utilizzare il comando idsldapmodify per modificare la voce suffisso su server1. Su server1 immettere il seguente comando:
idsldapmodify -D <adminDN> -w <adminPW> -i suffix_update.ldif
server1 e server2 sono server peer - master. Il che significa che mentre ricevono aggiornamenti l'uno dall'altro, replicano solo le voci ricevute dai client. Mentre entrambi i master hanno lo stesso contenuto di ingresso, solo il server che ha ricevuto la richiesta client replica la voce. Entrambi i master sono fornitori e consumatori a vicenda e fornitori verso gli altri server.
È possibile utilizzare un metodo offline o un metodo online.
- Avviare i server server1 e server2 in modalità solo configurazione. Su ciascuno dei server emettere il comando:
idsslapd -I <instance_name> -a - Se il server di gestione (idsdiradm) non è in esecuzione per nessuna istanza, avviare idsdiradm:
idsdiradm -I <LDAP_instance> - È necessario configurare server1 e server2 per essere server peer. Utilizzare il comando idsldapadd per aggiungere la seguente voce al file ibmslapd.conf su server1 e server2. Su server1 e server2 , immettere il seguente comando:
dove <filename> contiene:idsldapadd -D <adminDN> -w <adminPW> -i<filename>dn: cn=Master Server, cn=configuration objectclass: ibm-slapdReplication cn: Master Server ibm-slapdMasterDN: cn=any ibm-slapdMasterPW: secret123Nota: È fondamentale che queste voci siano esattamente le stesse su entrambi i server perché questo esempio utilizza un oggetto credenziali condiviso su tutti i server. La password è inserita in cleartext, ma è crittografata nel file.ibm-slapdMasterDNdeve essere univoco e non può essere uguale ad alcun DN già esistente. - Stop server1 e server2. Per arrestare i server emettere il seguente comando su ciascuno dei server:
dove <nome_istanza> è il nome dell'istanza del server di directory che si desidera arrestare.idsslapd -I <instance_name> -k - Salvare i file ibmslapd.conf .
- Al computer dove si trova il server master, server1, creare un file da utilizzare per gli aggiornamenti delle informazioni di accordo; ad esempio mycredentialsfile, dove mycredentialsfile contiene:
I valoridn: cn=replication,cn=IBMpolicies objectclass: container ###Bind Credentials/method to peer server - replication agreement ###points to this. dn: cn=simple,cn=replication,cn=IBMpolicies objectclass: ibm-replicationCredentialsSimple cn: simple replicaBindDN: cn=any replicaCredentials: secret123 description: Bind method of the peer master (server1)to the peer (server2)replicaBindDNereplicaCredentialsdevono corrispondere rispettivamente ai valoriibm-slapdMasterDNeibm-slapdMasterPWdalla voce del server principale nel passo 3. - Emettere il comando:
idsldif2db -i<mycredentialsfile> -I <instance_name> - Copiare <mycredentialsfile> al computer dove server2 si trova e emettere il comando:
idsldif2db -i<mycredentialsfile> -I <instance_name> - Al computer dove si trova server1 si crea un file, <mytopologyfile>, dove < mytopologyfile> include la seguente impostazione:Nota: Sostituire tutte le occorrenze di <server1-uuid> nei file seguenti con il valore dell'attributo ibm-slapdServerId della voce cn=Configuration del server master. Questo valore viene generato dal server la prima volta che viene avviato. È possibile trovarlo eseguendo una idsldapsearch della voce cn = Configuration oppure utilizzando il comando grep nel file ibmslapd.conf , se si dispone di un sistema AIX®, Linux®o Solaris. Allo stesso modo, tutte le occorrenze di <serverx-uuid> (dove x rappresenta 1 o 2) devono essere sostituite con il valore dell'attributo ibm-slapdServerId della voce cn=Configuration del rispettivo server.
dn: ibm-replicaGroup=default, o=sample objectclass: top objectclass: ibm-replicaGroup ibm-replicaGroup: default dn: ibm-replicaServerId=<server1-uuid>,ibm-replicaGroup=default,o=sample objectclass: top objectclass: ibm-replicaSubentry ibm-replicaServerId: <server1-uuid> ibm-replicationServerIsMaster: true cn: server1 description: server 1 (peer master) ibm-replicaSubentry dn: ibm-replicaServerId=<server2-uuid>,ibm-replicaGroup=default,o=sample objectclass: top objectclass: ibm-replicaSubentry ibm-replicaServerId: <server2-uuid> ibm-replicationServerIsMaster: true cn: server2 description: server2 (peer master) ibm-replicaSubentry #server1 to server2 agreement dn: cn=server2,ibm-replicaServerId=<server1-uuid>,ibm-replicaGroup=default,o=sample objectclass: top objectclass: ibm-replicationAgreement cn: server2 ibm-replicaConsumerId: <server2-uuid> ibm-replicaUrl: ldap://server2:389 ibm-replicaCredentialsDN: cn=simple,cn=replication,cn=IBMpolicies description: server1(master) to server2(master) agreement #server2 to server1 agreement dn: cn=server1,ibm-replicaServerId=<server2-uuid>,ibm-replicaGroup=default,o=sample objectclass: top objectclass: ibm-replicationAgreement cn: server1 ibm-replicaConsumerId: <server1-uuid> ibm-replicaUrl: ldap://server1:389 ibm-replicaCredentialsDN: cn=simple,cn=replication,cn=IBMpolicies description: server2(master) to server1(master) agreement - Per caricare questa topologia, emettere il comando:
doveidsldif2db -r no -i<mytopologyfile> -I <instance_name>-r noimpedisce la replica della serie di voci. - A questo punto potresti voler caricare ulteriori dati per il tuo subalbero.Nota: utilizzare l'indicatore
-r noper evitare la replica della serie di voci. - Una volta terminato il caricamento dei dati, per poter esportare la topologia ed eventuali ulteriori dati per il contesto di replica per popolare gli altri server, emettere il comando:
idsdb2ldif -s"o=sample" -o <mymasterfile.ldif> -I <instance_name> \ -k <key seed> -t <key salt>Nota: è necessario utilizzare l'opzione-Ise è presente più di un'istanza. È necessario utilizzare le opzioni-ke-tse le chiavi sul server non sono sincronizzate. Consultare le informazioni sul comando idsdb2ldif nel manuale Command Reference per ulteriori informazioni.Attenzione: se si stanno esportando dati che verranno importati in un server abilitato ad AES (Advanced Encryption Standard) e se i due server non sono sincronizzati crittograficamente, consultare Sincronizzazione della crittografia bidirezionale tra le istanze del server , per informazioni sulla sincronizzazione crittografica dei server.Quando il server di origine (il server da cui si sta esportando i dati da) e il server di destinazione (il server in cui si sta importando i dati) si utilizzano file di stash della directory non corrispondenti e si specificano i valori di seed di codifica e di sale del server di destinazione, qualsiasi dato codificato AES verrà decodificato utilizzando i tasti AES del server di origine, quindi ricrittografato utilizzando i valori seed e sale di codifica del server di destinazione. Questi dati crittografati vengono memorizzati nel file LDIF.
Il seme di cifratura viene utilizzato per generare una serie di valori chiave segreti AES. Questi valori sono memorizzati in un file stash di directory e utilizzati per crittografare e decodificare la password memorizzata e gli attributi chiave segreti. Il valore seed di crittografia deve contenere soltanto caratteri ASCII ISO-8859-1 stampabili con valori compresi tra 33 e 126 e la sua lunghezza deve essere compresa tra 12 e 1016 caratteri. Consultare ASCII characters from 33 to 126 , nella documentazione IBM Security Directory Server nella sezione Administering per informazioni su questi caratteri.
Il sale di crittografia è un valore generato casualmente che viene utilizzato per generare chiavi di crittografia AES. È possibile ottenere il valore del sale del server di destinazione ricercando (utilizzando l'utility idsldapsearch) la voce "cn = crypto, cn = localhost" del server di destinazione. Il tipo di attributo è ibm-slapdCryptoSalt.
- Riavviare server1.
- Copiare il file <mymasterfile.ldif> nel computer in cui si trova server2 .
- Sul computer dove si trova server2 , emettere il seguente comando:
doveidsldif2db -r no -i <mymasterfile.ldif> -I <instance_name>-r noimpedisce la replica della serie di voci. Per importazioni di dati ldif di grandi dimensioni, utilizzare il comandoidsbulkload(senza l'opzione-r no). - Dopo aver completato l'importazione dei dati su server2, immettere il comando
idsrunstatsper ottimizzare le statistiche della tabella:idsrunstats -I <instance_name> - Inizio server2:
idsslapd -I <instance_name> -n
- Si presuppone che il server server1 sia già caricato con i dati necessari e che sia attivo e serva le applicazioni client. Se necessario, avviare server1 con il comando:
idsslapd -I <instance_name> -n - Avviare il server server2 in modalità di sola configurazione. Su ciascuno dei server emettere il comando:
idsslapd -I <instance_name> -a - È necessario configurare server1 e server2 per essere server peer. Utilizzare il comando idsldapadd per aggiungere la seguente voce al file ibmslapd.conf su server1 e server2. Su server1 e server2 , immettere il seguente comando:
dove <filename> contiene:idsldapadd -D <adminDN> -w <adminPW> -i<filename>dn: cn=Master Server, cn=configuration objectclass: ibm-slapdReplication cn: Master Server ibm-slapdMasterDN: cn=any ibm-slapdMasterPW: secret123Nota: È fondamentale che queste voci siano esattamente le stesse su entrambi i server perché questo esempio utilizza un oggetto credenziali condiviso su tutti i server. La password è inserita in cleartext, ma è crittografata nel file.ibm-slapdMasterDNdeve essere univoco e non può essere uguale ad alcun DN già esistente. - Su server1, rileggere la configurazione aggiornata nel processo ibmslapd in esecuzione. Immettere il comando su server1:
idsldapexop -D <adminDN> -w <adminPW> -op readconfig -scope entire - Arrestare server2. Per arrestare l'esecuzione del seguente comando su server2:
dove <nome_istanza> è il nome dell'istanza del server di directory che si desidera arrestare.idsslapd -I <instance_name> -k - Salvare i file ibmslapd.conf su server1 e server2.
- Sul computer su cui si trova il server primario, server1, creare un file da utilizzare per gli aggiornamenti alle informazioni di accordo; ad esempio mycredentialsfile, dove mycredentialsfile contiene:
I valoridn: cn=replication,cn=IBMpolicies objectclass: container ###Bind Credentials/method to peer server - replication agreement ###points to this. dn: cn=simple,cn=replication,cn=IBMpolicies objectclass: ibm-replicationCredentialsSimple cn: simple replicaBindDN: cn=any replicaCredentials: secret123 description: Bind method of the peer master (server1)to the peer (server2)replicaBindDNereplicaCredentialsdevono corrispondere rispettivamente ai valoriibm-slapdMasterDNeibm-slapdMasterPWdalla voce del server principale nel passo 3. - Immettere il comando su server1:
idsldapadd -D <adminDN> -w <adminPW> -i<mycredentialsfile> - Copiare <mycredentialsfile> nel computer in cui si trova server2 ed emettere il comando su server2:
idsldif2db -i<mycredentialsfile> -I <instance_name> - Al computer dove si trova server1 si crea un file, <mytopologyfile>, dove < mytopologyfile> include la seguente impostazione:Nota: Sostituire tutte le occorrenze di <server1-uuid> nei file seguenti con il valore dell'attributo ibm-slapdServerId della voce cn=Configuration del server master. Questo valore viene generato dal server la prima volta che viene avviato. È possibile individuarlo eseguendo una idsldapsearch della voce cn = Configuration oppure utilizzando il comando grep sul file ibmslapd.conf , se si dispone di un sistema AIX, Linuxo Solaris. Allo stesso modo, tutte le occorrenze di <serverx-uuid> (dove x rappresenta 1 o 2) devono essere sostituite con il valore dell'attributo ibm-slapdServerId della voce cn=Configuration del rispettivo server.
dn: ibm-replicaGroup=default, o=sample objectclass: top objectclass: ibm-replicaGroup ibm-replicaGroup: default dn: ibm-replicaServerId=<server1-uuid>,ibm-replicaGroup=default,o=sample objectclass: top objectclass: ibm-replicaSubentry ibm-replicaServerId: <server1-uuid> ibm-replicationServerIsMaster: true cn: server1 description: server 1 (peer master) ibm-replicaSubentry dn: ibm-replicaServerId=<server2-uuid>,ibm-replicaGroup=default,o=sample objectclass: top objectclass: ibm-replicaSubentry ibm-replicaServerId: <server2-uuid> ibm-replicationServerIsMaster: true cn: server2 description: server2 (peer master) ibm-replicaSubentry #server1 to server2 agreement dn: cn=server2,ibm-replicaServerId=<server1-uuid>,ibm-replicaGroup=default,o=sample objectclass: top objectclass: ibm-replicationAgreement cn: server2 ibm-replicaConsumerId: <server2-uuid> ibm-replicaUrl: ldap://server2:389 ibm-replicaCredentialsDN: cn=simple,cn=replication,cn=IBMpolicies description: server1(master) to server2(master) agreement ibm-replicationOnHold: TRUE #server2 to server1 agreement dn: cn=server1,ibm-replicaServerId=<server2-uuid>,ibm-replicaGroup=default,o=sample objectclass: top objectclass: ibm-replicationAgreement cn: server1 ibm-replicaConsumerId: <server1-uuid> ibm-replicaUrl: ldap://server1:389 ibm-replicaCredentialsDN: cn=simple,cn=replication,cn=IBMpolicies description: server2(master) to server1(master) agreement ibm-replicationOnHold: TRUE - Per caricare questa topologia, su server1, immettere il comando:
dove l'opzioneidsldapadd -D <adminDN> -w <adminPW> -l -i<mytopologyfile>-limpedisce la replica della serie di voci. - Ora il peer server1 è a conoscenza del peer server2 e tiene traccia di tutte le modifiche (aggiornamenti) nella coda di replica sospesa.
- Se è necessario che la sincronizzazione dei dati abbia esito positivo, è importante disattivare server1 per renderlo di sola lettura fino a quando l'estrazione dei dati non viene completata. Per sospendere server1 , immettere il comando:
Se è necessario che server1 funzioni in modalità di lettura e scrittura, è possibile che vi sia una serie di modifiche replicate che verranno estratte anche nel file ldif tramiteidsldapexop -D <adminDN> -w <adminPW> -op quiesce -rc o=sampleidsdb2ldif. - Esportare i dati server1 (che includono anche informazioni sulla topologia di replica) per il contesto di replica, immettere il comando su server1:
idsdb2ldif -s "o=sample" -o <server1data.ldif> -I <instance_name> \ -k <key seed> -t <key salt>Nota: è necessario utilizzare l'opzione-Ise è presente più di un'istanza. È necessario utilizzare le opzioni-ke-tse le chiavi sul server non sono sincronizzate. Consultare le informazioni sul comando idsdb2ldif nel manuale Command Reference per ulteriori informazioni.Attenzione: se si stanno esportando dati che verranno importati in un server abilitato ad AES (Advanced Encryption Standard) e se i due server non sono sincronizzati crittograficamente, consultare Sincronizzazione della crittografia bidirezionale tra le istanze del server , per informazioni sulla sincronizzazione crittografica dei server.Quando il server di origine (il server da cui si sta esportando i dati da) e il server di destinazione (il server in cui si sta importando i dati) si utilizzano file di stash della directory non corrispondenti e si specificano i valori di seed di codifica e di sale del server di destinazione, qualsiasi dato codificato AES verrà decodificato utilizzando i tasti AES del server di origine, quindi ricrittografato utilizzando i valori seed e sale di codifica del server di destinazione. Questi dati crittografati vengono memorizzati nel file LDIF.
Il seme di cifratura viene utilizzato per generare una serie di valori chiave segreti AES. Questi valori sono memorizzati in un file stash di directory e utilizzati per crittografare e decodificare la password memorizzata e gli attributi chiave segreti. Il valore seed di crittografia deve contenere soltanto caratteri ASCII ISO-8859-1 stampabili con valori compresi tra 33 e 126 e la sua lunghezza deve essere compresa tra 12 e 1016 caratteri. Consultare ASCII characters from 33 to 126 , nella documentazione IBM Security Directory Server nella sezione Administering per informazioni su questi caratteri.
Il sale di crittografia è un valore generato casualmente che viene utilizzato per generare chiavi di crittografia AES. È possibile ottenere il valore del sale del server di destinazione ricercando (utilizzando l'utility idsldapsearch) la voce "cn = crypto, cn = localhost" del server di destinazione. Il tipo di attributo è ibm-slapdCryptoSalt.
- Una volta eseguita correttamente l'esportazione dei dati utilizzando idsdb2ldif , attivare server1 in modo che possa funzionare in modalità di lettura e scrittura.
idsldapexop -D <adminDN> -w <adminPW> -op quiesce -rc o=sample -end - Copiare il file <server1data.ldif> sul computer in cui si trova server2 .
- Sul computer dove si trova server2 , emettere il seguente comando:
doveidsldif2db -r no -i <server1data.ldif> -I <instance_name>-r noimpedisce la replica della serie di voci. Per importazioni di dati ldif di grandi dimensioni, utilizzare il comandoidsbulkload(senza l'opzione-r no). - Dopo aver completato l'importazione dei dati su server2, immettere il comando
idsrunstatsper ottimizzare le statistiche della tabella:idsrunstats -I <instance_name> - Inizio server2:
idsslapd -I <instance_name> -n - Sul server1, riprendere l'accordo di replica sospeso su server2:
idsldapexop -D <adminDN> -w <adminPW> -op controlrepl -action resume \ -ra "cn=server2,ibm-replicaServerId=<server1-uuid>,ibm-replicaGroup=default,o=sample" - Su server2, riprendere l'accordo di replica sospeso su server1: :
idsldapexop -D <adminDN> -w <adminPW> -op controlrepl -action resume \ -ra "cn=server1,ibm-replicaServerId=<server2-uuid>,ibm-replicaGroup=default,o=sample"