Deploying a Juju Cluster on Brightbox Cloud

Canonical

on 24 August 2015

Tags: Juju

Juju is described as a state-of-the-art, open source, universal model for service oriented architecture and service oriented deployments.

It takes the configuration scripts written in other tools and wraps them into a charm which can be deployed either with the Juju CLI tool or its GUI interface.

And it’s really easy to run up a cluster to play with on Brightbox Cloud.

Install

In the Brightbox Platforms repository on GitHub there is a juju directory that will build a Juju cluster automatically.

So once you have the Brightbox CLI installed and SSH working, then clone the repository.

git clone https://github.com/brightbox/brightbox-platforms.git

Change into the Juju directory

cd juju

and run the cluster build script

./build-cluster
This will build a Juju management station running the GUI and a single 4gb SSD server to be managed by by it.

Building Juju cluster from trusty base image img-548oh
Juju Cluster #1 security group id is grp-ytzon
Building Juju Cluster #1 Management Jumpstation
Creating a 512mb.ssd (typ-1j3zh) server with image ubuntu-trusty-14.04-amd64-server (img-548oh) in groups grp-ytzon with 0.82k of user data

id status type zone creat... image_id cloud... name
-------------------------------------------------------------------------------
srv-z0iwb creating 512mb.ssd gb1-a 2015-... img-5... Juju ...
-------------------------------------------------------------------------------

Waiting for server srv-z0iwb to complete build.......
Mapping cip-h9v3l to interface int-nxdiz on srv-z0iwb

id status public_ip destination reverse_dns name
-------------------------------------------------------------------------------
cip-h9v3l mapped 109.107.35.57 srv-z0iwb cip-109-107-35-57.gb1...
-------------------------------------------------------------------------------

id status public_ip destination reverse_dns name
-------------------------------------------------------------------------------
cip-h9v3l mapped 109.107.35.57 srv-z0iwb cip-109-107... Juju Cluste...
-------------------------------------------------------------------------------

Waiting for ssh logon for ubuntu@cip-h9v3l.gb1.brightbox.com.........
Bootstrapping Juju GUI
Bootstrapping environment "manual"
Starting new instance for initial state server
Installing Juju agent on bootstrap instance
Logging to /var/log/cloud-init-output.log on remote host
Running apt-get update
Installing package: curl
Installing package: cpu-checker
Installing package: bridge-utils
Installing package: rsyslog-gnutls
Installing package: cloud-utils
Installing package: cloud-image-utils
Fetching tools: curl -sSfw 'tools from %{url_effective} downloaded: HTTP %{http_code}; time %{time_total}s; size %{size_download} bytes; speed %{speed_download} bytes/s ' --retry 10 -o $bin/tools.tar.gz <[https://streams.canonical.com/juju/tools/releases/juju-1.22.6-trusty-amd64.tgz]>
Bootstrapping Juju machine agent
Starting Juju machine agent (jujud-machine-0)
Bootstrap complete
Added charm "cs:trusty/juju-gui-38" to the environment.
Building cluster service machines
Creating a 4gb.ssd (typ-sdipw) server with image ubuntu-trusty-14.04-amd64-server (img-548oh) in groups grp-ytzon with 0.00k of user data

id status type zone creat... image_id cloud... name
-------------------------------------------------------------------------------
srv-y3z8f creating 4gb.ssd gb1-a 2015-... img-548oh Juju C...
-------------------------------------------------------------------------------

Waiting for server srv-z0iwb to complete build
Waiting for server srv-y3z8f to complete build........
Adding machines to cluster...
srv-y3z8f
Waiting for ssh logon for ubuntu@cip-h9v3l.gb1.brightbox.com..
Logging to /var/log/cloud-init-output.log on remote host
Running apt-get update
Installing package: curl
Installing package: cpu-checker
Installing package: bridge-utils
Installing package: rsyslog-gnutls
Installing package: cloud-utils
Installing package: cloud-image-utils
Fetching tools: curl -sSfw 'tools from %{url_effective} downloaded: HTTP %{http_code}; time %{time_total}s; size %{size_download} bytes; speed %{speed_download} bytes/s ' --noproxy "*" --insecure -o $bin/tools.tar.gz <[https://srv-z0iwb.gb1.brightbox.com:17070/tools/1.22.6-trusty-amd64]>
Starting Juju machine agent (jujud-machine-1)
created machine 1

Juju bootstrapping complete.

Juju GUI will shortly be available at:

https://cip-h9v3l.gb1.brightbox.com/

The username is "admin" and the password, taken from
~/.juju/environments/manual.jenv on cip-h9v3l.gb1.brightbox.com is:

password: 52029095a7947f349f392fd34455ff70

Add additional service machines from the management server by creating
them with the Brightbox CLI or the management GUI and then add them into
the cluster by running:

juju add-machine srv-xxxxx

Point a browser at the url given and login with the username and password shown. You’re then ready to deploy a charm!

Deploy a charm

Once you have the GUI working, you can deploy ‘charms’ by dragging them from the search bar on the left to the main canvas.

1_juju_start

Let’s run through a simple WordPress/MySQL combination to get the idea. First find the wordpress and mysql charms using the search tool on the left and drag them to the canvas.

2_juju_uncommitted_charms

Click on the wordpress icon to reveal the build relation menu

3_juju_build_relation

drag across to the wordpress icon to create a relationship.

4_juju_after_build_relation

Next click on the machines tab and for each ‘new unit’ on the left hand side select a machine and container that unit should be deployed to – in this case machine #1.

5_juju_manual_place_service

once you’ve placed all the units on machines, hit the Commit button

6_juju_ready_to_commit

Go back to the canvas screen and wait for the icon indicators to go green to show they have installed and configured. You’re then ready to use WordPress.

About the author

0141615

Neil Wilson is a consultant at BrightBox and an expert in finance and information systems. He is an advocate for the free software community and loves to make things happen. You can read more from Neil on the BrightBox blog.

Ubuntu cloud

Ubuntu offers all the training, software infrastructure, tools, services and support you need for your public and private clouds.

Newsletter signup

Select topics you’re
interested in

In submitting this form, I confirm that I have read and agree to Canonical’s Privacy Notice and Privacy Policy.

Related posts

Declarative vs Imperative: DevOps done right

Deciding whether to automate workloads, while designing your ICT infrastructure, is trivial. It’s 2019 and automation is everywhere around. However, deciding which DevOps paradigm to choose and which tool to use, may not be that obvious. …

BT turns to Canonical Ubuntu to enable next generation 5G Cloud Core

Today, Canonical announces its Charmed OpenStack on Ubuntu has been selected by BT as a key component of its next generation 5G Core. Canonical, the company behind Ubuntu, will provide the open source virtual infrastructure manager …

How to harness big data for maximum business value

Are you getting maximum value from your big data? Despite most businesses understanding the power and competitive advantage they could gain from harnessing their big data more effectively and leveraging it more efficiently, it’s not an …