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 codemessage
: 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 stringip
: IP address, as a stringname
: machine namefirst_seen
: time the machine was first seen, as a Unix timestamplast_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.