progfigsite.nodes Module

This module should contain a separate Python file for each host. For instance:

progfigsite/
    __init__.py
    ...
    nodes/
        __init__.py
        host1.py
        host2.py
        host3.py

Node files

Each node file should contain a class named node that inherits from progfiguration.inventory.nodes.InventoryNode.

For instance, the node defined in example_site.nodes.node1:

from progfiguration.inventory.nodes import InventoryNode

node = InventoryNode(
    address="node1.example.com",
    user="root",
    ssh_host_fingerprint="",
    roles=dict(
        settz={
            "timezone": "UTC",
        },
    ),
)

Node secret files with AgeSecretStore

Note

Information in this section only applies to AgeSecretStore

This section only applies to sites that use the progfiguration.sitehelpers.agesecrets.AgeSecretStore secret storage implementation. It’s what ships with progfiguration core so it’s the easiest to get started with, but other secret storage backends will work differently.

If a node has secrets encrypted with progfiguration encrypt, they will be stored in a file named <node name>.secrets.json in the nodes package.