Collect and cache metadata, run hooks on changes.
Go to file
Takashi Kajinami 7d8f9e8432 Remove unnecessary setup_hook
This is no longer needed.

Also, the options in egg_info section are not necessary and can be
removed. Especially, tag_svn_revision was already removed[1].

[1] https://github.com/pypa/setuptools/issues/619

Change-Id: Iad15ae3f3004dce4570798097ea9bd95a1799060
2023-12-20 14:09:36 +09:00
os_collect_config secret_access_key should be secret 2023-11-28 23:09:26 +09:00
releasenotes/notes Stop testing python2.7 2020-05-19 08:05:35 -06:00
zuul.d Update python job template 2023-10-18 15:00:13 +09:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:41:46 +00:00
.gitignore Switch to stestr 2018-07-10 18:53:52 +07:00
.gitreview OpenDev Migration Patch 2019-04-19 19:42:57 +00:00
.stestr.conf Switch to stestr 2018-07-10 18:53:52 +07:00
LICENSE Aligned tests with OpenStack standards. 2013-03-28 03:40:38 +01: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 Fix config file documentation 2019-09-12 13:09:55 +00:00
requirements.txt Remove workaround for Python 2 2023-11-28 00:23:17 +09:00
setup.cfg Remove unnecessary setup_hook 2023-12-20 14:09:36 +09:00
setup.py Remove workaround for Python 2 2023-11-28 00:23:17 +09:00
test-requirements.txt Remove workaround for Python 2 2023-11-28 00:23:17 +09:00
tox.ini Remove old directory from exclude 2023-11-28 23:05:35 +09:00

Team and repository tags

image

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+https://opendev.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.↩︎