On 17-7-2012 16:59, Dan Frincu wrote:
> Hi,
>
> On Tue, Jul 17, 2012 at 5:50 PM, Anne Blankert <[email protected]> 
> wrote:
>> On 16-7-2012 14:55, Dan Frincu wrote:
>>> Hi,
>>>
>>> On Mon, Jul 16, 2012 at 4:18 AM, Anne Blankert wrote:
>>>> Hello list,
>>>>
>>>> I am a newbie playing with heartbeat / pacemaker on ubuntu 12.04 LTS. I
>>>> have defined the following resource primitives and switchover/fail-over
>>>> works almost fine.
>>>>
>>>> primitive ip1 ocf:heartbeat:IPaddr2 \
>>>>            params ip="10.10.10.2" nic="eth0:0"
>>>> primitive ip1arp ocf:heartbeat:SendArp \
>>>>            params ip="10.10.10.2" nic="eth0:0"
>>>>
>>>> The firewall/router in the datacenter does not accept gratuitous ARP
>>>> (according to the manual: to prevent ip-spoofing). However, as a
>>>> work-around, I have a script that forces the router to reset the arp
>>>> table for the virtual ip. How can I tell the crm to run this script when
>>>> the IPaddr2 resource is moved?
>>>>
>>>> I found a parameter "local_start_script" that can be passed to
>>>> ocf:IPaddr2, but the IPaddr2 script ignores this parameter. In a post to
>>>> this list, a patch to IPaddr2 was proposed, but not accepted.
>>>>
>>>> primitive ip1 ocf:heartbeat:IPaddr2 \
>>>>            params ip="10.10.10.2" nic="eth0:0" \
>>>>            local_start_script="/home/user1/arpreset"
>>>>
>>>> There also exists the ocf:anything script, but this script expects a
>>>> parameter 'binfile' that should point to a deamon, not a one shot script.
>>>>
>>>> So, is there a simple - best practice - way to run a one-shot script on
>>>> switchover / fail-over / fail-back?
>>> Make the script LSB compliant [1], and then add it to the
>>> configuration or use the ocf:heartbeat:Dummy to create a RA out of
>>> that script. On the long run, the second option might prove more
>>> useful, but it depends on your specific requirements.
>>>
>>> HTH,
>>> Dan
>>>
>>> [1] http://www.linux-ha.org/wiki/LSB_Resource_Agents
>> The suggestion to take the ocf:heartbeat:Dummy script worked out fine.
> Great!
>
>> Steps I took:
>>
>> 1. cd /usr/lib/ocf/resource.d/heartbeat
>> 2. cp Dummy ArpReset
>> 3. edit file ArpReset and replace all 'dummy' by 'arpreset' and 'Dummy'
>> by 'ArpReset'
>> 4. insert the call(s) to the one-shot script(s) in file ArpReset
>> arpreset_start() {
>>       arpreset_monitor
>>       if [ $? =  $OCF_SUCCESS ]; then
>>           **** call script here
>>           **** sleep 4
>>           **** call script again
>>           return $OCF_SUCCESS
>>       fi
>>       touch ${OCF_RESKEY_state}
>> }
hmm, looked ok, but was not. Should be:
arpreset_start() {
       arpreset_monitor
       if [ $? =  $OCF_SUCCESS ]; then
           return $OCF_SUCCESS
       fi
       **** call script here
       **** sleep 4
       **** call script again
       touch ${OCF_RESKEY_state}
  }


>> 5. test if the script is correct
>> ocf-tester -n resourcename ArpReset
>>
>> 6. crm configure edit
>> primitive arpreset ocf:heartbeat:ArpReset
>> group groupname resource1 resource2 arpreset
> Except for one thing, a group has implicit colocation and ordering
> definitions as it is a syntactic shortcut for the 2 lines below, so
> remove those two and leave only the group, that should suffice.
Removed
>
>> colocation colocoationname inf: resource1 resource2 arpreset
>> order ordername inf: resource1:start resource2:start arpreset:start
>>
>>
>> Thanks,
>>
>> Anne
>>
Thanks,

Anne

_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to