Proposed path to allow LDAP server redundancy

I have had some problems with unreliability of my AD servers. When the server I am pointing at goes down, OTRS comes to a screeching halt. It is frustrating to reconfigure Config.pm to point at a different host. It is even worse if I don't have access to a computer and can't fix it. After getting some feedback from Robert and Volker, I would like to propose a modification to the various LDAP.pm files that would allow for failover to another server if the primary one is not available. The modules affected are: Kernel/System/CustomerUser/LDAP.pm Kernel/System/CustomerAuth/LDAP.pm Kernel/System/Auth/LDAP.pm I have included a diff file that contains the modifications made to each file. The basic idea is a foreach loop that loops through a list of servers looking for a valid host. The loop quits as soon as the first active host is found. The list is passed in from Config.pm via a reference to a regular array. Here is what I put in Config.pm # Create an array with the list of LDAP servers. Your primary LDAP server should be # listed first. my @hosts = ('server1.example.com','server2.example.com','server3.example.com','etc'); # Use this when setting up Agent LDAP authentication $Self->{'AuthModule::LDAP::Host'} = \@hosts; #Use this when setting up Customer LDAP authentication $Self->{'Customer::AuthModule::LDAP::Host'} = \@hosts; #Use this if pointing to a Customer User database (that comes from the same LDAP source # as your agent and customer auth) $Self->{CustomerUser} = { Name => 'LDAP Source', Module => 'Kernel::System::CustomerUser::LDAP', Params => { # ldap host Host => \@hosts, [...] Please give me your thoughts on this and whether you think it might be a candidate for inclusion in a future version of OTRS. Thank you for your time, Tyler Hepworth

On Tuesday, May 18, 2004 6:21 AM
Tyler Hepworth
I have included a diff file that contains the modifications made to each file. The basic idea is a foreach loop that loops through a list of servers looking for a valid host. The loop quits as soon as the first active host is found. The list is passed in from Config.pm via a reference to a regular array.
Here is what I put in Config.pm
my @hosts =
('server1.example.com','server2.example.com','server3.example.com','etc' );
$Self->{'AuthModule::LDAP::Host'} = \@hosts; $Self->{'Customer::AuthModule::LDAP::Host'} = \@hosts; Host => \@hosts,
Please give me your thoughts on this and whether you think it might be a candidate for inclusion in a future version of OTRS.
Sounds and looks like it should work oob. One addition, though: If we'd implement it, we'd break existing configurations, which we want to avoid at most costs. Is it possible you implement code to let the user either use a single host or an array? Regards, Robert Kehl -- ((otrs.de)) :: OTRS GmbH :: Norsk-Data-Str. 1 :: 61352 Bad Homburg http://www.otrs.de/ :: Tel. +49 (0)6172 4832388
participants (2)
-
Robert Kehl
-
Tyler Hepworth