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.gitChange to the cloned directory:
cd ernestRun the setup script:
./setupEnter 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.gitChange to the cloned directory:
cd ernestCopy the Enterprise Edition license file here:
cp /tmp/license.json.Modify
config/config-store/config.jsonfrom 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:
./setupEnter 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:
./upgradeModify
config/config-store/config.jsonfrom 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:
./setupUnregister each environment from Ernest:
ernest env delete <project> <environment> --forceImport 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 downPull down the latest version of Ernest:
git checkout docker-compose.yml && git checkout config/nginx/ernest.local && git checkout master && git pullRun the setup script:
./setupReapply 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> --forceImport each service into Ernest:
ernest service import <dc_name> <service_name>
From 1.x.x to 1.y.y
Shutdown Ernest:
docker-compose downPull down the latest version of Ernest:
git checkout docker-compose.yml && git checkout config/nginx/ernest.local && git checkout master && git pullRun the setup script:
./setup