Why are you trying to start LDAP on a node where you don't have your DRBD resource mounted. Having LDAP up on both nodes would make sense if you were building an active/active LDAP cluster with syncrepl or any other replication mechanism. In that case you'd set it up and M/S and or as a clone and would have to provide access to the config file on both nodes. In active/passive case you have to collocate your LDAP resource with your DRBD and filesystem resources and Pacemaker won't try to start LDAP on a node that doesn't have DRBD activated and filesystem mounted.
On Thu, Feb 24, 2011 at 6:06 AM, David McCurley <m...@fabric.com> wrote: > Pacemaker and list newbie here :) > > I'm writing a resource adapter in python for the newer release of OpenLDAP > but I need some pointers on a strategy for the validate function in a certain > case. (In python because the more advanced shell scripting hurts my head :). > Here is the situation: > > The config file for OpenLDAP is stored in /etc/ldap/slapd.d/cn=config.ldif. > This is on a DRBD active-passive system and the /etc/ldap directory is > actually a symlink to the DRBD controlled share /vcoreshare/etc/ldap. The > real config file is at /vcoreshare/etc/ldap/slapd.d/cn=config.ldif. > > So I'm trying to be very judicious with every function and validation, > checking file permissions, etc. But the problem is that > /etc/ldap/slapd.d/cn=config.ldif is only present on the active DRBD node. My > validate function checks that the file is readable by the user/group that > slapd is to run as. Now, as soon as I start ldap in the cluster, it starts > fine, but validate fails on the standby node (because the DRBD volume isn't > mounted) and crm_mon shows a failed action: > ---------------------------------------------- > ============ > Last updated: Wed Feb 23 07:35:19 2011 > Stack: openais > Current DC: vcoresrv1 - partition with quorum > Version: 1.0.8-042548a451fce8400660f6031f4da6f0223dd5dd > 2 Nodes configured, 2 expected votes > 5 Resources configured. > ============ > > Online: [ vcoresrv1 vcoresrv2 ] > > fs_vcoreshare (ocf::heartbeat:Filesystem): Started vcoresrv1 > Master/Slave Set: ms_drbd_vcoreshare > Masters: [ vcoresrv1 ] > Slaves: [ vcoresrv2 ] > clusterip (ocf::heartbeat:IPaddr2): Started vcoresrv1 > clusteripsourcing (ocf::heartbeat:IPsrcaddr): Started vcoresrv1 > > Failed actions: > ldap_monitor_0 (node=vcoresrv2, call=130, rc=5, status=complete): not > installed > --------------------------------------------- > > Is there a way for my RA to know that it is being called on the active node > instead of the passive node. Or more generally, what would anyone recommend > here? I really didn't want to write the resource adapter so it would be > specific to our setup (e.g. checking to make sure the DRBD mount is readable > before looking for the config files). Maybe Pacemaker passes in some extra > env variable that can be used? > > I'm reluctanct to post the code for the RA here in the list because it is 450 > lines. But, here is the logic for the validate function: > > if the appropriate slapd user and group do not exist: > return OCF_ERR_INSTALLED > if the ldap config file doesn't exist or isn't readable by the slapd user: > return OCF_ERR_INSTALLED > if the ldap binary doesn't exist or isn't executable: > return OCF_ERR_INSTALLED > return OCF_SUCCESS > > Or maybe I'm overdoing it in my tests or have misinterpreted the "OCF > Resource Agent Developer's Guide"? > > Any advice or guidance / clarification appreciated. > > Thanks, > > Mac > > _______________________________________________ > Pacemaker mailing list: Pacemaker@oss.clusterlabs.org > http://oss.clusterlabs.org/mailman/listinfo/pacemaker > > Project Home: http://www.clusterlabs.org > Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf > Bugs: > http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker > -- Serge Dubrouski. _______________________________________________ Pacemaker mailing list: Pacemaker@oss.clusterlabs.org http://oss.clusterlabs.org/mailman/listinfo/pacemaker Project Home: http://www.clusterlabs.org Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf Bugs: http://developerbugs.linux-foundation.org/enter_bug.cgi?product=Pacemaker