Steve Baker ad475ee927 Collector which does a simple HTTP GET
This change implements a collector which does an HTTP GET via
python requests to fetch the metadata.

It should work with any GET-able URL, however it is designed to
work with Swift TempURLs.

Swift objects are not consistent, so the Last-Modified header is
checked for each poll and metadata is not fetched if the last
modified is not newer than the previous successful poll.

This collector will be enabled for OS::Nova::Server
software_config_transport: POLL_TEMP_URL which is available
in the Juno release of Heat. Using POLL_TEMP_URL will result
in no metadata polling load on heat, which has historically been
an issue with tripleo scalability.

Change-Id: I22155c22bdcc3c81a5e945ca5436a8f29f196528
2014-10-17 09:40:23 +13:00
2014-09-12 15:53:50 +09:00
2013-03-28 04:05:31 +01:00
2014-05-01 13:49:33 +00:00

os-collect-config

Collect configuration from cloud metadata sources

What does it do?

It collects data from defined configuration sources and runs a defined hook whenever the metadata has been changed.

image

1

Usage

You must define what sources to collect configuration data from in /etc/os-collect-config.conf.

The format of this file is:

[default]
command=os-refresh-config

[cfn]
metadata_url=http://192.0.2.99:8000/v1/
access_key_id = ABCDEFGHIJLMNOP01234567890
secret_access_key = 01234567890ABCDEFGHIJKLMNOP
path = MyResource
stack_name = my.stack

These sources will be polled and whenever any of them is changed, default.command will be run. A file will be written to the cache dir, os_config_files.json, which will be a json list of the file paths to the current copy of each metadata source. This list will also be set as a colon separated list in the environment variable OS_CONFIG_FILES for the command that is run. So in the example above, os-refresh-config would be executed with something like this in OS_CONFIG_FILES:

/var/lib/os-collect-config/ec2.json:/var/lib/os-collect-config/cfn.json

The previous version of the metadata from a source (if available) is present at $FILENAME.last.

When run without a command, the metadata sources are printed as a json document.

Quick Start

Install:

sudo pip install -U git+git://git.openstack.org/openstack/os-collect-config.git

Run it on an OpenStack instance with access to ec2 metadata:

os-collect-config

That should print out a json representation of the entire ec2 metadata tree.


  1. Recommend using LibreOffice draw to edit os-collect-config-and-friends.odg and regenerate the svg file. Alternatively edit the svg directly, but remove the .odg file if that is done.↩︎

Description
RETIRED, further work has moved to Debian project infrastructure
Readme 561 KiB