Server Commander

12 Jul 2017 04:46

Here's a problem I'd like was already solved:

Be able to manage and run "tasks" on a Linux server. More specifically:

  • There should be a WEB interface where:
    • I could define commands or tasks that the server is capable of doing
    • I could schedule tasks to run at specific times (like cron)
  • The tasks/commands should be (optionally) parametrized
  • The tasks/commands should be (optionally) stored in GitHub and/or a database
  • The task runs should not overlap with each other (i.e. when the previous run is still in progress don't start the new one) — configurable
  • The task configuration should include:
    • the command to run
    • task timeout — the task should be killed after the specified time
    • environment variables to set for the task
    • max CPU/memory/disk to use (optional)
    • number of times to retry on failure
    • what to do on success and failure — e-mail, webhook and trigger another task
    • directory to run the command in: I can specify one, or a temporary one is created for each run and cleared after the run
    • user to run the command as: I can specify one, or a temporary user is created for each run and cleared after the run
  • The task run view should include
    • colored command output
    • command exit code: OK/FAIL
    • resources used by the task (optional)
    • time the task took, time the task started and ended
    • environment variables
    • link to next/previous run and a button to re-run
  • The code should be free and open and extremely easy to install
  • There should be an error log in the UI to track all the jobs failures
  • Misconfigured tasks should not take the machine down — there should be some level of monitoring — don't start new jobs when load is high or disk is almost full, etc
  • One should be able to have a nice dashboard with selected tasks for easy launching

What I describe here is to some extent already covered by some of the following:

Here's what's wrong with them:

  • Jenkins' UI is to complicated for simple tasks, also it feel very heavy
  • in Travis-CI you specify the tasks in your code, not in Travis, also it's not software you run locally
  • My experience with Rundeck is it doesn't work out of the box, I could debug it, but I didn't want to, also UI is a bit too complex
  • Minicron is way too simple and (currently) only allows you to run jobs through ssh (not locally)

To reiterate I'd like:

  • A web UI for cron, that's also
  • a bit like Jenkins in a way you can see the output of each of the command runs
  • and have ability to sandbox the processes it runs
  • looks nice and is easy to install and doesn't require maintenance

Comments: 3

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License