Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Feb 2012 11:49:02 +0100
From:      peter knezel <peter.knezel@gmail.com>
To:        Damien Fleuriot <ml@my.gd>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: carp+devd+ifstated on master problem
Message-ID:  <CAAwfu_=msPLbnsxdmeZxe6ELe4VuzW2zZW5Ze6HJx0SAHhm37Q@mail.gmail.com>
In-Reply-To: <CAAwfu_nOgDU-K2=NErBOGteraAOQh1P8bMCTiCzWnpaeFJ3Fkw@mail.gmail.com>
References:  <CAAwfu_nrrqod80kg2qO28-LBuubiZe_BV--PoNxqjn_OUrV=hg@mail.gmail.com> <4F292596.2090000@my.gd> <CAAwfu_nOgDU-K2=NErBOGteraAOQh1P8bMCTiCzWnpaeFJ3Fkw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
I have looked a bit into the ifstated.conf file and realized, that it
does not behave as I want.

So currently the setting is the following:

 cat /usr/local/etc/ifstated.conf
init-state one

net = '( "ifconfig -a -u |grep carp0 > /dev/null" every 3 && "ifconfig -a -u
|grep carp1 > /dev/null" every 3 && "ifconfig -a -u |grep carp2 > /dev/null"
every 3)'

state one {
        if ( ! $net ) {
                run "/sbin/ifconfig_carp0 vhid 1 pass newpass 192.xx.xx.1/24"
                run "/sbin/ifconfig carp1 vhid 2 pass newpass 192.xx.xx.2/24"
                run "/sbin/ifconfig carp2 vhid 3 pass newpass 192.xx.xx.3/24"
                run "/usr/local/testup.sh"
                set-state two
        }
}

state two {
        if ( $net ) {
                run "/usr/local/testup.sh"
                set-state one
        }
}


When I do ifconfig carp0 down/up script run testdown.sh/testup.sh
but not valid for carp1,carp2. It immediately brings up carp1/carp2
and runs testup.sh after executing testdown.sh if triggered with
ifconfig carp1 down (or ifconfig carp2 down).

Peter

On 02/02/2012, peter knezel <peter.knezel@gmail.com> wrote:
> Hello Damien,
>
> of course, the tnewpass was my copy error - newpass is OK and is in
> config files  everywhere.
> And the carp interfaces' advskew, vhid and
> pass are already in /etc/rc.conf.local.
>
> What I simply would like to try is run scripts if carp interfaces change.
> Actually my real aim is to synchronize file from slave server to
> master if master reboots or slave becomes master due to carp problems
> on the master.
> Regards,
> Peter
>
>
> On 01/02/2012, Damien Fleuriot <ml@my.gd> wrote:
>>
>>
>> On 2/1/12 12:12 PM, peter knezel wrote:
>>> Hello all,
>>>
>>> I have configured devd and ifstated on a master FreeBSD server (slave
>>> not changed so far) on which carp was configured with three
>>> carp0,carp1 and carp2 virtual addresses.
>>>
>>> When I as root do ifconfig carp0 down and up, the corresponding
>>> testdown.sh and testup.sh
>>> scripts are run (defined in ifstated.conf).
>>> The status of carp0 interface changes to INIT then to MASTER (after
>>> ifconfig carp0 up).
>>>
>>> However this is not valid when doing the same with carp1 or carp2.
>>> It goes to INIT+testdown.sh executed but then immediately afterwards
>>> it goes to MASTER+testup.sh executed.
>>>
>>> What can be the problem?
>>>
>>> cd /usr/local/etc
>>> cat ifstated.conf
>>> init-state one
>>>
>>> net = '( "ifconfig -a -u |grep carp0 > /dev/null" every 3 && "ifconfig
>>> -a
>>> -u
>>> |grep carp1 > /dev/null" every 3 && "ifconfig -a -u |grep carp2 >
>>> /dev/null"
>>> every 3)'
>>>
>>> state one {
>>>         if ( ! $net ) {
>>>                 run "/sbin/ifconfig_carp0 vhid 1 pass newpass
>>> 192.xx.xx.1/24"
>>>                 run "/sbin/ifconfig carp1 vhid 2 pass newpass
>>> 192.xx.xx.2/24"
>>>                 run "/sbin/ifconfig carp2 vhid 3 pass newpass
>>> 192.xx.xx.3/24"
>>>                 run "/usr/local/testdown.sh"
>>>                 set-state two
>>>         }
>>> }
>>>
>>> state two {
>>>         if ( $net ) {
>>>                 run "/sbin/ifconfig carp0 vhid 1 advskew 100 pass
>>> tnewpass 192.xx.xx.1/24"
>>>                 run "/sbin/ifconfig carp1 vhid 2 advskew 100 pass
>>> newpass 192.xx.xx.2/24"
>>>                 run "/sbin/ifconfig carp2 vhid 3 advskew 100 pass
>>> newpass 192.xx.xx.3/24"
>>>                 run "/usr/local/testup.sh"
>>>                 set-state one
>>>         }
>>> }
>>>
>>> In addition I had to configure devd.conf to have ifdown.sh and ifup.sh
>>> scripts executed when reboot is done on the master.
>>>
>>> notify 30 {
>>> match "system" "IFNET";
>>> match "subsystem" "carp0";
>>> match "type" "LINK_UP";
>>> action "/usr/local/etc/rc.d/ifdown.sh";
>>> };
>>>
>>> notify 30 {
>>> match "system" "IFNET";
>>> match "subsystem" "carp0";
>>> match "type" "LINK_DOWN";
>>> action "/usr/local/etc/rc.d/ifup.sh";
>>>
>>> Thanks for any suggestion in advance.
>>>
>>> Ardi
>>
>> I'm not sure I get what you're trying to do here.
>>
>> Is there a reason you do not set your carp interfaces' advskew, vhid and
>> pass in /etc/rc.conf ?
>>
>> Also, I notice in state 2 your password for carp0 is tnewpass, while the
>> other ones are newpass.
>>
>> _______________________________________________
>> freebsd-questions@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
>> To unsubscribe, send any mail to
>> "freebsd-questions-unsubscribe@freebsd.org"
>>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAAwfu_=msPLbnsxdmeZxe6ELe4VuzW2zZW5Ze6HJx0SAHhm37Q>