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:
- Build a Configuration Server image
- Launch the Configuration Server instance
- Run the Configuration Server setup script
- 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.
- Log into EC2
- Locate yournewly uploaded AMI (under the “EC2” tab, click the “AMIs” link in the left nav)
- 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
- Log into Conductor
- Navigate to the cloud providers (Administer -> Cloud Providers)
- Select the cloud provider where the Configuration Server instance is running
- Select “Accounts”
- Select the cloud provider account where the Configuration Server instance is running
- Click the “[ Add ]” link to add a Configuration Server to the provider account
- Enter the following information into the “Add Configserver” page:
- Server Endpoint (URL): https://${ec2_public_dns_name}
- Consumer Key: the Conductor Auth Key
- Consumer Secret: the Conductor Auth Secret
- Click “Save”
Examples
All of the Audrey examples are kept in our code repository.
Source Code
Our source code repo is hosted on github.