Celery integration for LAVA Server
LAVA celery sets up a celery environment in which LAVA can execute celery tasks on remote systems.
- control node
- This is node set up by lava-deployment-tool. Its running the web app, database, and important to this the RabbitMQ server.
- worker node
- A node (remote or local) that will handle celery job requests from the control node.
Setting Up The Worker Node
lava-deployment-tool currently does not have support for configuring a celery instance. For now it can be configured using virtualenv and pip:
$ virtualenv workernode ; cd workernode $ . ./bin/activate $ pip install lava-tool $ bzr branch lp:lava-celery $ cd lava-celery ; ./setup.py install ; cd ..
You’ll probably also want something like the dispatcher set up in your worker node:
$ pip install lava-dispatcher
You can then run your worker in the virtualenv with:
$ lava celryd [--url <broker url>]
Testing the Setup
You can test that your worker node responds to job requests by running the following from your control node:
$ . /srv/lava/<INSTANCE>/bin/activate $ lava celery run-remote hello-world