This project is no longer maintained. It is available for archival purposes only.

Audrey

Audrey is a system to aid in bootstrapping cloud guests with configuration data.

Audrey comprises two parts:

  • Audrey Agent
  • Configuration Server

The Audrey Agent is installed in the image of a cloud guest and serves as the bootstrap processor. The Configuration Server runs stand-alone and contains all of the configuration information required by each launching cloud guest. The Audrey Agent on the cloud guest contacts the Configuration Server to learn what configurations should be implemented on the guest.


Audrey Agent

The Audrey Agent runs as soon as the cloud guest finishes booting. The Agent picks up bootstrapping information from user-supplied data (for example, user data in EC2) and connects to the Configuration Server to retrieve configuration information.

Audrey-enabled Images

Use Image Factory to build an Audrey-enabled image. Image Factory supports two methods of speficying packages to be installed in images:

Image Factory Target Content

If you want to make sure that all images built by Image Factory contain the Audrey Agent, include the following XML in Image Factory’s target content configuration file:

<template_includes>
  <include target='all' os='all' version='all' arch='all'>
    <packages>
      <package name='aeolus-audrey-agent'/>
    </packages>
    <repositories>
      <repository name='aeolus-audrey'>
        <url>http://repos.fedorapeople.org/repos/aeolus/conductor/latest-release/fedora-15/x86_64/</url>
      </repository>
    </repositories>
  </include>
</template_includes>

Image Factory Build Template

If you want to build a single image through Image Factory with the Audrey Agent, use a template like the following:

<template>
  <name>Fedora15-Audrey-Agent</name>
  <os>
    <name>Fedora</name>
    <version>15</version>
    <arch>x86_64</arch>
    <install type='iso'>
      <iso>http://download.devel.redhat.com/released/F-15/GOLD/Fedora/x86_64/iso/Fedora-15-x86_64-DVD.iso</iso>
    </install>
  </os>
  <repositories>
    <repository name='aeolusrepo'>
      <url>http://repos.fedorapeople.org/repos/aeolus/conductor/latest-release/fedora-15/x86_64/</url>
      <signed>False</signed>
    </repository>
  </repositories>
  <packages>
    <package name='aeolus-audrey-agent'/>
  </packages>
  <description>Fedora 15 With Audrey Agent</description>
</template>

Additional information for setting up the Audrey Agent can be found here.


Configuration Server

The Configuration Server provides two services: it delivers configuration files and paramters to Audrey-enabled guests, and it can share configuration information between launching guests.

Setup

When deploying a Configuration Server, you have to take a couple of items into consideration:

  • All of the launched instances for a particular cloud provider account must be able to access the Configuration Server over https.
  • Your Conductor server must be able to access the Configuration Server over https.

Currently, deploying Conductor and Configuration Server on the same host is not supported.

There are four steps to setup a Configuration Server:

  1. Build a Configuration Server image
  2. Launch the Configuration Server instance
  3. Run the Configuration Server setup script
  4. Update Conductor with the Configuration Server details

1. Build a Configuration Server

You can find a Configuration Server template XML file here. This file can be used with the Aeolus tool chain to build and push the Configuration Server image to a cloud provider.

The rest of the setup documentation will use Amazon EC2 as the example cloud provider.

2. Launch the Configuration Server

The Configuration Server cannot be launched directly from Conductor. Instead, the Configuration Server instance must be launched from the cloud provider’s console.

After pushing the Configuration Server image to EC2 as an Amazon Machine Image (AMI), you can launch the AMI from the Amazon EC2 console.

  1. Log into EC2
  2. Locate yournewly uploaded AMI (under the “EC2” tab, click the “AMIs” link in the left nav)
  3. Right-click the AMI and select “Launch instance”

The Amazon EC2 console will walk through the steps to launch the AMI. It is typically sufficient to accept all of the default selections.

3. Setup the Configuration Server

Once the Configuration Server is running, log into Configuration Server and setup the Configuration Server service.

From the Amazon EC2 console, locate the newly launched instance. Grab the public DNS name and the key pair used wen launching the instance.

Next, log into the instance using the public DNS name and the private key:

$> ssh -i ${private_key} root@${ec2_public_dns_name}

Once you are logged in, you can execute the Configuration setup script:

#> aeolus-configserver-setup

You can see sample output of the script here.

Test the Configuration Server

To test the Configuration Server you should point a web browser to:

https://${ec2_public_dns_name}/version

And you should see output similar to:

<config-server>
  <application-version>0.4.5</application-version>
  <api-version>1</api-version>
</config-server>

Collect data for Conductor

Once the Configuration Server setup is complete, collect information from the script output to apply to Conductor:

  • The public DNS name of the Configuration Server instance (the ec2 public DNS name, in this example)
  • The Conductor Auth Key (see line 27 from the script output)
  • The Conductor Auth Secret (see line 28 from the script output)

4. Update Conductor

To update Conductor:

  1. Log into Conductor
  2. Navigate to the cloud providers (Administer -> Cloud Providers)
  3. Select the cloud provider where the Configuration Server instance is running
  4. Select “Accounts”
  5. Select the cloud provider account where the Configuration Server instance is running
  6. Click the “[ Add ]” link to add a Configuration Server to the provider account
  7. Enter the following information into the “Add Configserver” page:
  8. Click “Save”


Examples

All of the Audrey examples are kept in our code repository.


Source Code

Our source code repo is hosted on github.