Juju is magic

I recently started working for Canonical in the web team, and I’ve just had the pleasure of trying Juju , a one-command server deployment tool.

The name is very apt, it feels like magic when you’re working with it, check this out:

$ juju deploy jenkins

and in a minutes you will have a full working vm with jenkins on deployed! Juju supports AWS, Azure, Openstack, local deployment (with lxc) in addition to some other providers.

The getting started instructions are very straight-forward, but I had a few stumbling blocks:

  • As per the instructions

    juju init

    Is supposed to generate a config for you, but it actually just outputs the config. Cat that to ~/.juju/environments.yaml and you’ll be in business.

  • If you are going to use juju locally you might think you need to install openstack (I certainly did). You don’t, juju uses LXC, apt-get it. (you’ll need mongodb-server too).

  • I believe juju copies your ssh public key to each machine (so you can ssh into it), so you’ll need both parts of your key (I only had the private part on this machine) ssh-keygen if you don’t have a key yet.

  • To install the admin ui, do

    $ juju deploy juju-gui

    Then $ juju expose it and connect to it’s ip (juju status) on port 8000.

Have fun!