Deploy Veriscope to a dedicated Veriscope Server using Terraform and Ansible

Veriscope Infrastructure as Code (IaC) hasn’t been released on PROD yet. These docs are a preview of what’s to come.

Veriscope comes with infrasructure as code (IaC) that uses AWS, Terraform, and Ansible. If those tools are familiar and used within your organization, it should be straightforward to incorporate into your own pipeline. Alternatively, you can use other cloud platforms and automation tools (e.g. Alibaba Cloud, Azure, GCP, GitHub Actions, GitLab CI/CD, Jenkins, etc.) of your choice.

The following documentation is for Veriscope IaC. At the end of this guide, you should have a Veriscope Server deployed with Veriscope installed and ready for use.

Shyft Network owns and operates Veriscope Servers for internal user (i.e. collaborators and employees). If you are an internal user and wish to run a Veriscope instance, first request a Bastion machine to be created in your name.

Follow the README here to request, configure, and access your Bastion. Once you can SSH into your Bastion, return to this guide using your Bastion as the controller machine.

Veriscope IaC Overview

Veriscope IaC can be found in the infra folder in the Veriscope repo:

|-veriscope
    |-infra
        |-cloudformation
        |-configure
        |-lambdas
        |-terraform

Environments

Four different environments are supported:

  • test

  • dev (e.g. to connect to Shyft Network veriscope_testnet chain)

  • staging

  • prod (e.g. to connect to Shyft Network fed_mainnet chain)

Each environment is a logical separation of the infrastructure for a specific purpose and can be hosted in its own AWS account or in the same AWS account. How you use the environments is up to you.

General Workflow

If your cloud environment and base infrastructure have already been set-up and you just wish to provision a new Veriscope Server, jump straight to to Provision a Veriscope Server.

Prerequisites

Before using Veriscope IaC, complete the following steps: