Runner
A utility service to manage safe execution of remote scripts / commands. User launches this from commandline and let the utility manage the commands to be executed.
The runner utility runs as a service and provides REST API interface to safely execute remote commands. Multiple runners can be active simultaneously on one computer. The commands are sent via the REST API and are executed on the computer with active runner.
Install
NPM Registry
The package is available on npmjs.
Install the package with the following command:
Github Registry
The package is available in Github packages registry.
Set the registry and install the package with the following commands
The npm install command asks for username and password. The username is your Github username and the password is your Github personal access token. In order for the npm to download the package, your personal access token needs to have read:packages scope.
Configure
The utility requires config specified in YAML format. The template configuration file is:
It is suggested that the configuration file be named as runner.yaml and placed in the directory in which the runner microservice is run.
The location
refers to the relative location of the scripts directory
with respect to the location of runner.yaml file.
However, there is no limitation on either the configuration filename or
the location
. The path to runner.yaml can either be relative or
absolute path. However, the location
path is always relative path
with respect to the path of runner.yaml file.
The commands must be executable. Please make sure that the commands have execute permission on Linux platforms.
Create Commands
The runner requires commands / scripts to be run.
These need to be placed in the location
specified in
runner.yaml file. The location must be relative to
the directory in which the runner microservice is being
run.
Use
Display help.
The config option is not mandatory. If it is not used, runner looks for runner.yaml in the directory from which it is being run. Once launched, the utility runs at the port specified in runner.yaml file.
If launched on one computer,
you can access the same at http://localhost:<port>
.
Access to the service on network is available at http://<ip or hostname>:<port>/
.
Application Programming Interface (API)
Three REST API methods are active. The route paths and the responses given for these two sources are:
REST API Route | HTTP Method | Return Value | Comment |
---|---|---|---|
localhost:port | POST | Returns the execution status of command | Executes the command provided. Each invocation appends to array of commands executed so far. |
localhost:port | GET | Returns the execution status of the last command sent via POST request. | |
localhost:port/history | GET | Returns the array of POST requests received so far. |
POST Request to /
Executes a command. The command name given here must exist in location directory.
GET Request to /
Shows the status of the command last executed.
GET Request to /history
Returns the array of POST requests received so far. Both valid and invalid commands are recorded in the history.