User Tools

Site Tools


Using Juju and MaaS with CentOS

Initial support has landed in Juju's master branch for CentOS 7 and is planned to be released with version 1.24. Keep in mind that this is an initial release and there are slight differences from using Juju with Ubuntu, which will be discussed later on.

To start off, you should follow our previous two tutorials on setting up our testing environment:

MaaS installation guide

Juju installation guide

This will give you a ready to go MaaS and Juju environment. Make sure you can bootstrap a trusty state machine before following the next steps to make debugging easier.

Generating MaaS images for CentOS 7

There is a nice project made available by Canonical that will facilitate the creation of a new CentOS image compatible with MaaS. We are using MaaS to test this, because it's the easiest way to have a locally working testing environment. Due to limited support for container-based CentOS deplyments, we cannot use the local provider yet. More details on that will be provided as they arise.

Lets get a local copy of maas-iumagebuilder:

bzr branch lp:maas-image-builder
cd maas-image-builder
python install

You may need to change the python-stevedore dependency to stevedore in for the installation to work. Once the image builder is installed, you need to make sure KVM works on the Ubuntu machine that you're building the image on. Have a look at this guide for instructions on checking if it's enabled and installing it if necessary.

  • Run the command for creating the image:
maas-image-builder -o centos7-amd64-root-tgz centos --edition 7

:!: This will probably take a very long time. You can pass on to configuring Juju, but make sure you stop before issuing the `juju boostrap` command and come back here to upload the image to MaaS.

  • Import the image in MaaS:
maas <session-name> boot-resources create title=centos7 name=centos7 architecture=amd64/generic content@=centos7-amd64-root-tgz

Create jujud agent tools

  • While the image is uploading, you can create the tools and make them available to the MaaS machines. You don't need to create the trusty ones if they're already there.
mkdir -p ~/.juju/tools/releases
cd ~/.juju/tools/releases
cp ~/golang/bin/jujud* .
tar -czf juju-1.24-centos7-amd64.tgz jujud
tar -czf juju-1.24-trusty-amd64.tgz jujud
rm jujud
  • If you've followed our previous tutorial on installing Juju, you may have already run `juju-metadata generate-tools`. In that case, in order to avoid any issues, please remove the previously created metadata by running the following command:
rm -rf ~/.juju/tools/streams
  • Generate the metadata and make it available locally
juju-metadata generate-tools
cp -r ~/.juju/tools /var/www/html
chmod -R 755 /var/www/html/tools

Editing your environments.yaml

  • Now you should edit the environments.yaml file in ~/.juju. Make maas the default provider. Then in the section for maas configuration set:
agent-metadata-url: http://<MaaS-Machine-IP>/tools
  • If you want to bootstrap using a CentOS machine you also need to set:
default-series: 'centos7'
  • Moreover sometimes it might complain about not having an admin-secret. You can just provide a dummy one.
  • At this point you should be able to run:
juju bootstrap
  • Once this is complete you can deploy Juju charms on either Ubuntu, CentOS or Windows(provided you followed the previous tutorials fully).


While these issues are present in this initial release, we are working on remedying them as soon as possible. Some may take longer then others, but we do want to have 1:1 feature set on all supported platforms.

  • no support for yum mirrors/proxies. At the moment the same mirror used for apt proxies is used for yum as well.
  • no mongo tools(which implies no backups, amongst other inconveniences)
juju-centos.txt · Last modified: 2015/05/13 15:34 (external edit)