Skip to content

Muppy Concepts

Muppy connects over SSH to Hosts in order to run Tasks (installation or configuration procedures) and to collect Facts.

Muppy is modular: Tasks are published in Addons that are installed as needed.

Hosts

A Host is any machine Muppy manages: a bare-metal server, a VM, or an LXC container. Enrolling a Host is what gives Muppy the SSH access it needs to run Tasks on it.

Hosts are reached from Muppy / Hosts. See Hosts for enrollment and day-to-day management.

Tasks and Facts

Tasks are:

  • installation or configuration procedures written in Python,
  • grouped into Scripts (one Script = one Python module),
  • exposed in the Muppy user interface, so any kind of user can launch or schedule them,
  • executed through a job system that traces every execution and keeps a running log of everything the Tasks did,
  • debuggable and concise — they need far less code than the equivalent shell commands.

A Task is declared in Python with the @fabric_task decorator; the corresponding mpy.task and mpy.script records are generated by the synchronisation sweep rather than written by hand. See Task and Script Synchronisation.

Facts are configuration data that Tasks need in order to run — for example POSTGRESQL_INSTALLED_VERSIONS. Facts are collected by running a particular kind of Task, the Fact Collectors.

See Tasks & Fact Collectors.

Addons and Apps

Muppy is modular. Tasks are published in Addons that can be installed independently.

Beyond Tasks, an Addon can also implement user interfaces and monitoring automation — such an Addon is called a Muppy App. Muppy's PostgreSQL features, for instance, ship as Muppy Apps.

Muppy Enterprise customers and Muppy Partners can implement their own Addons and Muppy Apps.