Forum archive
openLDAP Appliance and General Development Philosphy
First of all, I want to say thank you to Alon and Liraz for the great work on these appliances and especially the new tkldev environment. I've been keeping tabs on TurnKey Linux since hearing about it a couple of years ago and finally decided to take the plunge and convert my CentOS 5 based servers in the hopes that it will be more maintainable with respect to the configuration changes that I have to make. The tkldev appliance has been great to work with to creat new builds that are setup the way I need.
As I've been working through the openLDAP appliance I came across a few items that I think should be improved from the default appliance configuration, and I wanted to get some feedback from you all as far as how best to proceed. My primary question is what types of changes should be pushed upstream to the appliance and which should be handled as patches that users can download and apply if they need that functionality? I'm envisioning a possible environment where there is a base appliance with a good default configuration and then various patches that configure it for more specific capabilities. Some examples using the openLDAP appliance are below.
Configure phpLDAPadmin (web gui to LDAP server) to access the cn=config database with the server configurations. I think this, if the devs agree, would become part of the base appliance. I've created a branch to add that functionality and submitted a pull-request via github if anyone wants to check it out.
Configure recommended default indices for openLDAP to improve performance. I think this should also become part of the base appliance, and also created a branch with the needed functionality.
A set of phpLDAPadmin templates and configuration to make managing the LDAP server friendlier. This I could see going either way, part of appliance or tklpatch, mostly because it would tend to impose a particular directory structure/workflow. Although if done well it would encourage people to implement a good structure to their database. For this one I currently have a tklpatch but if there was interest I could easily make it a branch so that it could be included in the base appliance.
Add the SAMBA schema and phpLDAPadmin templates to manage SAMBA (Windows compatible file server) users via LDAP. This one I'm leaning a little more toward just providing a patch that users could apply if they wanted, simply because not everyone who is setting up an LDAP server is going to use the SAMBA schema. That said, it shouldn't hurt to have the schema loaded even if not using it, however it may have a performance impact for large databases. I also noticed the phpLDAPadmin includes several SAMBA related templates by default, so have some customized SAMBA related templates also shouldn't be a big deal. This was actually what started it all since I had originally developed a couple of custom templates and thought it would be nice to have an automated way to apply them to a new server.
Finally, there are some changes that would be need to tklcore and the fileserver appliances to authenticate against the LDAP server. I think it would be great to just install an appliance and in the inithooks specify the domain and LDAP server etc, and have it all setup and working. For these I would think that creating a separate appliance would be the best approach since you don't necessarily want the same configuration between the original appliance and the LDAP enabled one. However, maybe something where the inithooks ask if you want LDAP authentication or not. I'm not sure which would be more difficult to maintain, separate appliances that are almost identical, or an inithook script that configures the appliance for different capabilities.
Anyway, I'd appreciate feedback on my thoughts above. I see this being applicable to more appliances than the ones I'm using especially when considering TurnKey Linux as a network infrastructure.
Overall my inclination would be to add the functionality to OpenLDAP (to communicate with Samba). From where I sit; it wouldn't be too much extra even if the OpenLDAP user didn't want it. And a bonus if they did. Although as you know I don't know much about LDAP...
On the Samba side, using a patch (perhaps installable with a helper script) and perhaps also documenting what needs to be done would be the way to go IMO...