consensys.tessera

Rol de Ansible: Tessera

Descripción

Este repositorio contiene un playbook de Ansible para desplegar Tessera en un servidor físico.

Tabla de Contenidos

Requisitos previos

  1. Java JDK 11+
  2. Herramientas de construcción para construir libsodium

Variables del rol

Las variables se definen en defaults/main.yml y se pueden sobrescribir directamente editando el archivo, pasando parámetros en la línea de comandos o variables en un playbook. La mayoría de las variables son opciones relacionadas con el archivo de configuración para Tessera, que se puede encontrar en su documentación.

Variables del rol recomendadas y necesarias

La siguiente tabla enumera las variables del rol recomendadas que se deben utilizar. Consulte la segunda tabla si desea ver la lista completa de variables que pueden ser modificadas.

Nombre Predeterminado ¿Necesario?
tessera_version no establecido
run_with_besu falso Sí, si se ejecuta con Besu. Déjelo no establecido o en falso si se utiliza con GoQuorum.
server_configs no establecido Sí. Sin embargo, si se deja sin establecer, se utilizará la configuración predeterminada adecuada para entornos de desarrollo. Verifique templates/config.json.j2
peers no establecido Sí. Sin embargo, si se deja sin establecer, el valor predeterminado será sí mismo. Verifique templates/config.json.j2
public_key no establecido Clave pública.
config_details no establecido Detalles de configuración para los pares de claves en línea protegidas o no protegidas.
jdbc_url Establecido en tessera_config_dir/db Sí. El valor predeterminado será establecido en tessera_config_dir/db como un archivo local.
jdbc_username "sa" Sí. Asegúrese de cambiarlo.
jdbc_password "" Sí. Asegúrese de cambiarlo.
default_log_level INFO No. Se puede establecer en 'DEBUG' si es necesario.

Lista completa de variables del rol

Nombre Predeterminado Descripción
tessera_version no establecido Versión de Tessera a instalar. Debe establecerse para que el rol se ejecute.
tessera_user tessera El usuario que se creará en el sistema para que Tessera se ejecute.
tessera_group tessera Grupo al que pertenecerá el usuario.
tessera_download_url Predefinido URL para el archivo tar de Tessera.
enclave_download_url Predefinido URL para el archivo tar de Enclave.
azure_key_vault_download_url Predefinido URL para el archivo tar de Azure Key Vault.
aws_key_vault_download_url Predefinido URL para el archivo tar de AWS Key Vault.
hashicorp_key_vault_download_url Predefinido URL para el archivo tar de Hashicorp Key Vault.
libsodium_download_url Predefinido URL para el archivo tar.gz de Libsodium.
tessera_base_dir /opt/tessera Directorio base para el binario de Tessera y dependencias.
tessera_install_dir /opt/tessera/tessera-{{ tessera_version }} Directorio de instalación para Tessera.
tessera_config_dir /etc/tessera Directorio de configuración para Tessera.
tessera_log_dir /var/log/tessera Directorio de logs para Tessera.
tessera_libsodium_dir /opt/tessera/libsodium Directorio de instalación de Libsodium.
default_log_level INFO Establece el nivel de log para Tessera.
jdbc_url --- URL de conexión JDBC.
jdbc_username "sa" Nombre de usuario JDBC.
jdbc_password "" Contraseña JDBC.
disable_peer_discovery falso Si se establece en verdadero, la comunicación se limita a los pares en el archivo de configuración.
use_whitelist falso Si se establece en verdadero, la conexión a Tessera estará restringida a los pares especificados.
run_with_besu falso Establezca esto en verdadero si Tessera se ejecutará con Besu en lugar de GoQuorum.
bootstrap_mode falso Si se establece en verdadero, el nodo funcionará como un bootstrap para otros nodos.
server_configs [] Consulte las documentación.
peers [] Lista de pares para conectar.
public_key "" Clave pública para Tessera.
config_details "" Detalles de configuración para los pares de claves en línea protegidas o no protegidas.
private_key_path "" Ruta a la clave privada.
public_key_path "" Ruta a la clave pública.
private_key "" Clave privada para Tessera.
aws_secret_manager falso Establezca esto en verdadero si utiliza AWS Secrets Manager.
aws_region us-east-1 Establezca esto en la región deseada de AWS para Secrets Manager.
aws_SecretsManager_PublicKeyId "" ID de clave pública de AWS Secrets Manager.
aws_SecretsManager_PrivateKeyId "" ID de clave privada de AWS Secrets Manager.
azure_key_vault falso Establezca esto en verdadero si utiliza Azure Key Vault.
azure_Vault_PrivateKeyId "" ID de clave privada de Azure.
azure_Vault_PublicKeyId "" ID de clave pública de Azure.
azure_Vault_PublicKeyVersion "" Versión de clave pública de Azure.
azure_Vault_PrivateKeyVersion "" Versión de clave privada de Azure.
hashicorp_vault falso Establezca en verdadero si utiliza Hashicorp Vault.
vault_url "https://localhost:8200" Establezca la URL del vault.
tls_KeyStorePath "" Ruta al almacén de claves TLS.
tls_TrustStorePath "" Ruta al almacén de confianza.
app_role_Path not-default
hashicorp_vaultSecretEngineName "" Nombre del motor de secretos de Vault.
hashicorp_vaultSecretName "" Nombre del secreto.
hashicorp_vaultSecretVersion "" Versión del secreto.
hashicorp_vaultPrivateKeyId "" ID de clave privada.
hashicorp_vaultPublicKeyId "" ID de clave pública.
enable_remoteKeyValidation falso Verifica que un nodo remoto posea las claves públicas que se están anunciando.
enable_privacyEnhancements falso Habilitar la Protección de Parte (PP) y la Validación de Estado Privado (PSV).
enable_multiplePrivateStates falso Habilitar la función de Estados Privados Múltiples.
always_send_to [] Lista de claves públicas separadas por comas para incluir como destinatarios en cada transacción enviada a través del nodo. Esto permite configurar un nodo que recibe una copia de cada transacción, incluso si no se especifica como parte de la transacción.
symmetric_cipher "AES/GCM/NoPadding"
elliptic_curve "secp256r1"
nonce_length "24"
shared_key_length "32"

Uso de ejemplo

  1. Instalar el rol desde Ansible Galaxy

ansible-galaxy install consensys.tessera

Crear el requirements.yml con las variables requeridas

- 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: La información anterior sobre config_details y public_key es solo para fines de demostración en un entorno de desarrollo. NO deben utilizarse en producción. Consulte la documentación de Tessera sobre cómo generar nuevas claves y usar servicios de Vault.

Nota: El comando anterior debe utilizarse solo para entornos de desarrollo. Por lo general, necesitaría especificar sus propios peers y server_config para cumplir con sus requisitos.

  1. Instalar el rol desde Github

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

Crear requirements.yml para el rol instalado desde 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. Ejecutar el resultado con el siguiente comando: ansible-playbook -v requirements.yml -vvv

Licencia

Apache

Información del autor

ConsenSys, 2021

Acerca del proyecto

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

Instalar
ansible-galaxy install consensys.tessera
Licencia
apache-2.0
Descargas
90
Propietario
Consensys is the software engineering leader of the blockchain space. Our full-stack Ethereum products help developers build next-generation networks.