Welcome to fuss-manager’s documentation!

Configuration

fuss-manager runserver will read its configuration from a yaml file in /etc/fuss-manager/fuss-manager.yaml (or any location specified with the option --config).

Most configuration have sensible defaults to fall back to in case they are not defined in the configuration file.

Configuration options

LDAP

LDAP configuration variables don’t have a default: if they are not present in the configuration login via LDAP is disabled.

ldap_uri

URI of the ldap server, e.g. "ldap://localhost:port"

ldap_user_search_base

e.g. ou=Users,dc=fuss,dc=lan

ldap_group_search_base

e.g. ou=Groups,dc=fuss,dc=lan

Ansible and inventory files

path_ansible_inventory

Path to the ansible inventory managed by fuss-manager.

default: "/etc/fuss-manager/hosts"

path_stats_cache

Path to the stats file.

default: "/etc/fuss-manager/machine_stats"

path_playbooks

Path to the ansible playbooks available to fuss-manager.

default: "/etc/fuss-manager/playbooks"

Web service configuration

web_address

Address of the fuss-manager.

default: "localhost"

web_port

Port to listen to.

default: 1232

Miscellaneous

arpwatch_datafile

default: '/var/lib/arpwatch/arp.dat'

dhcp_log_file

default: '/var/log/syslog'

debug

default: False

operation_log_file

default: '/var/log/fuss-manager/operations.log'

playbook_log_dir

default: '/var/log/fuss-manager/playbooks.log'

disabled_sources

default: ()

Fuss Manager web interface specs

Browser compatibility

The minimum browser versions supported are the versions of Chrome and Firefox as packaged in Debian 9:

  • chromium >= 73.0.3683.75-1~deb9u1 (i386, amd64)

  • firefox-esr >= 68.10.0esr-1~deb9u1 (i386, amd64)

Javascript frameworks used

For JavaScript libraries, Fuss Manager uses only what is packaged from Debian Buster onwards.

A custom file handler (see manager/web/static.py) gives priority to packaged versions, falling back on the fuss-manager static file directory when assets are not found there.

The idea is to target Debian Bullseye and Debian Buster+backports for official packaging, and make the package still installable, even if not fully policy compliant, for earlier versions of Debian.

fuss-manager REST API

General description

The main API entry point is at /api/1.0. All methods return JSON results, and the result is always an Object whether the request is successful or not.

All successful requests return objects with the time key set to the server time as a Unix timestamp.

All failed requests return objects with three keys:

  • error: true

  • code: the HTTP error code

  • message: a string describing the error

GET requests can take extra arguments in a query string.

POST requests take their input from the POST body encoded as JSON.

API methods

ping

Takes no arguments.

Returns:

  • pong: true

async_ping

Takes no arguments.

Returns:

  • pong: true

machines

Takes no arguments.

Returns:

  • machines: list of machine objects.

Each machine object contains the following keys:

  • mac: MAC address, as a string

  • ip: IP address, as a string

  • name: machine name

  • first_seen: time the machine was first seen, as a Unix timestamp

  • last_seen: time the machine was last seen, as a Unix timestamp

You can use the response time timestamp to compute how long ago a machine was first or last seen without introducing errors due to the clock difference between the browser and the server.

Reference documentation

manager package

Subpackages

manager.sources package
Submodules
manager.sources.arpwatch module
manager.sources.base module
manager.sources.chaos module
manager.sources.command module
manager.sources.dhcp module
manager.sources.inotifywait module
manager.users package
Submodules
manager.users.db module
manager.users.ldap module
manager.users.local module
manager.users.master module
manager.users.mock module
manager.web package
Submodules
manager.web.server module
manager.web.session module
manager.web.static module
manager.web.views module
manager.web.webapi module

Submodules

manager.compat module
manager.config module
manager.events module
manager.manager module
manager.ops module
manager.perms module
manager.playbook module
manager.signing module
manager.stores module

Indices and tables