Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting our team. We will be in touch shortly.Close

  1. Blog
  2. Article

Brent Clements
on 26 August 2016

There are few things that really get me excited when it comes to technology. But those that do can be classified as follows:

  • Technology that makes my life easier
  • Technology that makes my job easier
  • Anything Ubuntu Linux related

Canonical, the company I work for, has released a tool which touches each of my interest areas,  so much so that it’s almost magical.

Conjure-up is a tool whose primary goal is to simplify deployment.  It uses the concept of “spells” that are descriptions(yaml files, charms, and deployment scripts) of how software should be deployed.

Here the official description of how it works from the website:

conjure-up provides you with a streamlined, turnkey solution. In order to provide that streamlined approach, conjure-up makes use of processing scripts. These scripts are executed at 3 different times in the deployment, just after a Juju bootstrap, just before a Juju deploy, and right after a Juju deploy.

Processing scripts give you the flexibility to alter LXD profiles in order to expose additional network interfaces to Neutron services, import images into Glance once the service is available, or notifying the Deployment status screen that your solution is ready and can be viewed at a specific URL.

With these powerful concepts you can package up the solution that can then be provided to coworkers who can easily deploy your solutions in any Public Cloud, MAAS, or LXD.

I currently use conjure-up to do a few routine tasks in my daily tech life:

  • At work, I use it to quickly spin up demos for customers. I can easily and quickly spin up OpenStack, Kubernetes, and other big software demos.
  • I also use it at work to test and validate designs that I put forth to customers. It helps to have something that I can quickly spin up different variations of OpenStack designs. This month, I am using it to test and write up a number of public facing reference architectures that we will be publishing soon.
  • At home, I use it to spin up software on various servers I have laying around. It combination with MAAS and Juju, I can manage, deploy, and operate my entire software stack at home without having to manually do everything.

Conjure-up can deploy spells to three different locations:

  1. Locally on a system using LXD Containers
  2. On 4 or more bare metal machines through MAAS
  3. On a public cloud such as Azure, AWS, etc.

There are a few spells currently available to the general public today:

  1. openstack
  2. ghost
  3. observable-kubernetes

I will throughout the week will use one or more of these for as a way to demonstration our various tooling and solutions.

For this blog post, I will show you how to use conjure-up to deploy the Ghost spell to the AWS cloud. I do a lot of blogging and Ghost is a pretty cool application for that.


Installing Conjure-Up

Now let’s install Conjure-up

$ sudo apt-add-repository ppa:conjure-up/next
$ sudo apt-add-repository ppa:juju/devel
$ sudo apt-get update
$ sudo apt-get install conjure-up

This may take a little while to install all of the various packages required. Since conjure-up relies heavily on Juju, the big software modeling & orchestration tool, it will also install that.

Deploying Ghost

Now let’s get to deploying the Ghost Application! It’s very simple to do, just:

$ conjure-up ghost

  • Note, there is a bug in the version of conjure-up that I am using due to changes in Juju. Edit line #116 in file /usr/share/conjure-up/conjure/ and change it to look like this:
    cmd = “juju bootstrap {} {} ” \

One conjure-up is running just follow the onscreen prompts.

Conjure up will do a few things during the install:

  1. It will bootstrap your environment on your chosen cloud provider
  2. It will install the ghost application and it’s dependencies on your chosen cloud provider

Final Steps

Once conjure-up has finished installing the ghost spell there are just a few more things you need to do. We will use Juju to finalize the configuration of the ghost application and expose it to the world.

First, expose your blog to the public

$ juju expose haproxy

Grab the PUBLIC-ADDRESS from the output of the command afterwards setting the Ghost URL correctly.

$ juju status haproxy
haproxy/0 unknown  idle  1  80/tcp 
$ juju set-config ghost url=http://<PUBLIC-ADDRESS>

Additionally , to create your ghost system account do the following

$ juju expose ghost
$ juju status ghost
ghost/0   unknown  idle  1  2368/tcp 

Then visit <PUBLIC-ADDRESS>:2368/ghost/ to create your username and password. Continue setting up Ghost by following the usage documentation.

Once you are finished setting up your ghost account and setting it up,  I suggest securing it by doing

$ juju unexpose ghost

That’s it. Simple, easy, magical set up of the Ghost Blogging application.


As mentioned earlier I use conjure-up to run demos, validate designs, and just generally have fun. If you are a cloud architect, engineer, developer or anyone else that needs to rapidly deploy software, conjure-up is your tool.

Summon the power of conjure-up today and experience the magic for yourself!

Btw, be on the lookout for an upcoming blog post on how to craft your own spell.

Original article

Related posts

Tytus Kurek
3 April 2024

OpenStack with Sunbeam as an on-prem extension of the OpenStack public cloud

Cloud and server OpenStack

One of the biggest challenges that cloud service providers (CSPs) face these days is to deliver an extension of the public cloud they host to a small-scale piece of infrastructure that runs on customers’ premises. While the world’s tech giants, such as Amazon or Azure, have developed their own solutions for this purpose, many smaller, ...

Tytus Kurek
2 January 2024

OpenStack with Sunbeam for small-scale private cloud infrastructure

Cloud and server Article

Whenever it comes to a small-scale private cloud infrastructure project roll-out, organisations usually face a serious dilemma. The implementation process often seems complex due to a lack of knowledge, tricky migrations and an immediate need from management to run various extensions, such as Kubernetes, on top. The most obvious way to ov ...

Serdar Vural
5 December 2023

Canonical joins the Sylva project

Canonical announcements Telecommunications

Canonical is proud to announce that we have joined the Sylva project of Linux Foundation Europe as a General Member. We aim to bring our open source infrastructure solutions to Sylva and contribute to the project’s goal of providing a platform to validate cloud-native telco functions. Sylva was created to accelerate the cloudification of ...