consensys.hyperledger_besu

Ansible Role: Besu

Description

This Ansible role installs, configures, and runs Besu, a Java client for Ethereum designed for enterprises.

Table of Contents

Supported Platforms

* MacOS
* Debian
* Ubuntu
* Redhat (CentOS/Fedora)
* Amazon

Dependencies

  • JDK 11 or newer

Role Variables

All variables that you can change are in the defaults/main.yml file. These usually control settings. Please check the Besu documentation for more details.

Name Default Value Description
besu_build_from_source unset If true, Besu is built from source code. See besu_git_repo and besu_git_commit too.
besu_version unset REQUIRED if besu_build_from_source is false. Version of Besu to install. Check Besu releases for available versions.
besu_git_repo https://github.com/hyperledger/besu.git The URL for cloning Besu source. Needed if building from source.
besu_git_commit master The specific commit to use when building Besu from source.
besu_user besu User for Besu.
besu_group besu Group for Besu.
besu_download_url https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/{{ besu_version }}/besu-{{ besu_version }}.tar.gz URL for downloading Besu. Change if using a different repository.
besu_install_dir /opt/besu Directory where Besu will be installed.
besu_config_dir /etc/besu Directory for Besu configuration files.
besu_node_private_key_file "" Path to the private key file for the node. If not provided, one will be created.
besu_data_dir /opt/besu/data Directory for data storage.
besu_log_dir /var/log/besu Directory for logs.
besu_log4j_config_file unset Path to a custom log4j configuration file. Will be ignored if besu_log_level is set.
besu_profile_file /etc/profile.d/besu-path.sh File path to set Besu in the system PATH.
besu_managed_service true Enables a service that manages Besu (systemd or launchd).
besu_launchd_dir /Library/LaunchAgents Default directory for launchd on macOS.
besu_systemd_dir /etc/systemd/system/ Default directory for systemd services.
besu_systemd_state restarted Default state for systemd service.
besu_identity unset Configuration of Identity in the Client ID.
besu_host_ip "" Host IP for P2P network communication.
besu_max_peers unset Maximum number of P2P connections.
besu_network mainnet Network this node will join (e.g., 'ropsten', 'rinkeby', etc.).
besu_genesis_path unset Path to the genesis file (only for custom networks).
besu_required_blocks [] Requires peers to have specific block hashes when connecting.
besu_sync_mode FAST Synchronization mode (e.g., 'FULL').
besu_log_level unset Log level (e.g., 'INFO', 'DEBUG').
besu_data_storage_format unset Data storage format (e.g., 'FOREST', 'BONSAI').
besu_engine_jwt_disabled unset Disable authentication for the Engine API.
besu_engine_jwt_secret unset Path to shared secret file for Engine JSON-RPC authentication.
besu_engine_rpc_port unset Port for Engine API calls. Default is 8551.
besu_p2p_port 30303 P2P listening ports (UDP and TCP).
besu_min_gas 1000 Minimum price for transactions to be included in blocks.
besu_miner_enabled false Enable mining when the node starts.
besu_miner_coinbase 0x Account for mining rewards.
besu_rpc_http_enabled true Enable HTTP JSON-RPC service.
besu_rpc_http_host 0.0.0.0 Host for the HTTP JSON-RPC service.
besu_rpc_http_port 8545 Port for the HTTP JSON-RPC service.
besu_rpc_ws_enabled true Enable WebSockets service.
besu_rpc_ws_port 8546 Port for the WebSockets JSON-RPC service.
besu_metrics_host 0.0.0.0 Host for accessing Besu metrics.
besu_metrics_port 9545 Port for accessing Besu metrics.
besu_bootnodes [] List of enode URLs for P2P discovery.
besu_local_permissions_enabled "false" Enable local permissioning.
besu_cmdline_args "" Command line arguments for customization.
besu_privacy_enabled false Enable privacy features.

Example Playbook

  1. Default Setup: To install the role from Ansible Galaxy:

    ansible-galaxy install consensys.hyperledger_besu
    

    Create a requirements.yml file with: Replace x.y.z with the desired Besu version.

    ---
    - hosts: localhost
      connection: local
      force_handlers: True
    
      roles:
      - role: consensys.hyperledger_besu
        vars:
          besu_version: x.y.z
    

    Run the playbook:

    ansible-playbook -v /path/to/requirements.yml
    
  2. Install via GitHub:

    ansible-galaxy install git+https://github.com/consensys/ansible-role-besu.git
    

    Create a requirements.yml file with: Replace x.y.z with the desired Besu version.

    ---
    - hosts: localhost
      connection: local
      force_handlers: True
    
      roles:
      - role: ansible-role-besu
        vars:
          besu_version: x.y.z
    

    Run the playbook:

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

License

Apache

Author Information

Consensys, 2023

Informazioni sul progetto

Besu is an open-source java enterprise ethereum client

Installa
ansible-galaxy install consensys.hyperledger_besu
Licenza
Unknown
Download
16.2k
Proprietario
Consensys is the software engineering leader of the blockchain space. Our full-stack Ethereum products help developers build next-generation networks.