Openldap visszaallitas masik gepre

Fórumok

Sziasztok!

Openldap szervert szeretnek menteni es visszatolteni.

A mentes ezzel a logikaval megy:
slapcat -n 0 -l config.ldif
slapcat -n 1 -l data.ldif
vagy
slapcat -l teljes.ldif

Az lenne a kerdes, hogyan lenne a legjobb visszatolteni ha netan egy teljesen uj gepre kellene visszaallni?

Eddig ha a :
slapadd -n 1 -l data.ldif-csal akartam visszaalni, ugyanarra a gepre akkor:

55c8717f => hdb_tool_entry_put: id2entry_add failed: DB_KEYEXIST: Key/data pair already exists (-30995)
55c8717f => hdb_tool_entry_put: txn_aborted! DB_KEYEXIST: Key/data pair already exists (-30995)
slapadd: could not add entry dn="dc=example,dc=com" (line=1): txn_aborted! DB_KEYEXIST: Key/data pair already exists (-30995)

Tehat visszallni eddig csak ugy tudtam, hogy eloszor leallitottam a slapd-t majd toroltem a /var/lib/ldap alatt levoket majd
slapadd -l teljes.ldif

Azt nem latom, hogy ha en:

slapcat -n 0 -l config.ldif csak configot ir
slapcat -n 1 -l data.ldif csak datat ir

melyik parancs irja ki a teljes adatbazist, data es config egyutt?
Vagy ezt csak a fenti modon lehet kinyerni?

Ez nem gond, de akkor hogyan toltok vissza egy teljesen uj gepre?

Lehet, hogy kicsit sokat kerdeztem egyszerre. De remelem ertheto volt.

Hozzászólások

Mar reg csinaltam ilyesmit es akkor se sokat, ugyhogy remelem valaki majd kijavit. ;)

man slapadd:

Limitations

Your slapd(8) should not be running when you do this to ensure consistency of the database.

Szoval szerintem pont jot csinaltal amikor leallitottad. Amugy meg talan "slapcat -b..."-vel le tudod ugy szukiteni, hogy ne legyen utkozes az uj ures LDAP-ban, es akkor a kezzel torles sem kell (ami nem tudom mennyire egeszseges).

Akkor valaki írja már meg mi a pontos menete annak, hogy egy openldap szervert egy másikra vissztoltsek?

A példádban a data.ldif vagy a teljes.ldif fájlból vedd ki a "dn: dc=domain,dc=hu" és a "dn: cn=admin,dc=domain,dc=hu" kezdetű blokkokat. Ha a sémák nem hiányoznak, akkor ezzel elvileg be kéne tudnod húzni. (A kérdéses dn-eket valószínűleg a slapd install már belőtte és azért hisztizik duplikációra.)

Amiket én csináltam (de nem biztos, hogy jól):
1. A régi gépen slapcat -l teljes.ldif
2. Ha vannak extra sémáid (pl. dhcp), akkor ha nincsenek ldif fájlok a /etc/ldap/schema mappában, akkor a schema fájlokból létrehozom.
3. Az új gépen behúzom a sémás ldif fájlokat.
4. Leállítom az LDAP-ot
5. Slapadd-dal behúzom a módosított teljes.ldif-et
6. Elindítom az LDAP-ot

Tuti, hogy lehetne szebben is, de esetemben ez eddig megfelelőnek tűnik.

Amikor csinaltam visszaallitasi tesztet, akkor is le kellett torolnom az adatbazist elotte.
Mivel teljes adatbazis dump-od van, ezert ertheto is a dolog.

1. tar the following directories + copy to new machine
/etc/ldap
/var/lib/ldap

2. convert the configs and dit to ldif

sudo slapcat -n 0 > backup/config.ldif.raw
sudo slapcat -n 1 > backup/users.ldif

sudo egrep -v ‘^entryCSN:’ < config.ldif.raw > config.ldif

3. Install slapd and ldap-utils on new machine
stop slapd
4. Copy the old /etc/ldap directory to new machine.
5. Make sure openldap:openldap owns /etc/slapd.d/
6. delete /var/lib/ldap
7. sudo -n 1 -l backup/users.ldif
8. remove content from /etc/ldap/slapd.d
9. sudo slapadd -F /etc/ldap/slapd.d -n 0 -l backup/config.ldif
10. chown -R openldap:openldap /etc/ldap/slapd.d
11. start slapd