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