“Rick, I want you to fire up an empty cloud deployment”, said no boss ever.

The various teams who make up “The Ubuntu Server Team” work on various bits. Some work to make OpenStack easy to deploy, some work on packaging, some work on building images for all the public clouds we support. All this is fine and dandy, but at the end of the day, our users deploy things on top of Ubuntu Server, and these workloads are really what it’s all about.

Over the past two years it’s been increasingly obvious to us that orchestrating workloads is becoming one of the most important things we can help users with. What’s the point of an easy to use OpenStack installer if people can’t plop Hadoop, or Cassandra, or their Rails app right on top easily?

One part of this solution is our work on Juju, which makes orchestration simple; we can just manage deployments at the service level while not caring (too much) about individial instances. Some people wanted and needed things to be even highter level. “Look, I’ve got a pile of machines over here, I need a MongoDB cluster” and you don’t have the time! Or more increasingly, you know how to do all these steps, but need a way to make it portable so everyone else in your organization can benefit from your hard work.

So today we announced Juju Bundles. Technically, they’re very simple, it’s a yaml file that describes charms and their relationships to other charms. It can contain machine constraints, or any of the parameters you’d ship in a charm. That means deploying large swaths of services are now one command.

juju quickstart bundle:~charmers/mongodb/cluster
juju quickstart bundle:~charmers/hadoop/cluster
juju quickstart bundle:~charmers/mediawiki/scalable

There’s a 13 node 3 shard MongoDB cluster, a 7 node starter Hadoop cluster, and a 5 node Mediwiki. All of them can be horizontally scaled out of the box. juju add-unit -n10 hadoop-slavecluster and go to town. Not Bad!

Getting Started

If you’re on Ubuntu Rick has the info in his blog post, you basically:

sudo add-apt-repository ppa:juju/stable
sudo apt-get update
sudo apt-get install juju-quickstart

Then run one of the commands I mentioned:

juju quickstart bundle:~charmers/mongodb/cluster

Juju will then walk you through setting up an environment. Pick one. AWS, Microsoft Windows Azure, Joyent, HP Cloud, or your own OpenStack or laptop via LXC, then fill out your creds:

Now get a cup of coffee, or watch the console for the magic, maybe read the README.

Now go put that bad boy to work.

Quickstart is not yet available for OSX or Windows (we’re working on it), but if you want to play with it we’ve made a Vagrant box available for you to play with.

The Future

Over the course of the next few weeks as we ramp up to 14.04 we’ll be doing a few things. We’ll be tightening up the URLs to be easier to remember, so something like juju quickstart bundle:mongodb/cluster. Obviously we’d love to see more bundles from the community being submitted.

Check out the documentation for more, and for a more technical description of how bundles work check out Rick’s blog post. We also made a tutorial video on how to make and share your own bundles.

It’s that time of the year where elections are needed for 2 available moderator positions on Ask Ubuntu.

Here are the list of nominees, if you have 150 rep on the site you can cast a vote.

The primary closes in 3 days, after which the election begins. Please take the time to read the statements from each of the candidates and cast a vote!

One of the more annoying things about setting up cloud tools is copying and pasting your auth keys and strings into config files. Some people set variables, other have config files.

One thing we wanted to do in Juju is to make sure that people can generate the proper configs for their clouds, and that can be problematic with people copying and pasting snippets around, so behold, juju quickstart.

When invoked with juju quickstart -i we offer you fields to fill in for whatever you are deploying on:

And here’s the fields for a provider:

And here’s my favorite part, when a field is wrong or missing, it tells you!

This should help making it easier to get up and running.

Right before the holidays Robie Basak filed a Main Inclusion Report for nginx in Ubuntu. What does this mean? This means that nginx will sit alongside Apache in 14.04 with full security updates over the life of the release.

This is excellent news for those of you using stacks that tend to use nginx; increasing our support of nginx has been something many Ubuntu Server users have been telling me they’d like to see and it’s good to see us make some progress in this area.

All this is possible due to Thomas Ward; who has been rocking nginx in Ubuntu for a while now. Without his tireless efforts this couldn’t have been possible! He’s also maintaining PPAs for stable and development releases of nginx for every Ubuntu release since 10.04. What an excellent contribution to the community!

On the Juju front we have some charms that allow you to dynamically swap between Apache and nginx. Over the course of the year we’d like to see more charms have an option to use nginx. If you are interested in working on that, let me know.

UPDATE: Note that the MIR has been filed, technically it is not in main yet, and it must go through that process, but we’re confident that there won’t be major issues in time for 14.04.

The following is a guest post from Lucio Martinez:

Yesterday the community of Ask Ubuntu has joined to all the Stack Exchange network celebrating the holidays in the the coolest way, by wearing hats!

Those that had been visiting the site one year ago were happy when they started to see a new bonus for doing cool stuff like editing, answering, etc. This year you get a bonus. Hats, and here I’m going to show you why they are so amazing:

Now you know perfectly why hats are great :)

The hats have their own page where you can see them all and also the action to unlock it. For instance, someone who won “The Stallman” for edit a community wiki post will get this:

So start editing, answering, upvoting, chating, reviewing and doing all those amazing things that you do every day to make this a great community!

LET THE HATS BEGIN!

After about ~7 months of prototyping our watercooler is here.

Introducing discourse.ubuntu.com:

Our new discussion site built on the modern 100% Free Software Discourse platform. Log in with your Ubuntu SSO and start the party!

Over the next week or so I’ll be detailing instructions for community members to integrate their blog comments with the platform, and we have a bunch of integration ideas between Discourse and summit.ubuntu.com , as well as other integration points with mailing lists and social networks.

We also have an entire section dedicated to Local Team categories, so if you’re looking to jump in with your local team, let me know.

One of the things I’ve heard about people managing services over the last year or so is that even though it’s useful to do things at the service level, sometimes even doing that can be time consuming or tedious.

For example if you want Discourse or Mediawiki then you need to know which databases those services need. Why not just steal what some other person has put together and deploy it all at once? Services by themselves are fun but I want an entire working thing out of the box!

Bundles are sets of services that are bundled together in one file that you can deploy. And we’re putting them in the Juju Charm Store so that you not only get to share individual services, but clumps of working deployments. It’s easy, you merely model your deployment in the Juju GUI, export, and then share the yaml file. Bundles also have their own page in the store, showing users what components are available, how to use it, and what they consist of.

The nice thing is that you can deploy the entire thing at once:

juju quickstart bundle:~gary/demo/2/instantBigDataNoSQL

This fires up a bootstrap node, add the Juju GUI to the environment and deploys this monster.

Here’s what it looks like from scratch.

sudo add-apt-repository ppa:juju/stable
sudo apt-get install juju-core juju-quickstart
sudo apt-get update

juju init -w

Then edit ~/.juju/environments.yaml with your cloud credentials. Then pick a bundle to deploy.

juju quickstart bundle:~makyo/mediawiki-scalable/5/mediawiki-scalable

or

juju quickstart bundle:~jorge/mediawiki-simple/3/mediawiki-simple

or

juju quickstart bundle:~jorge/discourse/5/discourse-simple

Bundles are in beta, so here’s the caveats. Doing the environments.yaml dance gets tedious, so we’re working on the quickstart command to prompt you for credentials for whatever cloud you want to use. We also realize that the URLs aren’t exactly ideal, but we’re working to make that simpler. Bundles don’t support –to right now either, so “run an entire Discourse install on one cheap node” is not quite there yet, but we’ll be there soon. The goal by 14.04 is just to have the one quickstart command do what you want without all the previous mumbojumbo.

jujucharms.com will continue to grow support for bundles, right now it’s mostly focused on charms, and while charms are great and an important building block we’ll be pushing bundles as a complete solution for a deployment. As far as submitting your bundles to the charm store, the process is slightly different than charms, we’ll be pushing updated documentation on how to do this over the next few days. In the meantime feel free to deploy these example ones.

I did a talk about Juju at our local LUG, but I also did a talk on building your own Steam Box.

Some of the information here is already out of date, but you can check it out here.

Juju Charm Ecosystem Status for the 30th of October

General Info

Highlights

Tools

  • 1.1 release coming tomorrow with support for bundles.
  • Minor bug fixes
  • Charm testing template included to create boilerplate Amulet tests.

Helpers

  • no changes, tons of discussion, please join UDS for the details, here’s high level view:
    • Packaging for charm helpers, so you don’t have to embed them anymore
    • Multiple language support in charm helpers!

Amulet

  • No changes, there will be more coming based on user feedback, no release date set yet.

Docs

  • More work in the charm author docs specifically.
  • Documenting the interfaces is coming
  • config pages getting updated to reflect 1.16.
    • Would also like to rework some of the screenshots (HP Cloud changed again).

Charm Updates

  • http://manage.jujucharms.com/recently-changed
  • Queue @ http://manage.jujucharms.com/tools/review-queue
  • CONTEST OVER! Judging has begun.
  • Owncloud has critical fix in the charm queue, needs to get in asap.

  • Lots of progress clearning it out over the past 2 weeks, we’re almost out of the hole.

Bundles

What is a bundle?

  • Jorge: Bundles are to charms as metapackages are to packages
  • Marco: But you can define bundles of bundles, so it’s more like a bundle is a source package of a package that has multiple binaries.
  • Ok enough with the analogies, bundles are sets of charms AND relations that represent a workload, you deploy that into your cloud so like.
  • You can export a bundle from your GUI by hitting shift-d, and then share with others
  • You’ll be able to share you bundle with the community, it’s just a simple yaml file.
  • charm tools will lint your bundle!
  • How do we promulgate official bundles?
  • TODO for UDS, we need a session on Bundle policy.

Events

  • http://juju.ubuntu.com/events
  • ODS HongKong (Nov 5-8)
  • LISA’13 (Nov 4) (GlusterFS community days)
  • SCaLE CFP - 15 December
  • RubyConf (Nov 8-10)
  • AWS re:Invent (Nov 12-15)
  • MongoSV (Beginning of Dec, TBD)
  • Charm School schedule will be updated wih the t-cycle

Charm Championship

  • Submissions are in … judging has begun!
  • Announcement TBD.

GOALS

  • [jorge] Openstack bundle deployment thing from jamespage: SUPERCEDED
    • Cloud installer + we’ll make other bundles for the GUI
  • [m_3] mapR charm review: INPROGRESS
  • [marco] Get 1.0(.1) charm-tools into precise: BLOCKED
  • [marcoceppi] Document SimpleStreams, scrub docs to make sure public-bucket-url and friends are updated: INPROGRESS
  • [jorge] - Local provider troubleshooting: DONE
  • [marcoceppi] - Document local provider troubleshooting: INPROGRESS
  • [jorge] - Document local provider troubleshooting: INPROGRESS
  • [nickveitch] - File a bug to bring -v back (show-log? really?): DONE
  • [nickveitch] - Document tags in the MAAS provider: DONE
  • [nickveitch] - control-bucket is now chosen automatically if omitted from the configuration for new ec2 and openstack environments.: DONE
  • [nickveitch] - admin-secret is now chosen automatically if omitted from the configuration of a new environment.: DONE
  • [jorge] [nickveitch] - Create a logging page. Logging has changed. You can specify an environment variable “JUJU_LOGGING_CONFIG”, or you can specify –log-config on the command line. To show the log on the command line, now use –show-log. The –debug has been kept to be short-hand for “–log-config==DEBUG –show-log”, and –verbose has been deprecated with its current meaning.: TODO
  • [marcoceppi] Document charmhelper http relations: TODO
  • [marcoceppi] Documenting the ~charmers responsibilities: INPROGRESS