
Includes diagram of what a Libra based LBaaS solution should look like Change-Id: Ia5caec0a6b0d566a1a348dc90f9478df2fbfb4db
Description ----------- A Python-based Gearman worker that handles work for the job queue named 'lbaas-<IP>'. It receives JSON data describing a load balancer, and returns this same JSON object, but with status fields added to describe the state of the LB. Running Tests ------------- Tox is the best way to run the tests. Tox, if unavailable, can be installed via the Python pip command: $ pip install tox Once it is installed, run the tests: $ tox Installing the Tools -------------------- You must have Python setuptools installed. On Ubuntu: $ sudo apt-get install python-setuptools Now you may install the Libra toolset: $ sudo python setup.py install Edit /etc/sudoers ----------------- The worker needs to be able to run some commands as root without being prompted for a password. It is suggested that you run the worker as the `haproxy` user and `haproxy` group on Ubuntu systems. Then add the following line to /etc/sudoers: %haproxy ALL = NOPASSWD: /usr/sbin/service, /bin/cp, /bin/mv, /bin/rm The above lets everyone in the `haproxy` group run those commands as root without being prompted for a password. Running the Worker ------------------ The worker can run in either daemon or non-daemon mode. Daemon mode requires escalated privileges so that it can behave like a proper daemon. Non-daemon mode (--nodaemon option) is useful for testing. Basic commands: # Getting help $ libra_worker -h # Start up as a daemon running as the `haproxy` user and # connecting to the local Gearman job server. $ sudo libra_worker --user haproxy --group haproxy --server 127.0.0.1:4730 # Start up with debugging output in non-daemon mode $ libra_worker --debug --nodaemon You can verify that the worker is running by using the sample Gearman client in the bin/ directory: $ bin/client.py Configuration File ------------------ It can be easier to give options via a configuration file. See the sample configuration file etc/sample_libra.cfg for an example and further documentation. Use the -c/--config option to specify the configuration file to read.
Description