cosmos-sdk/networks/remote
Dev Ojha bd362ee590 Merge PR #1090: Switch away from ephemeral ports
* Switch ports 4665x to be 2655x
This is done so the default ports aren't in the linux kernel's default ephemeral port range.
* Missed one doc file, change dep so gaiad works
* Update changelog, fix Gopkg.lock
2018-06-14 00:13:51 +02:00
..
ansible Merge PR #1090: Switch away from ephemeral ports 2018-06-14 00:13:51 +02:00
terraform Remotenet start/status/stop added to Makefile to create a DO validator network 2018-05-25 03:02:54 +02:00
README.rst Added logzio scripts 2018-05-25 03:03:18 +02:00

README.rst

Terraform & Ansible
===================

Automated deployments are done using `Terraform <https://www.terraform.io/>`__ to create servers on Digital Ocean then
`Ansible <http://www.ansible.com/>`__ to create and manage testnets on those servers.

Prerequisites
-------------

-  Install `Terraform <https://www.terraform.io/downloads.html>`__ and `Ansible <http://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html>`__ on a Linux machine.
-  Create a `DigitalOcean API token <https://cloud.digitalocean.com/settings/api/tokens>`__ with read and write capability.
- Install the python dopy package (``pip install dopy``) (This is necessary for the digitalocean.py script for ansible.)
-  Create SSH keys

::

    export DO_API_TOKEN="abcdef01234567890abcdef01234567890"
    export TESTNET_NAME="remotenet"
    export SSH_PRIVATE_FILE="$HOME/.ssh/id_rsa"
    export SSH_PUBLIC_FILE="$HOME/.ssh/id_rsa.pub"

These will be used by both ``terraform`` and ``ansible``.

Create a remote network
-----------------------

::

    make remotenet-start


Optionally, you can set the number of servers you want to launch and the name of the testnet (which defaults to remotenet):

::

    TESTNET_NAME="mytestnet" SERVERS=7 make remotenet-start


Quickly see the /status endpoint
--------------------------------

::

    make remotenet-status


Delete servers
--------------

::

    make remotenet-stop

Logging
-------

You can ship logs to Logz.io, an Elastic stack (Elastic search, Logstash and Kibana) service provider. You can set up your nodes to log there automatically. Create an account and get your API key from the notes on `this page <https://app.logz.io/#/dashboard/data-sources/Filebeat>`__, then:

::

   yum install systemd-devel || echo "This will only work on RHEL-based systems."
   apt-get install libsystemd-dev || echo "This will only work on Debian-based systems."

   go get github.com/mheese/journalbeat
   ansible-playbook -i inventory/digital_ocean.py -l remotenet logzio.yml -e LOGZIO_TOKEN=ABCDEFGHIJKLMNOPQRSTUVWXYZ012345