I provision about 40 machines using MAAS and juju. The script I use is below (it has the same problem is I turn --debug off):
juju bootstrap -e maas --debug --upload-tools=true --metadata- source="~/.juju/sync-tools" --to jujuBS.local
juju deploy --repository=".juju/charms" local:juju-gui --to 0
juju expose juju-gui
juju add-machine octave-controller.local
juju deploy --repository=".juju/charms" local:octave-controller --to 1
juju expose octave-controller
juju deploy --repository=".juju/charms" local:octave
juju add-relation octave-controller octave
juju add-unit -e maas octave -n 36
juju add-unit octave --to 0
echo "sleep 300 - force time for octave controller to be build"
sleep 300
juju expose octave
The script works fine except the machines are provisioned serially. It is definitely a juju problem. Using the MAAS web interface, i can request them all at once, and they all fire up. But if I do it through juju, I can watch the maas.log and see juju asking mass for one machine at a time.
As you can see in the script I have juju allocate 36 nodes at once, yet it does them serially, and takes roughly 9 minutes per node. This is on a GB e-net, and the few seconds out of that minute the network is utilized, it is running at ~40MB/S, so it is not a bandwidth problem.
I rebuild my different systems on a regular basis to do different tasks, and am slated to get more machines, and the wait is getting painful, and will only get worse.
Does anyone have any idea why juju only provisions serially? Thanks.