Deploying quickly with juju

Posted by jorge // December 1st, 2011 // Uncategorized is a micro blogging service, similar to Twitter, but it’s open source, meaning that your team or company can run it’s own instance on hardware you control, while gaining the benefits of real time communication but keeping control of your data. In this quick demo I’m going to try on Ubuntu. As with ThinkUp, you can deploy this on a local machine, EC2, or OpenStack, but for this demonstration I will deploy it locally in an LXC container to play with it and I will introduce the `juju get` and `juju set` commands. This charm was written by George Edison (Nathan Osman), who also did the ThinkUp charm.

The first thing to do is to configure juju for use. If you want to use it locally you can use the instructions here. For now we’re deploying this via a PPA, but for Ubuntu 12.04 (released in April 2012) this will be built into Ubuntu Server. Let’s install juju:

sudo add-apt-repository ppa:juju/pkgs
sudo apt-get update && sudo apt-get install juju charm-tools

Now let’s get started and snag the statusnet charm:

juju bootstrap
charm get statusnet oneiric/statusnet

Here I like to open another terminal and do a `watch juju status` so I can see what’s going on. Now let’s deploy it, along with MySql, and make them aware of each other, and let the charm do the rest:

juju deploy --repository . local:statusnet
juju deploy --repository . local:mysql
juju add-relation mysql statusnet

While that’s deploying I can also use this moment to pass along some arguments to For example, it needs a username and password to login, things of that nature. These are configuration options in the charm. Let’s find out what they are:

juju get statusnet

charm: local:oneiric/statusnet-1
service: statusnet
        description: The email address of the administrator (cannot be changed)
        type: string
        value: -Not set-
        description: The nickname for the administrator (cannot be changed)
        type: string
        value: -Not set-
        description: The password for the administrator
        type: string
        value: -Not set-
        description: The name of the site
        type: string
        value: Untitled

Ok, so I can set 4 things right off the bat here. Let’s do it and then expose this to the world!

juju set statusnet email="" nickname="jorge" password="whatever" title="jorgedentica"
juju expose statusnet

Doing a `juju get statusnet` will also show me what values I have set for each option. Then I go to the IP address mentioned in `juju status`, login with the credentials and start customizing your new instance:

What about my favorite service?

Anything that can be deployed can have a juju charm, everything from Minecraft, to running your own Steam server is being worked on. Our list is already growing. If you’re looking to add your service to this growing list we would LOVE to work with you. We’ve got Mark Mims working with a bunch of upstream projects right now sharing best practices on getting their projects into charms. The nice thing about charms is they can be written in whatever language you want, which means, your sysadmin probably already has deployment scripts get you most of the way there.

You can find more information on the wiki page. We’re especially looking for upstream projects who want to lay claim to their charm and make it rock, we’re ready to help you get what you need out of the charm store.

We have two event’s coming up, one in IRC, and one at SCaLE if you want to hit us up with more questions, see you there!

One Response to “Deploying quickly with juju”

  1. […] I will deploy it locally in an LXC container to play with it and I will … View post: Deploying quickly with juju | Ubuntu Cloud Portal This entry was posted in Uncategorized and tagged demonstration, local-machine, lxc, status-net, […]