Worker in cluster with different processor architecture

I’ve got a new cluster being run with a manager on Intel hardware but the worker on Raspberry Pi 2. The Raspberry Pi was previously working in standalone mode successfully with Bro 2.4 compiled and installed. When I moved it into the manager/worker configuration, all went well with the installation except for the inevitable error due to the manager pushing an Intel executable over to the worker which it can’t recognize/run:

/usr/local/bro/bin/bro: 3: /usr/local/bro/bin/bro: Syntax error: Unterminated quoted string
/usr/local/bro/bin/bro: 1: /usr/local/bro/bin/bro: ELF: not found

I’ve scanned the online documentation and googled but haven’t yet found a workaround; I’d imagine there might be a way to have the master not overwrite the binaries and allow the native Raspberry Pi compiled binaries run? Or another approach I’m missing? Processor info follows the .sig. Thanks much.

Jamie Saker
cosmotraumatika@gmail.com
BroCon 2015 Attendee (Yea!)

[Manager] (VMWare)

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 6
model name : QEMU Virtual CPU version 2.0.0

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 6
model name : QEMU Virtual CPU version 2.0.0

[Worker-1]

processor : 0
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtst
rm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5

processor : 1
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtst
rm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5

processor : 2
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtst
rm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5

processor : 3
model name : ARMv7 Processor rev 5 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtst
rm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 5

Hardware : BCM2709
Revision : a21041
Serial : 000000002c3a22ee

Unfortunately there isn’t a work around right now that wouldn’t be really hacky (perhaps someone else can provide that extreme hackiness?). This is a problem we’re aware of though and the way that BroControl works is in the middle of being redesigned right now and this scenario will be better accommodated under the new model.

  .Seth

If you apply the attached patch (untested, but I think it might work),
and then do a fresh install of Bro on all machines in your cluster (it
must be installed on the same path on all machines), then when you do
a "broctl install" or "broctl deploy", it shouldn't copy your binaries
from the manager to the workers. If you later want to install a Bro
or broctl plugin, you must do so separately on all machines in your
cluster.

broctl.diff (602 Bytes)