I accidentally a word.


OpenStack Documentation Bootcamp 2013


Image courtesy of anankkml / FreeDigitalPhotos.net

A colleague and I recently had the opportunity to attend the OpenStack Documentation Bootcamp, hosted by Mirantis in their San Francisco office.  The event was provided as an opportunity for new and existing contributors to learn about the tools and processes of the documentation project. Additional time was also allocated to discussing the direction of the project and the status of the various guides being worked on for the OpenStack Havana release. Mirantis and Rackspace provided meals for the duration of the event, and several attendees also had their costs generously met by the OpenStack Foundation.

The event started out with a welcome from Anne Gentle, documentation project leader. Anne also provided the 20-something attendees an overview of the current state of the project before we dove into heavier topics such as project tooling and automation.Nick Chase also gave new contributors a very thorough walk through of the steps involved in joining the project later in the day.

Two particular highlights for me were:

  • Jim Blair providing us with an understanding of the tools available for adding to and manipulating continuous integration workflows within the OpenStack project. There appear to be many opportunities for us to add simple jobs to these workflows to assist with applying higher standards to our content before it is merged into the repository.
  • David Cramer demonstrating the use of clouddocs-maven and oXygen to create DocBook olink elements linking between documents. I still am not sure how we might be able to unlock this functionality in Publican in a way that scales to larger sites but I certainly have a much better understanding of the problem space and how we might handle conversion of such content to something Publican can build in the near future.

While thoroughly enjoying all of the sessions I also took a particular interest in the work Diane and Tom have been doing on automated generation of API and reference documentation respectively. These are both great initiatives ensuring thorough documentation of the various options available while allowing authors to concentrate on writing the “glue” in the form of concepts and tasks.

I myself also had the opportunity to present a brief introduction to and overview of Publican and the work I have been doing on tools to assist with using it to build OpenStack content. This was warmly received which was very encouraging. For the purposes of demonstration I presented a version of the OpenStack User Guide that had been built using Publican.

I also received a lot of positive feedback regarding the “Report a Bug” links included in some (but not yet all) Red Hat OpenStack content. There seems to be a lot of interest in enabling similar functionality for the wider project using Launchpad either in addition to or instead of the existing Disqus functionality.

All in all I feel that the event was extremely beneficial both to myself and the wider OpenStack documentation community with many of us already squirrelled away working on the tasks we discussed over the two days. No doubt though if or when there is another opportunity for a documentation bootcamp of this nature it will be even bigger and better!





Testing oVirt Engine on Amazon EC2

Red Hat recently launched an open source virtualization management project called oVirt. This project is based on the source code for their Red Hat Enterprise Virtualization product, including a new web administration interface that will appear in a future release.

Building and deploying the oVirt is, at the moment, quite time consuming. To give people an opportunity to quickly get an instance up and running to have a look at the new user interface I thought I would provide an Amazon Machine Image (AMI) for use on Amazon’s EC2 service.

Note that the image is for the oVirt Engine portion of the project only and consists of a very early build of the oVirt code and is not intended for anything other than testing and development use.

The image currently exists in us-east-1a region (Virginia) and identifies as ami-07438b6e and its name is oVirt Engine Appliance. When launching an instance based on the image ensure that you choose an instance type of m1.large or above to ensure enough RAM is available.

You must also use a security profile that allows access to the following ports:

  • 22
  • 8080
  • 8443

As always when using a public image on Amazon EC2 you should also take care to ensure that they are secure. Once the image is running you can view the new web administration by accessing:


The default user is admin with password letmein!. If you intend to leave the instance running then you must change this.

Obviously this image is not a long term solution for creating an oVirt environment with hosts attached on which you can launch virtual machines, but I thought it might assist people with seeing what all the fuss is about!


Installing OwnCloud on Openshift Express PaaS

Updated Friday May 25th to cover OwnCloud 4!

OpenShift Express is a free Platform as a Service (PaaS) solution provided by Red Hat. It allows developers to quickly and easily deploy their applications on cloud servers while Red Hat handles the management overhead.

Currently OpenShift Express supports applications created in a number of languages including PHP, Java, Ruby and Perl. As well as allowing developers to quickly and easily deploy their own applications OpenShift provides an easily accessible test bed for off the shelf open source web applications.

I am going to demonstrate quickly setting up OwnCloud. OwnCloud is a project aimed at providing users with the same abilities as many commercially backed personal clouds but with the ability to deploy it anywhere you choose.

Today our infrastructure of choice is provided by OpenShift but an OwnCloud installation can just as easily exist or be moved to a virtual private server, or the machine in your basement.

Register and Obtain Client Tools

Register With OpenShift Express, the registration page is available from  https://openshift.redhat.com/app/login. As part of the sign-up process you will also be prompted to create a key and install the client tools for OpenShift Express.

Create a Domain

If you did not do so during registration then you need to create an OpenShift domain. At the time of writing each user is permitted one domain name and five applications. The URLs for your applications will take the form:


The rhc-create-domain tool is used to create a domain, providing a name for the domain and your OpenShift login credentials:

$ rhc-create-domain -n -l

The tool prompts you for your password and, assuming it isn’t already taken, creates the domain.

Create the Application
Before you can deploy OwnCloud you must create a stub application in the format that OpenShift understands. OpenShift adds application support for programming languages, frameworks, and even databases based on ‘cartridges’.

Because OwnCloud is written in PHP we will be using the php-5.3 cartridge to create the application. Then to provide MySQL support we will also add the mysql-5.1 cartridge.

Use the rhc-create-app tool to create the application, providing a name for the application and your OpenShift login credentials. You will also need to provide the password associated with your key, created during registration, to complete application creation.

Note that by default the local copy of the application is created in your current working directory. This is where you will update and deploy your application from.

$ rhc-create-app -a -l -t php-5.3

Now use the rhc-ctl-app to add MySQL support.

$ rhc-ctl-app -a -l -e add-mysql-5.1

Be sure to take note of the Root User, Root Password, Database Name, and Connection URL of the database.

Install OwnCloud

Change into the directory that was created when you ran rhc-create-app. This directory contains a number of files and directories:

  • .openshift/
  • deplist.txt
  • libs/
  • misc/
  • php/

Check the README file for a full explanation of what each of these is for. For now we will be concentrating on deploying OwnCloud into the php/ subdirectory.

Change into the php/ subdirectory, download and extract the OwnCloud2 source tarball.
$ wget http://owncloud.org/owncloud-download-4-0-0 -O owncloud-4.0.0.tar.bz2
$ tar -xf owncloud-4.0.0.tar.bz2 –strip-components=1
$ rm owncloud-4.0.0.tar.bz2

Now our local copy is ready to deploy to the OpenShift Express servers. OpenShift Express uses git to facilitate version control and deployment. To deploy we must:

  • Add the new files to our commit, ensuring the .htaccess file is also added:
    • $ git add * .htaccess
  • Commit the new files, entering a commit message when prompted:
    • $ git commit
  • Push the commit to the remote server:
    • $ git push

Now, access your application in a web browser at the address of the form:


The OwnCloud setup wizard will appear.

Enter a Username and Password for your OwnCloud administration account. Remember that this application is running on the public internet and therefore must have a secure password.

Click Advanced and select MySQL as the storage engine. This enables a number of additional options.

These options should be set as follows:

  • The Data folder should be set to ../../data. This folder is the location of the persistent data storage for an OpenShift Express application.
  • The Database user must be set to the database username as returned when adding the MySQL cartridge.
  • The Database password must be set to the database password as returned when adding the MySQL cartridge.
  • The Database name must be set to the database name as returned when adding the MySQL cartridge.
  • The localhost value must be replaced with the appropriate host as returned when adding the MySQL cartridge. This will be in the form of an IP address, the protocol and port information can safely be discarded.

Once you are satisfied with the values entered, click Finish Setup.

Assuming all has gone well you will be logged into your newly created OwnCloud installation running on OpenShift Express!

For some hints on what you can actually do with it, see:



An Introduction to Amazon Web Services, Post-presentation Reflections.

Today I was lucky enough to attend a presentation given by Simone Brunozzi (@simon) who works for Amazon Web Services (AWS). The slides from the presentation are available on slideshare but I thought I would take the time to quickly reflect on a few key points that I took away from it.

Who needs Venture Capital?

The biggest thing I took away from today was that AWS presents an amazing opportunity for small startups to get off the ground without necessarily needing to acquire large amounts of venture capital. Even when venture capital is being sought the value proposition is much more attractive to potential sources of funding than a traditional proposal. Using AWS the funding required can scale appropriately along with the success (or failure) of the venture itself rather than requiring a large outlay up front.

Indistinguishable Experience for End Users

While the list of large, well known, companies using AWS to support their web presence is quite long how many of their users realize the services they use are backed by it? For the most part, ignoring the recent well publicized outage, the user experience of a correctly defined AWS setup is completely indistinguishable to end users from that of a traditionally hosted site. In some instances it may even be better thanks to the use of services like CloudFront!

Everyone has a Unique or Unsolvable Problem

Based on the under currents of some of the questions posed in today’s session it seems that many in IT, at least locally here in Australia, still believe that their organisation is somehow unique. Indeed in many cases this may in some small way be true. The problem is that this line of thinking is the precursor to the argument that an organisation’s problems cannot possibly be solved by generically designed platform or framework of the day X.

This isn’t an attitude unique to today’s attendees by any means, and I don’t particularly hold it against them either. There are obvious risks attached to a change in platform mix for any established organisation. That said I couldn’t help but wonder, given the previous point regarding how invisible AWS is from an end user experience perspective, how many of these same organisations already have competitors leveraging the efficiencies of the cloud and they aren’t even aware of it.

Security of Platform

A common thread of concern in the Question and Answer session was what I will refer to as security of platform. That is to ask the question “what is to stop AWS yanking my site at will”. The answer unfortunately appears to be “trust us, we wont – it’s not in our interests”. The only real test of this that has come to light was with regards to WikiLeaks and in that particular case the site was indeed taken off AWS.

Amazon argue that the reason WikiLeaks was removed from AWS was in fact due to the fact that they were clearly not the owners of the content they were serving and thus violated the Terms of Service. Whether or not this is the case it seems that business users are still very much concerned about the ramifications of building their IT infrastructure on top of a platform that can, at least technically, be pulled out from under them at a moments notice.

Along a similar line there is concern that currently there is no Australian region for almost any services provided by AWS. As a result jurisdiction over data stored by Australian companies using these services ultimately resides with foreign governments. For many organizations this is simply unpalatable and often in fact impossible due to legislative requirements.

Unfortunately given Australia’s small population and the small number of regions currently available in AWS it seems unlikely that this will be changing any time soon.