consensys.tessera

Rôle Ansible : Tessera

Description

Ce dépôt contient un playbook Ansible pour déployer Tessera sur un serveur bare-metal.

Table des Matières

Prérequis

  1. Java JDK 11+
  2. Outils de construction pour construire libsodium

Variables de Rôle

Les variables sont définies dans defaults/main.yml et peuvent être directement remplacées en modifiant le fichier, en passant des paramètres en ligne de commande, ou des variables dans un playbook. La majorité des variables sont des options concernant le fichier de configuration pour Tessera, que vous pouvez consulter dans sa documentation.

Variables de Rôle Requises Recommandées

Le tableau ci-dessous présente les variables de rôle recommandées à utiliser. Veuillez consulter le deuxième tableau si vous souhaitez voir la liste complète des variables pouvant être modifiées.

Nom Par défaut Requis ?
tessera_version non défini Oui
run_with_besu faux Oui, si utilisé avec Besu. Laisser non défini ou faux si utilisé avec GoQuorum.
server_configs non défini Oui. Toutefois, s'il est laissé non défini, la configuration par défaut sera utilisée, adaptée à un environnement de développement. Consultez templates/config.json.j2
peers non défini Oui. Cependant, s'il est laissé non défini, la valeur par défaut sera elle-même. Consultez templates/config.json.j2
public_key non défini Clé publique.
config_details non défini Détails de configuration pour les paires de clés en ligne protégées ou non protégées.
jdbc_url Défini sur tessera_config_dir/db Oui. La valeur par défaut sera définie sur tessera_config_dir/db en tant que fichier local.
jdbc_username "sa" Oui. Veuillez vous assurer de le modifier.
jdbc_password "" Oui. Veuillez vous assurer de le modifier.
default_log_level INFO Non. Peut être défini sur 'DEBUG' si nécessaire.

Liste Complète des Variables de Rôle

Nom Par défaut Description
tessera_version non défini Version de Tessera à installer. Doit être défini pour que le rôle s'exécute.
tessera_user tessera L'utilisateur qui sera créé sur le système pour exécuter Tessera.
tessera_group tessera Groupe auquel l'utilisateur appartiendra.
tessera_download_url Préconisé URL vers le tar de Tessera.
enclave_download_url Préconisé URL vers le tar d'Enclave.
azure_key_vault_download_url Préconisé URL vers le tar d'Azure Key Vault.
aws_key_vault_download_url Préconisé URL vers le tar d'AWS Key Vault.
hashicorp_key_vault_download_url Préconisé URL vers le tar de Hashicorp Key Vault.
libsodium_download_url Préconisé URL vers le tar.gz de Libsodium.
tessera_base_dir /opt/tessera Répertoire de base pour le binaire de Tessera et ses dépendances.
tessera_install_dir /opt/tessera/tessera-{{ tessera_version }} Répertoire d'installation pour Tessera.
tessera_config_dir /etc/tessera Répertoire de configuration pour Tessera.
tessera_log_dir /var/log/tessera Répertoire de log pour Tessera.
tessera_libsodium_dir /opt/tessera/libsodium Répertoire d'installation de Libsodium.
default_log_level INFO Définir le niveau de log pour Tessera.
jdbc_url --- URL de connexion JDBC.
jdbc_username "sa" Nom d'utilisateur JDBC.
jdbc_password "" Mot de passe JDBC.
disable_peer_discovery faux S'il est défini sur vrai, alors la communication est limitée aux pairs dans le fichier de configuration.
use_whitelist faux S'il est défini sur vrai, alors la connexion à Tessera sera restreinte aux pairs spécifiés.
run_with_besu faux Définir cela sur vrai si Tessera sera exécuté avec Besu au lieu de GoQuorum.
bootstrap_mode faux S'il est défini sur vrai, alors le nœud fonctionne comme bootstrap pour d'autres nœuds.
server_configs [] Se référer à docs.
peers [] Liste des pairs à connecter.
public_key "" Clé publique pour Tessera.
config_details "" Détails de configuration pour les paires de clés en ligne protégées ou non protégées.
private_key_path "" Chemin vers la clé privée.
public_key_path "" Chemin vers la clé publique.
private_key "" Clé privée pour Tessera.
aws_secret_manager faux Définir ceci sur vrai si vous utilisez AWS Secrets Manager.
aws_region us-east-1 Définir cela sur la région AWS souhaitée pour Secrets Manager.
aws_SecretsManager_PublicKeyId "" AWS Secrets Manager Public Key ID.
aws_SecretsManager_PrivateKeyId "" AWS Secrets Manager Private Key ID.
azure_key_vault faux Définir ceci sur vrai si vous utilisez Azure Key Vault.
azure_Vault_PrivateKeyId "" Azure Private Key ID.
azure_Vault_PublicKeyId "" Azure Public Key ID.
azure_Vault_PublicKeyVersion "" Azure Public Key Version.
azure_Vault_PrivateKeyVersion "" Azure Private Key Version.
hashicorp_vault faux Définir sur vrai si vous utilisez Hashicorp Vault.
vault_url "https://localhost:8200" Définir l'URL du vault.
tls_KeyStorePath "" Chemin vers le TLS Key Store.
tls_TrustStorePath "" Chemin vers le Trust Store.
app_role_Path not-default
hashicorp_vaultSecretEngineName "" Nom du moteur de secret du vault.
hashicorp_vaultSecretName "" Nom du secret.
hashicorp_vaultSecretVersion "" Version du secret.
hashicorp_vaultPrivateKeyId "" ID de la clé privée.
hashicorp_vaultPublicKeyId "" ID de la clé publique.
enable_remoteKeyValidation faux Vérifie qu'un nœud distant possède les clés publiques annoncées.
enable_privacyEnhancements faux Activer la protection des parties (PP) et la validation de l'état privé (PSV).
enable_multiplePrivateStates faux Activer la fonctionnalité des états privés multiples.
always_send_to [] Liste séparée par des virgules de clés publiques à inclure comme destinataires pour chaque transaction envoyée à travers le nœud. Cela permet de configurer un nœud qui reçoit une copie de chaque transaction, même s'il n'est pas spécifié comme partie de la transaction.
symmetric_cipher "AES/GCM/NoPadding"
elliptic_curve "secp256r1"
nonce_length "24"
shared_key_length "32"

Exemple d'Utilisation

  1. Installer le rôle depuis Ansible Galaxy

ansible-galaxy install consensys.tessera

Créer le requirements.yml avec les variables requises

- hosts: localhost
  connection: local
  force_handlers: True

  roles:
    - role: consensys.tessera
      vars:
        besu_version: 21.10.2
        tessera_version: 21.10.0
        config_details: '["data":{"bytes":"Wl+...........tA="},"type":"unlocked"}]'
        public_key: BUL.....3Bo=

Nota: Les informations ci-dessus sur config_details et public_key sont à des fins de démonstration uniquement dans un environnement de développement. Elles ne doivent PAS être utilisées en production. Veuillez consulter la documentation de Tessera sur la façon de générer de nouvelles clés et d'utiliser les services de Vault.

Nota: La commande ci-dessus ne doit être utilisée que pour les environnements de développement. En général, vous devrez spécifier vos propres peers et server_config pour répondre à vos exigences.

  1. Installer le rôle depuis Github

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

Créer requirements.yml pour le rôle installé depuis Github

- hosts: localhost
  connection: local
  force_handlers: True

  roles:
    - role: ansible-role-tessera
      vars:
        besu_version: 21.10.2
        tessera_version: 21.10.0
        config_details: '["data":{"bytes":"Wl+...........tA="},"type":"unlocked"}]'
        public_key: BUL.....3Bo=
  1. Exécutez le résultat avec la commande suivante : ansible-playbook -v requirements.yml -vvv

Licence

Apache

Informations sur l'Auteur

ConsenSys, 2021

À propos du projet

Tessera is a private transaction manager for an Ethereum client like GoQuourm or Besu

Installer
ansible-galaxy install consensys.tessera
Licence
apache-2.0
Téléchargements
90
Propriétaire
Consensys is the software engineering leader of the blockchain space. Our full-stack Ethereum products help developers build next-generation networks.