5.0 KiB
Tasker (Jobs Server)
The Tasker component runs scheduled and on-demand tasks for the Stoplight platform.
Networking Details
The default port for the Tasker component is TCP port 9432. This port can be customized via configuration.
Tasker must be able to receive incoming connections from the following components:
- API
Tasker must be able to make outgoing connections to the following components:
- API
- Redis
- Pubs
Component Dependencies
Make sure the following components are available before starting the Tasker service:
- Redis
Installation
Tasker can be installed with Docker or via RPM package.
RPM Package
Prior to installing the RPM package, you will need to have the Stoplight package repository installed and configured with your user-specific credentials.
Setting up the Package Repository
You can setup the Stoplight package repo by copying-and-pasting the contents below into a terminal:
# expose credentials to environment first
REPO_USERNAME="myusername"
REPO_PASSWORD="mypassword"
# write credentials to repo file
cat <<EOF | sudo tee /etc/yum.repos.d/stoplight.repo
[stoplight]
name=Stoplight Package Repository
baseurl=https://$REPO_USERNAME:$REPO_PASSWORD@pkg.stoplight.io/rpm
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://pkg.stoplight.io/stoplight.key
EOF
Make sure that the repository credentials are set before issuing the
catcommand above.
Installing the Tasker Package
Once the repository is configured properly, you can install the Tasker component using the command:
sudo yum install tasker -y
Docker
To install the Tasker component with Docker, run the command below:
docker pull quay.io/stoplight/tasker
Note, if you have not already authenticated with the Stoplight container registry, you will be prompted for credentials.
Configuration
To configure the Tasker component, you will need to provide runtime settings and connection details for a running Redis instance.
Variables
TASKER_HTTP_BIND
The TASKER_HTTP_BIND variable is the bind address and port used for serving
the Tasker HTTP API.
TASKER_HTTP_BIND="localhost:9432"
TASKER_MODE
The TASKER_MODE variable is the operation mode that Tasker should use when
executing jobs. Valid values for TASKER_MODE are docker and shell.
TASKER_MODE="shell"
If not specified, Tasker defaults to using
dockermode.
CORE_ROOT
The CORE_ROOT denotes the absolute path to the stoplight-hub-builder package
root.
CORE_ROOT="/opt/stoplight-hub-builder"
This variable is only required when running in
shellmode.
TASKER_REDIS_HOSTPORT
The TASKER_REDIS_HOSTPORT variable denotes the Redis instance host:port to connect to.
TASKER_REDIS_HOSTPORT="redis://redis:6379"
Redis must be available before starting service.
TASKER_REDIS_PASSWORD
The TASKER_REDIS_PASSWORD variable is an optional password to use when
connecting to the Redis instance.
TASKER_REDIS_PASSWORD=""
TASKER_REDIS_DATABASE
The TASKER_REDIS_DATABASE variable is the Redis database used by Tasker for
storing job state.
TASKER_REDIS_DATABASE="0"
TASKER_REDIS_NAMESPACE
The TASKER_REDIS_NAMESPACE variable is the Redis namespace used by Tasker for
storing job state.
TASKER_REDIS_NAMESPACE="tasker"
RPM Package
The Tasker configuration is located at:
/etc/tasker/tasker.cfg
Be sure to customize any variables as needed to match your environment before starting the Tasker service.
Any changes to the Tasker configuration requires a service restart in order to take effect.
Docker
To expose configuration variables to the Docker runtime, either write them to a
file and use the --env-file argument:
cat <<EOF>tasker-env-vars
TASKER_HTTP_BIND="..."
...
EOF
docker run --env-file tasker-env-vars ...
Alternatively, you can expose them one at a time with the -e flag:
docker run -e TASKER_HTTP_BIND=0.0.0.0:9432 ...
Running
RPM Package
To start the Tasker server, run the command:
sudo systemctl start tasker
Once started, you can see the status of the service using the command:
sudo systemctl status tasker
Docker
To start the Tasker container, use the command:
docker run \
--restart on-failure \
--env-file tasker-env-vars \
-p 9432:9432 \
quay.io/stoplight/tasker:latest
If started properly, the container should be marked with a healthy status after
30 seconds. Use the docker ps command to verify the container was started and
is running properly.
Post-install Validations
Once the Tasker component is running, you can verify the installation was
successful issuing an HTTP GET request to the /health endpoint:
# remember to update the scheme, host, and port here to match your installation
curl -v http://localhost:9432/health
If Tasker was installed and configured properly, you will receive an HTTP 200
response back.