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
- Java JDK 11+
- 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 | Sí |
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
- 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.
- 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=
- Ejecutar el resultado con el siguiente comando:
ansible-playbook -v requirements.yml -vvv
Licencia
Apache
Información del autor
ConsenSys, 2021
Tessera is a private transaction manager for an Ethereum client like GoQuourm or Besu
ansible-galaxy install consensys.tessera