Install Resoto with pip
pip is the package installer for Python and allows for easy installation of Python packages in Linux environments.
Prerequisites​
Python 3.9+ (3.10 is recommended)
ArangoDB 3.8.4+
Prometheus 2.35.0+
At least 2 CPU cores and 8 GB of RAM
Directions​
Install Resoto Python packages using pip:
Installing Resoto using pip$ mkdir -p ~/resoto
$ cd ~/resoto
$ python3 -m venv resoto-venv # Create a virtual Python environment.
$ source resoto-venv/bin/activate # Activate the virtual Python environment.
$ python -m ensurepip --upgrade # Ensure pip is available.
$ pip install -U resotocore==3.8.0 resotoworker==3.8.0 resotometrics==3.8.0 resotoshell==3.8.0 resoto-plugin-aws==3.8.0 resoto-plugin-gcp==3.8.0 resoto-plugin-k8s==3.8.0 resoto-plugin-digitalocean==3.8.0
# Generate two random passphrases. One to secure the graph database and one to secure resotocore with.
$ echo $(LC_ALL=C tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c 20) > .graphdb-password
$ echo $(LC_ALL=C tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c 20) > .pre-shared-key
$ chmod 600 .graphdb-password .pre-shared-keyInstall ArangoDB following the installation instructions for your Linux distribution. Also read the Linux Operating System Configuration guide for optimal database performance.
The following will start ArangoDB on the current shell (which is )useful for testing):
$ mkdir -p ~/resoto/arangodb ~/resoto/data
$ cd ~/resoto
$ curl -L -o arangodb3.tar.gz https://download.arangodb.com/arangodb39/Community/Linux/arangodb3-linux-3.9.1.tar.gz
$ tar xzf arangodb3.tar.gz --strip-components=1 -C arangodb
$ rm -f arangodb3.tar.gz
$ arangodb/bin/arangod --database.directory ~/resoto/datanoteOnce Resoto Core starts, it will automatically secure the ArangoDB installation using the password provided in the
.graphdb-password
file (unless explicitly turned off using the--graphdb-bootstrap-do-not-secure
flag).infoSee Security ⇒ Custom Certificates for details on how to generate certificates and encrypt the connection between Resoto Core and the graph database.
Create multiple shells/tabs and run each component in a separate shell:
- resotocore
- resotoworker
- resotometrics
$ graphdb_password=$(< ~/resoto/.graphdb-password)
$ pre_shared_key=$(< ~/resoto/.pre-shared-key)
$ source ~/resoto/resoto-venv/bin/activate
$ resotocore --graphdb-password "$graphdb_password" --graphdb-server http://localhost:8529 --psk "$pre_shared_key" --ui-path ~/resoto/uiinfoResoto Core only listens on
localhost:8900
by default. Resoto Core can be configured to listen on all interfaces if desired.$ pre_shared_key=$(< ~/resoto/.pre-shared-key)
$ source ~/resoto/resoto-venv/bin/activate
$ resotoworker --resotocore-uri https://localhost:8900 --psk "$pre_shared_key"$ pre_shared_key=$(< ~/resoto/.pre-shared-key)
$ source ~/resoto/resoto-venv/bin/activate
$ resotometrics --resotocore-uri https://localhost:8900 --psk "$pre_shared_key"infoResoto exposes Prometheus metrics at
https://localhost:9955/metrics
. Follow the Prometheus Getting Started guide to install and configure a Prometheus server.