Date: Thu, 2 Feb 2012 11:59:45 +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_=WB9625UpFmxf_rXPBVpp1Koqwgh=ZGGN738o4aXkfhg@mail.gmail.com> In-Reply-To: <4F2A6979.9090403@my.gd> References: <CAAwfu_nrrqod80kg2qO28-LBuubiZe_BV--PoNxqjn_OUrV=hg@mail.gmail.com> <4F292596.2090000@my.gd> <CAAwfu_nOgDU-K2=NErBOGteraAOQh1P8bMCTiCzWnpaeFJ3Fkw@mail.gmail.com> <4F2A6979.9090403@my.gd>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello Damoen, thanks for the mail - yesterday I somehow skipped the mail to freebsd forum when replying to you. Some minutes ago i have found another error in my script: 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" ok is: 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" So the difference is using "_" underline sign for carp1 and carp2. I try to get new ideas from your script. Kind regards, Peter On 02/02/2012, Damien Fleuriot <ml@my.gd> wrote: > We're using ifstated to send nagios passive alerts in case a lagg or > carp's interface's state should become degraded. > > Find below the config we're using: > > > > > > > > > carp_up = "carp410.link.up && carp13.link.up" > carp_down = "carp410.link.down && carp13.link.down" > carp_unknown = "carp410.link.unknown || carp13.link.unknown" > init-state auto > > state auto { > set-state inconnu > if $carp_up { > set-state primary > } > if $carp_down { > set-state backup > } > if $carp_unknown { > set-state inconnu > } > } > > state primary { > init { > run "echo \"pf1-gs.hipay;carp;0;carp Master\"| send_nsca_2.7 -H > monit1.hipay.eqx -d \";\" -c /usr/local/etc/send_nsca.cfg" > run "echo \"pf1-gs.hipay;carp;0;carp Master\"| send_nsca_2.7 -H > monit1.hipay -d \";\" -c /usr/local/etc/send_nsca.cfg" > } > if $carp_down { > set-state backup > } > if $carp_unknown { > set-state inconnu > } > if bce0.link.up && bce1.link.up { > run "echo \"pf1-gs.hipay;bond;0;BONDING OK\"| > send_nsca_2.7 -H monit1.hipay.eqx -d \";\" -c /usr/local/etc/send_nsca.cfg" > run "echo \"pf1-gs.hipay;bond;0;BONDING OK\"| send_nsca_2.7 -H > monit1.hipay -d \";\" -c /usr/local/etc/send_nsca.cfg" > } > if bce0.link.down || bce1.link.down { > run "echo \"pf1-gs.hipay;bond;2;BONDING DEGRADED\"| > send_nsca_2.7 -H monit1.hipay.eqx -d \";\" -c /usr/local/etc/send_nsca.cfg" > run "echo \"pf1-gs.hipay;bond;2;BONDING DEGRADED\"| send_nsca_2.7 -H > monit1.hipay -d \";\" -c /usr/local/etc/send_nsca.cfg" > } > } > > > state backup { > init { > run "echo \"pf1-gs.hipay;carp;2;carp Backup\"| send_nsca_2.7 -H > monit1.hipay.eqx -d \";\" -c /usr/local/etc/send_nsca.cfg" > run "echo \"pf1-gs.hipay;carp;2;carp Backup\"| send_nsca_2.7 -H > monit1.hipay -d \";\" -c /usr/local/etc/send_nsca.cfg" > } > if $carp_up { > set-state primary > } > if $carp_unknown { > set-state inconnu > } > if bce0.link.up && bce1.link.up { > run "echo \"pf1-gs.hipay;bond;0;BONDING OK\"| send_nsca_2.7 -H > monit1.hipay.eqx -d \";\" -c /usr/local/etc/send_nsca.cfg" > run "echo \"pf1-gs.hipay;bond;0;BONDING OK\"| send_nsca_2.7 -H > monit1.hipay -d \";\" -c /usr/local/etc/send_nsca.cfg" > } > if bce0.link.down || bce1.link.down { > run "echo \"pf1-gs.hipay;bond;2;BONDING DEGRADED\"| send_nsca_2.7 -H > monit1.hipay.eqx -d \";\" -c /usr/local/etc/send_nsca.cfg" > run "echo \"pf1-gs.hipay;bond;2;BONDING DEGRADED\"| send_nsca_2.7 -H > monit1.hipay -d \";\" -c /usr/local/etc/send_nsca.cfg" > } > > } > > state inconnu { > init { > run "echo \"pf1-gs.hipay;carp;2;carp INIT\"| send_nsca_2.7 -H > monit1.hipay.eqx -d \";\" -c /usr/local/etc/send_nsca.cfg" > run "echo \"pf1-gs.hipay;carp;2;carp INIT\"| send_nsca_2.7 -H > monit1.hipay -d \";\" -c /usr/local/etc/send_nsca.cfg" > } > if $carp_up { > set-state primary > } > if $carp_down { > set-state backup > } > if bce0.link.up && bce1.link.up { > run "echo \"pf1-gs.hipay;bond;0;BONDING OK\"| > send_nsca_2.7 -H monit1.hipay.eqx -d \";\" -c /usr/local/etc/send_nsca.cfg" > run "echo \"pf1-gs.hipay;bond;0;BONDING OK\"| send_nsca_2.7 -H > monit1.hipay -d \";\" -c /usr/local/etc/send_nsca.cfg" > } > if bce0.link.down || bce1.link.down { > run "echo \"pf1-gs.hipay;bond;2;BONDING DEGRADED\"| > send_nsca_2.7 -H monit1.hipay.eqx -d \";\" -c /usr/local/etc/send_nsca.cfg" > run "echo \"pf1-gs.hipay;bond;2;BONDING DEGRADED\"| send_nsca_2.7 -H > monit1.hipay -d \";\" -c /usr/local/etc/send_nsca.cfg" > } > } > > > > > > > > > > > > > > > > On 2/2/12 11:25 AM, peter knezel 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_=WB9625UpFmxf_rXPBVpp1Koqwgh=ZGGN738o4aXkfhg>