rolekit man page

rolekit — server role management toolkit


rolekit is a server role deployment and management toolkit. A server role could be seen as a service or a use case that is providing several services. A deployed role is a (role) instance.

A plugin interface is used for simple role creation. Each role is a plugin to rolekit and can therefore be easily created. A D-Bus interface and also a command line client is available for role management.


A role plugin describes the receipt to get to the configured and running role. For this a plugin provides a predefined set of methods and role settings (properties).

Roles are loaded from the /usr/lib/rolekit/roles directory. Each role owns a directory named after the role itself. The directory contains, that is inherited from RoleBase and implementing the role.

Each role instance owns a sub directory in /etc/rolekit/roles, named after the role. The directory contains JSON settings files using the name of the instances as the filename with the JSON extension.

While deploying a role, these steps are done internally:

1. DBusRole.deploy is called.

1. Checks that the name is valid and that there is no conflict with another instance of that role.

2. Creates the role instance from RoleBase.

3. Calls RoleBase.deploy_async method in the instance.

2. Checks settings supplied by the user.

3. Sets the instance into the deploying state.

4. Installs groups and packages defined in the packages setting.

5. Installs firewall settings.

6. Calls Role.do_deploy_async method.

7. Creates the systemd target.

8. Sets the instance into the ready-to-start state.

See Also

rolekit(1), rolectl(1), roled(5), rolekit.dbus(5), rolekit.roles(5), rolekit.roles.databaseserver(5), rolekit.roles.domaincontroller(5)


rolekit home page at


Thomas Woerner <>


Stephen Gallagher <>


Miloslav Trmač <>


Nils Philippsen <>



rolekit 0.5.2