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
- Java JDK 11+
- 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
- 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.
- 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=
- Exécutez le résultat avec la commande suivante :
ansible-playbook -v requirements.yml -vvv
Licence
Apache
Informations sur l'Auteur
ConsenSys, 2021
Tessera is a private transaction manager for an Ethereum client like GoQuourm or Besu
ansible-galaxy install consensys.tessera