ich habe eine Frage zu dem Skript sync-ldap2db.pl
Zu meiner Verständnisweise dieses Skripts:
Wenn man dieses Skript angepasst hat, synchronisiert es eine LDAP Struktur in die lokale DB.
Soweit sollte Alles klaro sein...
Mein Ausgangspunkt ist derzeit folgender:
Ich habe einen LDAP KundenBackend in OTRS, die Anbindung funktioniert und ist derzeit so realisiert:
Code: Select all
[...]
# Kunden AD-Backend
$Self->{CustomerUser1} = {
Name => 'Active Directoy',
Module => 'Kernel::System::CustomerUser::LDAP',
Params => {
Host => 'Mein.LDAP.Server.org',
BaseDN => 'dc=LDAP, dc=Server, dc=org',
SSCOPE => 'sub',
UserDN => 'SuchUser',
UserPw => 'SuchUserPWD',
AlwaysFilter => '',
Die => 0,
Params => {
port => 389,
timeout => 120,
async => 0,
version => 3,
},
},
CustomerKey => 'mail',
CustomerID => 'mail',
CustomerUserListFields => ['cn', 'mail'],
CustomerUserSearchFields => ['uid', 'cn', 'mail'],
CustomerUserSearchPrefix => '*',
CustomerUserSearchSuffix => '*',
CustomerUserSearchListLimit => 250,
CustomerUserPostMasterSearchFields => ['mail'],
CustomerUserNameFields => ['givenname', 'sn'],
CustomerUserExcludePrimaryCustomerID => 0,
AdminSetPreferences => 0,
CacheTTL => 0,
CustomerInfoString => '$CustomerData->{UserCompany}<br>$CustomerData->{UserSalutation} $CustomerData->{UserFirstname} $CustomerData->{UserLastname}<br>$Cus,
Map => [
[ 'UserSalutation', 'Title', 'title', 1, 0, 'var', '', 0 ],
[ 'UserFirstname', 'Firstname', 'givenname', 1, 1, 'var', '', 0 ],
[ 'UserLastname', 'Lastname', 'sn', 1, 1, 'var', '', 0 ],
[ 'UserLogin', 'Username', 'uid', 1, 1, 'var', '', 0 ],
[ 'UserEmail', 'Email', 'mail', 1, 1, 'var', '', 0 ],
[ 'UserCustomerID', 'CustomerID', 'mail', 0, 1, 'var', '', 0 ],
[ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
[ 'UserPhone', 'Phone', 'telephonenumber', 1, 0, 'var', '', 0 ],
[ 'UserAddress', 'Address', 'postaladdress', 1, 0, 'var', '', 0 ],
[ 'UserComment', 'Comment', 'description', 1, 0, 'var', '', 0 ],
],
};
[...]
Nun kam mir die Idee, dass man den LDAP einmal pro Woche mit der DB syncen könnte und ich den LDAP BackEnd wieder fallen lasse.
Wie verhält sich nun das genau?
Bei dem Erstlauf wird die DB gefüllt, so denke ich mal.
Wenn bei einem weiteren Lauf auf einmal Userdaten sich verändert haben (z.B. ein Mitarbeiter hat das Unternehmen verlassen oder eine Tel.Nr. hat sich geändert, etc) wird das immer 1:1 gesynct?
Werden dann automatisch:
Mitarbeiter, die nicht mehr im Unternehmen sind gelöscht...
Nummern, die sich geändert haben, in der DB direkt angepasst...
Also wird die DB immer durch das Skript auf absolut konsistenten Stand gehalten?
Was ist ungern haben möchte ist, dass die DB auf einmal verwaist und irgendwelche Leichen in der DB rumliegen...