Skip to main content

Simple program to write static config from config-drive

Project description

Glean is a program intended to configure a system based on configuration provided in a configuration drive.

Why would you want glean?

Different cloud providers have different ways of providing networking and other configuration to guest virtual-machines. Many use DHCP but others, notably Rackspace, use configuration provided via a configuration drive.

What does glean do?

Broadly, glean checks for configuration drive based information and, if found, uses that to configure the network. If config-drive is not found, it falls back to configuring any available interfaces with DHCP.

Specifically, it will mount the special block-device with label config-2 and parse the network_info.json and vendor_info.json files within. If appropriate network configuration is found, it will write out network configuration files.

The format of the network_info.json file is documented here. Please note that glean does not implement every feature listed.

If no network info is found there, available interfaces can be probed from /sys/class/net and any that appear to be up will be configured for use with DHCP.

It will also handle authorized_keys and host-name info provided from meta_data.json.

How does glean do this?

systemd environment

glean install will add a udev rules file (99-glean.rules) that triggers on any network device being added. This will run the glean@.service systemd template for the interface specified.

This systemd unit firstly determines if there is already a /etc/sysconfig/network/ configuration for the interface; if so, the interface is considered configured and skipped.

If not, glean is started with the interface specified. The configuration drive is probed to see if network configuration for the interface is available. If so, it will be added, otherwise the interface will configured for DHCP.

How do I use glean?

Glean ships glean-install, a script which install glean into your system startup environment. It should handle sysv, upstart and systemd to cover all major distributions. This should be run once, during install or image build.

The startup environment will be modified as described above to configure any found interfaces.

Differences to cloud-init?

Glean differs to cloud-init mainly in its very reduced dependency footprint. In a dynamic CI environment such as OpenStack, many of the python dependencies for cloud-init can cause conflicts with packages or versions required for testing.

Glean also better supports static IP allocation within config-drive, particuarly important within the Rackspace environment.

More details

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

glean-1.9.2.tar.gz (43.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

glean-1.9.2-py2-none-any.whl (74.0 kB view details)

Uploaded Python 2

File details

Details for the file glean-1.9.2.tar.gz.

File metadata

  • Download URL: glean-1.9.2.tar.gz
  • Upload date:
  • Size: 43.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for glean-1.9.2.tar.gz
Algorithm Hash digest
SHA256 814dc3077136e76b7aa5dc7339f7e4c34949737acfa55c1458b640c3c786fbfe
MD5 1b529680957d06e74c19871a4d182c92
BLAKE2b-256 5206c411986d205b5059816157480fe7b11a1ee634012ba28b337766f521c262

See more details on using hashes here.

File details

Details for the file glean-1.9.2-py2-none-any.whl.

File metadata

File hashes

Hashes for glean-1.9.2-py2-none-any.whl
Algorithm Hash digest
SHA256 c9e46645ac22d1c0da61b4f56d26bace5e93c84d6f7a15937ff21dbb9f2f4493
MD5 e26913dd0aeeafcfeccc063ce4177e19
BLAKE2b-256 8d48cc396c4c65c5e4991925a8fb5ba16c5e16764e24360a25bb6084573a43c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page