Setting up debusine-worker

Introduction

debusine-worker is a daemon that connects (via HTTP API and WebSockets) to a Debusine server, waits for tasks and executes tasks locally. Currently it supports sbuild tasks.

Initial setup

Install the debusine-worker package. To know what the package does during installation see the What does the package does on installation section. Follow the steps below to finalize the set-up.

  1. Create the file /etc/debusine/worker/config.ini . Use /usr/share/doc/debusine-worker/examples/config.ini as an example:

    $ sudo cp /usr/share/doc/debusine-worker/examples/config.ini /etc/debusine/worker/
    $ sudo editor /etc/debusine/worker/config.ini
    

    Change the api-url in the configuration file as needed.

  2. Add the user debusine-worker to the group, sbuild:

    $ sudo sbuild-adduser debusine-worker
    

    (sbuild-adduser adds the debusine-worker to the correct group, ignore the rest of sbuild-adduser messages regarding how to setup tasks for sudo users)

  3. Create the sbuild chroot, for example:

    $ sudo sbuild-createchroot stable /srv/chroot/stable
    
  4. Restart debusine-worker with the new configuration and group:

    $ sudo systemctl restart debusine-worker
    

    The logs can be seen in /var/log/debusine/worker/.

  5. Following the restart, the token will appear in /etc/debusine/worker/token and in the log file /var/log/debusine/worker/worker.log. The debusine admin should approve the tokens pending for approval. Nothing needs to be done from the side of debusine-worker.

Managing debusine-worker

Use the systemctl command to start (done automatically by the package), stop or restart the debusine-worker:

$ sudo systemctl start debusine-worker
$ sudo systemctl stop debusine-worker
$ sudo systemctl status debusine-worker

The default configuration logs relevant information in /var/log/debusine/worker/worker.log. The log file and log level can be changed in /etc/debusine/worker/config.ini.

If debusine-worker outputs the log to the stdout/stderr the logs are available via:

$ journalctl --unit debusine-worker

Troubleshooting

Information about the state of debusine-worker can be found via:

  1. systemctl status debusine-worker to verify that the service is running

  2. /var/log/debusine/worker/worker.log to see any error messages

  3. journalctl -u debusine-worker for other information

To change the settings of debusine-worker, for example to increase the logging level:

$ sudo editor /etc/debusine/worker/config.ini # change log-level
$ sudo systemctl restart debusine-worker

debusine-worker can be launched without systemd which might be useful for troubleshooting. Run it with the same debusine-worker user. For example:

$ sudo systemctl stop debusine-worker
$ sudo editor /etc/debusine/worker/config.ini # for example comment out log-file
                                              # so the log is to stderr
$ sudo -u debusine-worker debusine-worker     # execute it with the correct user

debusine-worker can also be launched using a different user for debugging purposes. The configuration (config.ini and token files) in the directory $HOME/.config/debusine/worker have higher priority than the global configuration, /etc/debusine/worker .

What the package does on installation

  • Creates the debusine-worker user

  • Installs a systemd service (named debusine-worker)

  • Creates the directories /var/log/debusine/worker and /var/lib/debusine-worker