Shell Ruby
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
defaults
handlers
meta
tasks
templates
test
vagrant
vars
README.md
ansible.cfg
requirements.yml

README.md

timstaley.comet

An Ansible role that provides an installation of the Comet VOEvent broker.

Outline

This role will install the bare minimum to get a Comet instance up and running, and won't actually do anything with the VOEvents they receive. The Comet-invocation script can be supplied as a role-argument, so you can easily change that to set up passing of VOEvents to your own custom code.

Deployment details

The scripts create a pair of non-sudo users, defined by default as cometdeploy and cometserve. VOEvent handling code and virtualenvs are dropped into /home/cometdeploy, then run in read-only mode as the cometserve user (this provides extra security in the worse-case scenario that Comet has some serious security exploit hole, e.g. to malformed packets). Logs etc are dumped into /home/cometserve/working_dir.

Usage

Setup

Note that building the LXML package (which is a dependency) usually requires significantly more than 512MB of RAM. For the test-VM setup we make use of a swapfile, via a ready-made role from kamaln7. You'll need to install the role using the ansible-galaxy command line tool before running the tests.

Vagrant VM for testing

To pull up a working VM with Comet installed:

cd vagrant
ansible-galaxy install -r requirements.txt
vagrant up

Ansible on a pre-existing Ubuntu installation

Running against a pre-existing machine is a bit more complicated because there are more possible variables, and you may want to familiarize yourself with the Ansible docs first. In short, you'll need to:

  • Configure your ansible inventory to reach the desired machines. Test with e.g. ansible -m ping all.
  • Modify test-comet-role.yml as required. You probably don't want/need swapfile configuration, and you will need to set the hosts to match your inventory.
  • Run your new playbook file using the ansible-playbook command.