This document describes how to deploy Aerie.
- Prerequisite Software
- Environment Variables
- Starting the Services
- Postgres Considerations
- Stopping the Services
- Troubleshooting
Before you can deploy Aerie, you must install and configure the following products on your deployment machine:
- Docker which is used to deploy containers for the Aerie services.
Each container has environment variables that can be used to fine-tune your deployment. See the environment variable documentation for the complete set of variables. See the example docker-compose.yml file for examples on how to set the environment variables.
Inside the .env there is a collection of variables that must be set in order to deploy Aerie using the default init-aerie.sh and docker-compose.yml. They are, as follows:
Name | Description |
---|---|
REPOSITORY_DOCKER_URL |
The URL used to fetch images of Aerie packages. |
DOCKER_TAG |
The version of the Aerie images to fetch. |
AERIE_USERNAME |
The username used for Aerie services when they access the Postgres database. |
AERIE_PASSWORD |
The password used for Aerie services when they access the Postgres database. |
POSTGRES_USER |
The username of the superuser for the Postgres database. |
POSTGRES_PASSWORD |
The password of the superuser for the Postgres database. |
UNTRUE_PLAN_START |
Temporary solution to provide plan start time to models, should be set to a time that models will not fail to initialize on. |
At minimum, you must assign values to the environment variables already present in .env in order to deploy Aerie.
A Merlin simulation is executed by an aerie-merlin-worker. An Aerie deployment can configure one or more workers to provide an Aerie deployment with the ability to execute multiple concurrent simulations. Without a worker Aerie will not execute any simulations. Workers are declared by adding a worker container definition in your docker-compose file for each worker. The default docker-compose.yml contained in this directory declares a single worker. The worker must configured to access the same postgresql instance and database as the Merlin server. It is recommended that the number of workers does not exceed the host's remaining available cores (considering other processes running on the host).
Download and unzip the latest Deployment.zip file onto your local machine, then do:
cd deployment
docker-compose up --build --detach
When the Postgres container starts it will run init-aerie.sh to initialize the database with the Aerie database objects.
Note: This script is only run if you start the container with a data directory that is empty; any pre-existing database will be left untouched on container startup. See the 'Initialization scripts' section of the Docker Postgres documentation for more detailed information.
docker-compose down
- Make sure you are starting all the Docker containers in a clean environment. This means before starting the services make sure all containers are removed, all images are removed, and all volumes are removed.
- If you are having trouble and cannot find the answer here, please contact someone from the Aerie team via the #mpsa-aerie-users Slack channel.