Downloads
Get Ernest
Below are instructions for installing the latest stable release of Ernest (Release Notes).
Requirements: Docker, Docker Compose, OpenSSL, Wget.
Community Edition
Clone the repo containing the setup file:
git clone https://github.com/ernestio/ernest.git
Change to the cloned directory:
cd ernest
Run the setup script:
./setup
Enter the hostname, admin username, and admin password when prompted.
Once the install is finished Ernest will be available on IP of the Docker host.
Enterprise Edition
Clone the repo containing the setup file:
git clone https://github.com/ernestio/ernest.git
Change to the cloned directory:
cd ernest
Copy the Enterprise Edition license file here:
cp /tmp/license.json
.Modify
config/config-store/config.json
from this:{ "postgres": { "names": [ "users", "clients", "datacenters", "services" ], "user": "", "password": "", "url": "postgres://postgres@postgres" }, "logstash": { "hostname": "ernest.local", "port": 5000, "timeout": 50000 }, "monitor": { "host": "", "port": "22000" }, "logger": { "host": "", "port": "22001" }, "authenticator": { "providers": [ { "type": "local" } ] } }
to this
{ "postgres": { "names": [ "users", "clients", "datacenters", "services" ], "user": "", "password": "", "url": "postgres://postgres@postgres" }, "logstash": { "hostname": "ernest.local", "port": 5000, "timeout": 50000 }, "monitor": { "host": "", "port": "22000" }, "logger": { "host": "", "port": "22001" }, "authenticator": { "providers": [ { "type": "local" }, { "type": "federation", "config": { "url": "https://federation_services_endpoint", "scope": "http://ernest_fqdn", "domain": "your_active_directory" } } ] } }
Run the setup script:
./setup
Enter the hostname, admin username, and admin password when prompted.
Once the install is finished Ernest will be available on IP of the Docker host.
Get Ernest CLI
The Ernest CLI is distributed as a binary package for all supported platforms and architectures. To install Ernest CLI, find the newest version of the appropriate package for your system and download it.
After downloading Ernest CLI, unzip it and move the binary to a directory that is on the PATH. See this page for instructions on setting the PATH on Linux and Mac. See this page for instructions on setting the PATH in Windows.
Upgrade Ernest
From Community Edition to Enterprise Edition
Copy the Enterprise Edition license file to the Ernest directory:
cp /tmp/license.json
.Run the upgrade script:
./upgrade
Modify
config/config-store/config.json
from this:{ "postgres": { "names": [ "users", "clients", "datacenters", "services" ], "user": "", "password": "", "url": "postgres://postgres@postgres" }, "logstash": { "hostname": "ernest.local", "port": 5000, "timeout": 50000 }, "monitor": { "host": "", "port": "22000" }, "logger": { "host": "", "port": "22001" }, "authenticator": { "providers": [ { "type": "local" } ] } }
to this
{ "postgres": { "names": [ "users", "clients", "datacenters", "services" ], "user": "", "password": "", "url": "postgres://postgres@postgres" }, "logstash": { "hostname": "ernest.local", "port": 5000, "timeout": 50000 }, "monitor": { "host": "", "port": "22000" }, "logger": { "host": "", "port": "22001" }, "authenticator": { "providers": [ { "type": "local" }, { "type": "federation", "config": { "url": "https://federation_services_endpoint", "scope": "http://ernest_fqdn", "domain": "your_active_directory" } } ] } }
Restart the authenticator and federation services:
docker-compose restart authenticator federation
From 3.x.x to 3.y.y
- Run the upgrade script:
./upgrade
From 2.2.0 to 3.0.0
Ernest 3.0.0 introduces backwards incompatible changes to authorisation and the internal naming structure for environments. Therefore it is necessary to re-import your existing environments into Ernest once you have upgraded to 3.0.0.
Run the setup script:
./setup
Unregister each environment from Ernest:
ernest env delete <project> <environment> --force
Import each environment into Ernest:
ernest env import <project> <environment>
From 2.x.x to 2.y.y
- Run the upgrade script:
./upgrade
From 1.12.0 to 2.0.0
Ernest 2.0.0 introduces backwards incompatible changes to the internal naming structure for AWS environments. Therefore it is necessary to re-import your existing environments into Ernest once you have upgraded to 2.0.0.
Shutdown Ernest:
docker-compose down
Pull down the latest version of Ernest:
git checkout docker-compose.yml && git checkout config/nginx/ernest.local && git checkout master && git pull
Run the setup script:
./setup
Reapply the datacenter credentials:
ernest datacenter update aws --access_key_id <access_key_id> --secret_access_key <secret_access_key> <dc_name>
For internet gateways update the ‘Name’ tag to match the ‘Name’ tag of the VPC the gateway is attached to. Also add the ‘ernest.service’ tag to the gateway with a value equal to the service name.
For instances prepend the ‘ernest.instance_group’ tag with
<dc_name>-<service_name>-
.For volumes prepend the ‘ernest.volume_group’ tag with
<dc_name>-<service_name>-
.Unregister each service from Ernest:
ernest service destroy <service_name> --force
Import each service into Ernest:
ernest service import <dc_name> <service_name>
From 1.x.x to 1.y.y
Shutdown Ernest:
docker-compose down
Pull down the latest version of Ernest:
git checkout docker-compose.yml && git checkout config/nginx/ernest.local && git checkout master && git pull
Run the setup script:
./setup