Build your own production private cloud
OpenStack with conjure-up
Thanks to MAAS, the bare metal provisioning and management tool, conjure-up can talk to a cluster of servers.
4 x Intel x64 servers each with:
- 8GB RAM
- Management card/BMC with IPMI onboard
* Note: for production clouds 12 nodes are required, including 3 nodes for High Availability MAAS-based infrastructure.
Before you start, you’ll want this eBook
The phase change from traditional, monolithic software to multi-host microservices-based big software demands that you approach the challenge of deployment, integration and operations from a different perspective.
This eBook will give you a deeper understanding into why there is a perceived complexity to the installation and operations of OpenStack and how tools like Canonical’s conjure-up and OpenStack can help you build a modern, scalable, repeatable and affordable private cloud infrastructure.
1Set up your hardware
Install Ubuntu Server 16.04 LTS on the machine designated to be the MAAS server.
You need to setup a private network with all machines plugged in and enough IP addresses available for all physical and virtual machines you plan to run. This network must not have a DHCP server: MAAS will fill in that role.
For the simplest topology, connect the second NIC of the dual-nic machine(s) to the same network.
To install MAAS, start off on your Ubuntu Server 16.04 LTS machine and type the command below following the step-by-step instructions:
Create your admin credentials and optionally import your SSH key by typing:
Login to the MAAS UI at
Fill in the details on the welcome page and import images for Ubuntu 14.04 LTS and 16.04 LTS. Importing images may take a while, but you can click “continue” as soon as it’s started
If you haven’t imported your SSH key before, now is your chance to import one from Launchpad, GitHub or you can also upload it directly
3Configure the MAAS subnet and DHCP
Go to the “Subnets” tab and click on your subnet. Verify that “gateway” and “DNS” are filled in and update as necessary
Go back (or click on “subnets” again) and this time click on the “untagged” VLAN. Select “Provide dhcp” in the “Take action” button and select a suitable Dynamic range. To start with, count one IP per NIC connected to the network
4Verify image syncing
Go to the “Images” tab and check if the Ubuntu images have all been downloaded and are in a “Synced” state. This is the process started earlier, and depending on your bandwidth it may take a while for it to finish. You can only proceed with the next steps if the images are synced
5Register your hardware with
Now you need to enlist and commission machines:
- Ensure all machines are set to PXE boot, if possible disable all other boot options, including local disk, in the BIOS
- Power the machines on. They will all appear in the “Nodes” tab of MAAS after a while
- Edit each machine, filling in the power type and other parameters, if they are not correct already
- Select all the machines and, using the “Take action” dropdown, “Commission” them
- Wait until all machines have a “Ready” status
- Verify the networking by going to the details page for the node(s) that have multiple NICs and check that the second NIC (the non-PXE one):
- Is connected to the subnet
- Has the “IP address” field set to “unconfigured”
- The first NIC should be the same except the IP address field will be set to “Auto assign”
6Install and launch conjure-up
7Select install type
conjure-up offers two options with OpenStack:
1. OpenStack with Nova-lxd
This installs OpenStack with nova configured to use the lxd hypervisor ready to launch machine containers. Choose this option to run Linux workloads in LXD containers
2. OpenStack with KVM
This installs OpenStack with nova configured to use the KVM hypervisor ready to launch full virtual machine. If building a production cloud we recommend choosing this option.
8Configure a new cloud
9Add MAAS api endpoint and credentials
10Configure, architect and deploy the OpenStack services
Configure: this will give you the opportunity to change the config of the various OpenStack services.
Architect: Choose where to place a service. You do not need to place services as conjure-up will do so automatically.
Deploy: Deploy the service as configured according to the architecture.
Once satisfied with the config and architecture you can deploy all remain applications.
To learn more about conjure-up visit conjure-up.io.