Skip to main content

Ansible

GoQuorum can be installed using Ansible on a linux VM or OSX machine. Additionally, you can use the same role in conjunction with other orchestration tooling like Terraform.

Ansible-Galaxy

You can use an Ansible Galaxy role to install, configure, and run GoQuorum

Install the role

The first step is to include the role in the requirements.yaml file with any other roles that you use. For example the Prometheus exporter roles below publishes system metrics that can be scraped with Prometheus

requirements.yaml
---
roles:
- src: consensys.goquorum
version: 0.1.0
- src: undergreen.prometheus-node-exporter
version: v1.4.0
- src: undergreen.prometheus-exporters-common
version: v1.2.0

Then install the role:

ansible-galaxy install --role-file requirements.yaml

Use the role

After you install the role, create a file called goquorum.yml where you can define variables to configure GoQuorum. For example, you can configure the JSON-RPC service as follows:

goquorum.yml
---
- hosts: localhost
connection: local
force_handlers: True

roles:
- role: consensys.goquorum
vars:
goquorum_version: vX.Y.Z
goquorum_consensus_algorithm: "istanbul"
goquorum_genesis_path: "/path/to/genesis_file"
goquorum_http_enabled: true
goquorum_http_host: 127.0.0.1
goquorum_http_port: 8545
goquorum_http_api:
[
"admin",
"db",
"eth",
"debug",
"miner",
"net",
"web3",
"quorum",
"ibft",
]
goquorum_http_cors_origins: ["all"]
goquorum_http_virtual_hosts: ["all"]

Run the file as follows:

ansible-playbook -v /path/to/goquorum.yml