Server Commander
12 Jul 2017 04:46
TAGS: automation cron jenkins linux travis
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:
- Jenkins https://jenkins.io/
- Travis-CI https://travis-ci.com/
- Rundeck http://rundeck.org/
- Minicron https://github.com/jamesrwhite/minicron/
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
A friend uses Webmin on their web server, and it seems quite powerful. Haven't personally used it.
http://www.webmin.com/
http://doxfer.webmin.com/Webmin/Scheduled_Cron_Jobs
~ Leiger - Wikidot Community Admin - Volunteer
Wikidot: Official Documentation | Wikidot Discord server | NEW: Wikiroo, backup tool (in development)
Wow, I've heard about Webmin about 10 years ago, I didn't know it was still a thing. From what I understand, it's a web UI for admin tasks on a Linux server with many modules (to configure Postfix, Samba, etc). It seems managing your crontabs is one of many modules. It looks like it would be a good UI for scheduling, but not necessarily for managing the execution of the jobs (sandboxing, time-limiting, inspecting the output, etc).
Piotr Gabryjeluk
visit my blog
Can't comment much on that, as I said I haven't personally used it. However … I too was surprised at first when I heard that it was still around! :) Only recently.
Hope you find what you're looking for.
~ Leiger - Wikidot Community Admin - Volunteer
Wikidot: Official Documentation | Wikidot Discord server | NEW: Wikiroo, backup tool (in development)
Post preview:
Close preview