Collect and cache metadata, run hooks on changes.
Go to file
Dan Prince b6364df3e5 Add support for Zaqar websockets
This patch adds a new zaqar.use_websockets option which if set to True
in the config file will configure the Zaqar collector to use
the websocket transport instead of wsgi. This can be more efficient
where you want to avoid the continuous polling of o-c-c and instead
just listen on the websocket that is subscribed to a queue.

Like other collectors each iteration creates a new socket object. This
allows us to use the normal re-exec logic in o-c-c and thus gives
the option to re-configure the agent in the future to use other types
of collectors. We could (optionally) look into a higher level option in
the future that would allow o-c-c to avoid re-exec'ing and thus re-use
the same websocket for multiple sets of metadata.

Depends-On: Ia2a8deb599252d8308e44d595eb2bf443999aaad
Change-Id: Id5c7ed590df776844b6c7961eb40f89206cd24e0
2016-11-30 21:12:47 -05:00
os_collect_config Add support for Zaqar websockets 2016-11-30 21:12:47 -05:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:41:46 +00:00
.gitignore Modify gitignore to ignore cover 2014-09-12 15:53:50 +09:00
.gitreview Update stackforge references to openstack 2013-08-17 22:59:30 -04:00
.testr.conf Remove env vars we don't use. 2013-03-28 04:05:31 +01:00
LICENSE Aligned tests with OpenStack standards. 2013-03-28 03:40:38 +01:00
MANIFEST.in Ensure that README file makes it into the tarball 2013-07-07 11:56:08 -04:00
os-collect-config-and-friends.odg Add diagram to os-collect-config README.rst 2014-03-26 09:13:19 -07:00
os-collect-config-and-friends.svg Add diagram to os-collect-config README.rst 2014-03-26 09:13:19 -07:00
README.rst Add diagram to os-collect-config README.rst 2014-03-26 09:13:19 -07:00
requirements.txt Updated from global requirements 2016-11-09 04:22:23 +00:00
setup.cfg Revert "Support building wheels (PEP-427)" 2013-11-29 12:56:17 +02:00
setup.py Updated from global requirements 2015-09-17 12:15:44 +00:00
test-requirements.txt Remove discover from test-requirements 2016-11-16 10:41:07 +05:30
tox.ini Deprecated tox -downloadcache option removed 2016-04-23 15:19:25 +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.↩︎