Skip to content

Latest commit

 

History

History

ethereum_node

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

ethpandaops.general.ethereum_node

This role will allow you to run a ethereum execution and consensus layer node.

You can choose and switch between client you want to run by changing the following variables:

 ethereum_node_el: geth
 ethereum_node_cl: lighthouse

It uses the following underyling roles:

Consensus layer clients

Execution layer clients

Facts discovery

Metrics/Events collection

Requirements

You'll need docker on the target system. Make sure to install it upfront.

Role Variables

Default variables are defined in defaults/main.yaml

You can also overwrite any of the default variables used by the specific EL or CL client roles too.

E.g. For geth that would be ethpandaops.general.geth/defaults/main.yaml.

To enable the ethereum-metrics-exporter you need to set ethereum_node_metrics_exporter_enabled: true. By default it's disabled.

Dependencies

You'll need docker to run this role. One way of installing docker could be via ansible galaxy with the following dependencies set within requirements.yaml:

roles:
- src: geerlingguy.docker
  version: latest
- src: geerlingguy.pip
  version: latest

Example Playbook

If you would like to run a geth and lighthouse node, then your playbook could look like this:

- hosts: localhost
  become: true
  roles:
  - role: geerlingguy.docker
  - role: geerlingguy.pip
    pip_install_packages:
    - name: docker
  - role: ethpandaops.general.ethereum_node
    ethereum_node_el: geth
    ethereum_node_cl: lighthouse

If you want to set client specific configuration you could do it by overwriting the the client specific default variables. For example, if you want to provide extra arguments to your lighthouse command and run a specific version of geth, then you could do it like this:

  - role: ethpandaops.general.ethereum_node
    # Define which clients you want to use
    ethereum_node_el: geth
    ethereum_node_cl: lighthouse
    # Overwrite a specific lighthouse variable. Check lighthouse/defaults/main.yaml
    lighthouse_container_command_extra_args:
      - --checkpoint-sync-url=http://your-other-node
    # Overwrite a specific geth variable. Check geth/defaults/main.yaml
    geth_container_image: ethereum/client-go:latest