Conjure-up is magic!

splash600px

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.

Instructions

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/juju.py 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

ghostinstall

ghostinstall1

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
.....
UNIT      WORKLOAD AGENT MACHINE PUBLIC-ADDRESS PORTS   MESSAGE
haproxy/0 unknown  idle  1       54.205.142.10  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
.....
UNIT      WORKLOAD AGENT MACHINE PUBLIC-ADDRESS PORTS   MESSAGE
ghost/0   unknown  idle  1       54.205.142.11  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.

Conclusion

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!

http://conjure-up.io

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

Original article

Posted in: