More Ways to Install Metrist Orchestrator
Installation Options
We support the systems outlined below (unless otherwise marked “experimental”).
If your preferred system is not yet supported, please contact us.
Getting Ready
Verification of Binaries
All binaries are signed by a key that is listed in our public keyring. Our installation instructions always include verify commands, such as:
gpg --verify --keyring=/tmp/metrist.gpg $orch_latest.asc
# where %orch_lastest.asc is the path to one of our binaries
Example:
wget -nc https://raw.githubusercontent.com/Metrist-Software/orchestrator/main/dist/trustedkeys.gpg -O /tmp/metrist.gpg
orch_latest=$(curl https://dist.metrist.io/orchestrator/ubuntu/20.04.x86_64.latest.txt)
wget https://dist.metrist.io/orchestrator/ubuntu/$orch_latest
wget https://dist.metrist.io/orchestrator/ubuntu/$orch_latest.asc
gpg --verify --keyring=/tmp/metrist.gpg $orch_latest.asc
On warning: “gpg: Can't check signature: No public key”
Note the message: gpg: Signature made Day ## Month yyyy hh:mm:ss
. This indicates the binary’s signature is valid.
You will also see: gpg: Can't check signature: No public key
. This is to be expected and indicates that you have not, with your own private key, declared trust in our keyring. Contact us for more information.
Read about how we sign code for more information.
API Token
You will need your API auth token to run Metrist Orchestrator. You can find your API token at app.metrist.io/profile. The scripts below expect to find it in the environment:
export METRIST_API_TOKEN=<your API auth token here>
#confirm it is available in the environment
echo $METRIST_API_TOKEN
Docker Installation
We distribute a Docker image for Orchestrator. You can get the image name from our distribution site:
latest=$(curl https://dist.metrist.io/orchestrator/docker/orchestrator-latest.txt)
docker run <run-args...> $latest
run-args
depends on what you want to do with Orchestrator. In the simplest case, for running private synthetic monitoring, you just need to add an API token using -e METRIST_API_TOKEN=<your key>
. If you want to export Orchestrator’s listening port for in-process monitoring, you should add -p 51712:51712/udp
.
Example with both arguments:
docker run -e METRIST_API_TOKEN=$METRIST_API_TOKEN -p 51712:51712/udp $latest
WSL (Windows Subsystem for Linux) experimental
Metrist Orchestrator cannot be run in a Linux WSL virtual machine without modification. (See this post about making systemd available in WSL.)
In theory, Metrist Orchestrator can be installed and run in a Docker container in a WSL virtual machine.
We don’t support these options. However, please contact us if you experiment and have success with either of these approaches in a Windows environment.
Debian Package Installation
SYSTEMS SUPPORTED
- Ubuntu for x86, 64 bit: 20.04, 22.04
If you are on a supported system for Debian package installation, you can:
Download the package:
sh# ensure you have these dependencies first sudo apt install -y wget gpg curl
shorch_latest=$(curl https://dist.metrist.io/orchestrator/ubuntu/22.04.x86_64.latest.txt) wget https://dist.metrist.io/orchestrator/ubuntu/$orch_latest wget https://dist.metrist.io/orchestrator/ubuntu/$orch_latest.asc gpg --verify --keyring=/tmp/metrist.gpg $orch_latest.asc
INFO
(Where "22.04" is replaced by the distribution you are using.)
Then install the package:
shsudo apt install -y ./$orch_latest
And add your API key:
shcat <<EOF | sudo tee -a /etc/default/metrist-orchestrator METRIST_API_TOKEN=$METRIST_API_TOKEN EOF
You can then start the software using systemd:
shsudo systemctl enable --now metrist-orchestrator sudo systemctl start metrist-orchestrator
TIP
journalctl --unit metrist-orchestrator
should show a running process.sudo systemctl stop metrist-orchestrator
will stop the process.sudo systemctl start metrist-orchestrator
will start the process.
Unsupported Platforms with Debian Package Format experimental
Note the above Debian package should work for Ubuntu/Debian-like platforms that have the same C libraries as the supported Ubuntu versions (like actual Debian distributions and non-LTS Ubuntu versions)(but not Raspbian or other debian distributions for ARM64 systems). Please contact us if you want your system added to the list.
Amazon Linux Package Installation
SYSTEMS SUPPORTED
- Amazon Linux 2
Download the package:
shsudo yum install wget curl orch_latest=$(curl https://dist.metrist.io/orchestrator/amazon-linux/2.x86_64.latest.txt) wget https://dist.metrist.io/orchestrator/amazon-linux/$orch_latest
(Optional) Verify the Package
Amazon Linux 2 includes a gpg version < 2.1 so verification must be done outside the Amazon Linux 2 machine using a gpg version >= 2.1 to support the Keybox keyring format of our trustedkeys.gpg.
shorch_latest=$(curl https://dist.metrist.io/orchestrator/amazon-linux/2.x86_64.latest.txt) wget https://dist.metrist.io/orchestrator/amazon-linux/$orch_latest wget https://dist.metrist.io/orchestrator/amazon-linux/$orch_latest.asc gpg --verify --keyring=/tmp/metrist.gpg $orch_latest.asc
Then install the package:
shsudo yum localinstall ./$orch_latest
And add your API key:
shcat <<EOF | sudo tee -a /etc/default/metrist-orchestrator METRIST_API_TOKEN=$METRIST_API_TOKEN EOF
You can then start the software using systemd:
shsudo systemctl enable --now metrist-orchestrator sudo systemctl start metrist-orchestrator
TIP
journalctl --unit metrist-orchestrator
should show a running process.sudo systemctl stop metrist-orchestrator
will stop the process.sudo systemctl start metrist-orchestrator
will start the process.
Installation From Source experimental
We recommend using asdf-vm to install dependencies, but it’s not necessary.
Without asdf
If you do not or can not use asdf-vm, please check the .tool-versions file for dependencies. At a minimum, you will need current versions of Erlang and Elixir.
Fetch the source code from Git, install dependencies (using
asdf
as below), and build:shgit clone https://github.com/Metrist-Software/orchestrator.git
shcd orchestrator asdf install export MIX_ENV=prod mix do deps.get, compile, release
This will create an executable
_build/prod/rel/bakeware/orchestrator
that you can then directly run.sh_build/prod/rel/bakeware/orchestrator start