@flexdapps/gantree-cli
## About
Last updated 3 months ago by drtexx .
Apache-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @flexdapps/gantree-cli 
SYNC missed versions from official npm registry.

Gantree CLI

About

Substrate is built on the core belief that the future will be multichain.

In the past, setting up and managing blockchain networks required an understanding of a multitude of concepts which may have inhibited end users from experimenting with them.

With the assistance of funding from the Web3 Foundation, Flex Dapps is building a suite of technologies which will enable both power users and those less versed to create and manage substrate-powered parachain networks via rapid spin-up and tear-down of self-managed or cloud-hosted machines.

Software Requirements

In order to use gantree-cli, the following dependencies are required:

REQUIREMENT VERSION NOTES
NodeJS >=10.15.2 Recommended install method: nvm
Terraform >=0.12.20 Snap package will be likely too old
Ansible >=2.9.4 Recommended install method: pip

Ansible Requirements

Install required ansible roles

curl https://raw.githubusercontent.com/flex-dapps/gantree-requirements/master/ansible-galaxy/requirements.yml > ansible_requirements.yml
ansible-galaxy install -r ansible_requirements.yml

Package Installation

Install gantree-cli

npm install gantree-cli -g

Environment Requirements

Provider Credentials

For security reasons, credentials for infrastructure providers must be exported as environment variables.

PROVIDER EXPORTS REQUIRED NOTES
AWS AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
IAM account with EC2 and VPC write access.
GCP GOOGLE_APPLICATION_CREDENTIALS path to json file with credentials of the service account you want to use; this service account needs to have write access to compute and network resources
DigitalOcean DIGITALOCEAN_TOKEN A DigitalOcean access token with read + write access

note: You only need credentials for providers you wish to use

SSH Credentials

You need an additional environment variables to allow ansible to connect to created instances:

EXPORT NAME DESCRIPTION
SSH_ID_RSA_VALIDATOR path to private SSH key you want to use for the validators

You must generate this keypair yourself and add it to your ssh-agent.

note: Don't forget to add the private key to you ssh-agent otherwise you will get Permission denied (publickey) during ansible tasks

Configuration

Gantree-cli requires a configuration file (main.json) in order to guide creation, provisioning, modification and deletion of instances.

Using one of the examples below, create a configuration file to represent your desired infrastructure.

Configuration File Samples

Examples of provider definitions

note: Multiple providers cannot yet be used in a single configuration. This is planned for a future release.

Configuration File Structure: Top Level

  • "project": [string] the gantree project name
  • "repository": [object] relating to the substrate binary to be deployed
  • "validators": [object] defining the validators to deploy

Configuration File Strucutre: repository

  • "url": [string] the path to a git repository of the binary source to deploy
  • "version": [string:HEAD] the commit/tag of the binary source to use
  • "binaryName": [string] the name of the binary when compiled, eg. 'polkadot' or 'node-template'

Configuration File Structure: validators

  • "chain": [string] the name of the chain
  • "useDefaultChainspec": [bool:false] use the internal rust chainspec of the compiled binary
  • "telemetry": [boolean] whether to use the default telemetry, or not report any telemetry
  • "loggingFilter": [string] the logging filter passed to the binary on running
  • "nodes": [array] a list of cloud provider configurations which each map to a network instance

Configuration File Structure: node

See samples/config folder

Optional Configuration

Environment Options

Terraform Statefile Path (optional)

By default the terraform state is stored in <HOME-DIR>/gantree-cli/build/terraform/state/

On the machine executing gantree-cli, HOME-DIR will resolve to the following:

OS HOME-DIR
Linux /home/<myusername>/
Macintosh /Users/<myusername>/Library/Application Support/

This location can be customized with the following environment variable:

EXPORT NAME DESCRIPTION
TERRAFORM_STATEFILE_PATH path to terraform statefile

note: This path must be absolute. If the statefile does not exist at this location it will be created.

Usage

Synchronisation

Before attempting to run sync, ensure all tasks outlined in requirements have been completed.

  • You've installed all requirements
  • All relevant environment variables are exported
  • You've nagivated to the root of the cloned repo

To synchronise your configuration with digital infrastructure, run the following:

gantree-cli sync --config <PATH_TO_GANTREE_CONFIG>

The sync command is idempotent, unless there are errors it will always have the same results. You can execute it as much as you want, it will only make changes when the actual infrastructure state doesn't match the desired state.

Cleaning up

You can remove all the created infrastructure with:

gantree-cli sync clean -c config/main.json

Current Tags

  • 0.1.2                                ...           latest (3 months ago)

4 Versions

  • 0.1.2                                ...           3 months ago
  • 0.1.0-rc3                                ...           3 months ago
  • 0.15.0-alpha-1 [deprecated]           ...           3 months ago
  • 0.15.0-alpha-0 [deprecated]           ...           3 months ago
Downloads
Today 0
This Week 0
This Month 4
Last Day 0
Last Week 4
Last Month 0
Dependencies (11)
Dev Dependencies (7)
Dependents (0)
None

Copyright 2014 - 2017 © taobao.org |