Homer allows to manage the lifecycle of the configuration for network devices, generating and deploying their configuration.
The configuration generation is based on YAML files to define variables and Jinja2 templates. The YAML files allow for hierarchical override of variables based on the device role, site or hostname. Once generated, the configuration can be deployed to the selected devices.
The device list can either live hardcoded in the configuration files or be dynamically gathered from Netbox. When using Netbox as inventory both the Virtual Chassis endpoint and the Device endpoint are used to select all the devices that matches the configured whitelist of device roles and statuses.
Also when using Netbox as inventory for each device additional metadata is exposed to the templates, namely:
role: device role slug
site: device site slug
type: device type slug
ip4: primary IPv4 without netmask
ip6: primary IPv6 without netmask
netbox_object: the Netbox device object. Directly exposed data should always be preferred in templates. It is exposed to not be a blocker in case some additional data is needed that is not yet exposed by Homer explicitely. It could be removed in a future release.
If any metadata is present in the YAML inventory file when using Netbox as inventory, this additional metadata ie exposed too to the templates, with the Netbox values having precedence in case of overlapping keys.
When using Netbox to gather dynamic configuration, it’s also possible to write a custom plugin in the form of a Python module that implements a class called NetboxDeviceDataPlugin that inherits from homer.netbox.BaseNetboxDeviceData and is in the Python PATH. Assuming that the plugin class implements a method named _get_name, it will be accessible within the templates with netbox.device_plugin.name.
Homer can use GraphQL to fetch Netbox data. For that, store your query in the basepath/public/graphql directory. And reference it using _gql_execute(filename, variables).
Metadata
Release files for homer 0.11.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| homer-0.11.0.tar.gz | 66.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| homer-0.11.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 108.2 kB
Release files / homer-0.11.0.tar.gz
| Download URL | homer-0.11.0.tar.gz |
|---|---|
| Size | 66.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
33ee248d68fd8fe6e0dc0dfd7d582bd28405c179b6630b837f99b988731d8e65
|
|
BLAKE2b-256 checksum How to use checksums |
6c6d8498c7abb15adb94235d0178e2efd24b89461be08a508f8df6c3ccd7201e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0rc1
|
Release files / homer-0.11.0-py3-none-any.whl
| Download URL | homer-0.11.0-py3-none-any.whl |
|---|---|
| Size | 42.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a5aa6b811593a8c9a7d5d45773434746848adfcc47cd9a5181bdeff2f74abd02
|
|
BLAKE2b-256 checksum How to use checksums |
5cf2fbb72af1c622580d631b46e8093381f845b9e6efb3595940ef18643af268
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.0rc1
|
Security for homer 0.11.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.