Your submission was sent successfully! Close

You have successfully unsubscribed! Close

Conjure-up is magic!

This article was last updated 7 years ago.

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

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

Open source tooling at GITEX Global

Innovate at speed with AI. Stay secure and compliant with Ubuntu Pro Date: 16-20 October 2023 Location: Dubai, UAE Booth: Booth B31, Hall 26, DevSlam...

How telcos are building carrier-grade infrastructure using open source

Telco cloud implementation with Canonical and HPE Service providers need cloud infrastructure everywhere, from modern 5G and 6G network functions running in...

What is a hypervisor? A beginner’s guide

In the realm of virtualisation and cloud computing, the hypervisor is a critical component that enables the seamless operation of multiple virtual machines...