Tutorial

To install Tron you will need:

  • A copy of the most recent Tron release from either github or pypi (see Installing Tron).
  • A server on which to run trond.
  • One or more batch boxes which will run the Jobs.
  • An SSH key and a user that will allow the tron daemon to login to all of the batch machines without a password prompt.

Installing Tron

The easiest way to install Tron is from PyPI:

$ sudo pip install tron

You can also get a copy of the current development release from github. See setup.py in the source package for a full list of required packages.

If you are interested in working on Tron development see Contributing to Tron for additional requirements and setting up a dev environment.

Running Tron

Tron runs as a single daemon, trond.

On your management node, run:

$ sudo -u <tron user> trond

The chosen user will need SSH access to all your worker nodes, as well as permission to write to the working directory, log file, and pid file (see trond --help for defaults). You can change these directories using command line options. Also see Logging on how to change the default logging settings.

Once trond is running, you can view its status using tronview (by default tronview will connect to localhost, use --server=<host>:<port> -s to specify a different server, and have that setting saved in ~/.tron):

$ tronview

Jobs:
No jobs

Configuring Tron

There are a few options on how to configure tron, but the most straightforward is through tronfig:

$ tronfig

This will open your configured $EDITOR with the current configuration file. Edit your file to be something like this:

ssh_options:
  agent: true

nodes:
  - name: local
    hostname: 'localhost'

jobs:
  - name: "getting_node_info"
    node: local
    schedule: "interval 10 mins"
    actions:
      - name: "uname"
        command: "uname -a"
      -
        name: "cpu_info"
        command: "cat /proc/cpuinfo"
        requires: [uname]

After you exit your editor, the configuration will be validated and uploaded to trond.

Now if you run tronview again, you’ll see getting_node_info as a configured job. Note that it is configured to run 10 minutes from now. This should give you time to examine the job to ensure you really want to run it.

Jobs:
Name              State      Scheduler            Last Success
getting_node_info ENABLED    INTERVAL:0:10:00     None

You can quickly disable a job by using tronctl:

$ tronctl disable getting_node_info
Job getting_node_info is disabled

This will stop scheduled jobs and prevent anymore from being scheduled. You are now in manual control. To manually execute a job immediately, do this:

$ tronctl start getting_node_info
New job getting_node_info.1 created

You can monitor this job run by using tronview:

$ tronview getting_node_info.1
Job Run: getting_node_info.1
State: SUCC
Node: localhost

Action ID & Command  State  Start Time           End Time             Duration
.uname               SUCC   2011-02-28 16:57:48  2011-02-28 16:57:48  0:00:00
.cpu_info            SUCC   2011-02-28 16:57:48  2011-02-28 16:57:48  0:00:00

$ tronview getting_node_info.1.uname
Action Run: getting_node_info.1.uname
State: SUCC
Node: localhost

uname -a

Requirements:

Stdout:
Linux dev05 2.6.24-24-server #1 SMP Wed Apr 15 15:41:09 UTC 2009 x86_64 GNU/Linux
Stderr:

Tron also provides a simple, optional web UI that can be used to get tronview data in a browser. See tronweb for setup instructions.

That’s it for the basics. You might want to look at Overview for a more comprehensive description of how Tron works.