consensys.tessera
Rola Ansible: Tessera
Opis
To repozytorium zawiera playbook Ansible do wdrożenia Tessera na serwerze fizycznym.
Spis Treści
Wymagania Wstępne
- Java JDK 11+
- Narzędzia do budowania libsodium
Zmienne Roli
Zmienne są zdefiniowane w defaults/main.yml
i można je bezpośrednio zmieniać edytując ten plik, przekazując parametry z linii poleceń lub zmienne w playbooku. Większość zmiennych to opcje dotyczące pliku konfiguracyjnego dla Tessera, który można znaleźć w jego dokumentacji.
Zalecane Zmienne Roli
Poniższa tabela przedstawia zalecane zmienne roli, które powinny być używane. Zobacz drugą tabelę, jeśli chcesz zobaczyć pełną listę zmiennych, które można modyfikować.
Nazwa | Domyślna | Wymagana? |
---|---|---|
tessera_version | nieustawiona | Tak |
run_with_besu | fałsz | Tak, jeśli działa z Besu. Pozostaw nieustawione lub fałsz, jeśli używasz z GoQuorum. |
server_configs | nieustawiona | Tak. Jeśli pozostawisz nieustawione, użyta zostanie domyślna konfiguracja odpowiednia dla środowiska deweloperskiego. Sprawdź templates/config.json.j2 |
peers | nieustawiona | Tak. Jeśli pozostawisz nieustawione, domyślnie będzie to sam. Sprawdź templates/config.json.j2 |
public_key | nieustawiona | Klucz publiczny. |
config_details | nieustawiona | Szczegóły konfiguracji dla kluczy inline chronionych lub niechronionych. |
jdbc_url | Ustawione na tessera_config_dir/db | Tak. Domyślnie zostanie ustawione na tessera_config_dir/db jako lokalny plik. |
jdbc_username | "sa" | Tak. Upewnij się, że zmienisz. |
jdbc_password | "" | Tak. Upewnij się, że zmienisz. |
default_log_level | INFO | Nie. Można ustawić na 'DEBUG', jeśli to konieczne. |
Pełna Lista Zmiennych Roli
Nazwa | Domyślna | Opis |
---|---|---|
tessera_version | nieustawiona | Wersja Tessera do zainstalowania. Musi być ustawiona, aby rola działała. |
tessera_user | tessera | Użytkownik, który będzie tworzony w systemie dla działania Tessera. |
tessera_group | tessera | Grupa, do której będzie należał użytkownik. |
tessera_download_url | Ustalone | URL do pliku tar Tessera. |
enclave_download_url | Ustalone | URL do pliku tar Enclave. |
azure_key_vault_download_url | Ustalone | URL do pliku tar Azure Key Vault. |
aws_key_vault_download_url | Ustalone | URL do pliku tar AWS Key Vault. |
hashicorp_key_vault_download_url | Ustalone | URL do pliku tar Hashicorp Key Vault. |
libsodium_download_url | Ustalone | URL do pliku tar.gz Libsodium. |
tessera_base_dir | /opt/tessera | Katalog podstawowy dla binariów Tessera i jego zależności. |
tessera_install_dir | /opt/tessera/tessera-{{ tessera_version }} | Katalog instalacji dla Tessera. |
tessera_config_dir | /etc/tessera | Katalog konfiguracyjny dla Tessera. |
tessera_log_dir | /var/log/tessera | Katalog dzienników dla Tessera. |
tessera_libsodium_dir | /opt/tessera/libsodium | Katalog instalacji Libsodium. |
default_log_level | INFO | Ustaw poziom logowania dla Tessera. |
jdbc_url | --- | URL połączenia JDBC. |
jdbc_username | "sa" | Nazwa użytkownika JDBC. |
jdbc_password | "" | Hasło JDBC. |
disable_peer_discovery | fałsz | Jeśli ustawione na prawda, komunikacja jest ograniczona do peerów w pliku konfiguracyjnym. |
use_whitelist | fałsz | Jeśli ustawione na prawda, połączenie z Tessera będzie ograniczone do określonych peerów. |
run_with_besu | fałsz | Ustaw na prawda, jeśli Tessera będzie uruchamiana z Besu zamiast GoQuorum. |
bootstrap_mode | fałsz | Jeśli ustawione na prawda, węzeł działa jako bootstrap dla innych węzłów. |
server_configs | [] | Odwołaj się do dokumentacji. |
peers | [] | Lista peerów do połączenia. |
public_key | "" | Klucz publiczny dla Tessera. |
config_details | "" | Szczegóły konfiguracji dla chronionych lub niechronionych par kluczy inline. |
private_key_path | "" | Ścieżka do klucza prywatnego. |
public_key_path | "" | Ścieżka do klucza publicznego. |
private_key | "" | Klucz prywatny dla Tessera. |
aws_secret_manager | fałsz | Ustaw na prawda, jeśli używasz AWS Secrets Manager. |
aws_region | us-east-1 | Ustaw na żądany region AWS dla Secrets Manager. |
aws_SecretsManager_PublicKeyId | "" | Public Key ID dla AWS Secrets Manager. |
aws_SecretsManager_PrivateKeyId | "" | Private Key ID dla AWS Secrets Manager. |
azure_key_vault | fałsz | Ustaw na prawda, jeśli używasz Azure Key Vault. |
azure_Vault_PrivateKeyId | "" | Private Key ID dla Azure. |
azure_Vault_PublicKeyId | "" | Public Key ID dla Azure. |
azure_Vault_PublicKeyVersion | "" | Wersja klucza publicznego Azure. |
azure_Vault_PrivateKeyVersion | "" | Wersja klucza prywatnego Azure. |
hashicorp_vault | fałsz | Ustaw na prawda, jeśli używasz Hashicorp Vault. |
vault_url | "https://localhost:8200" | Ustaw URL waluty. |
tls_KeyStorePath | "" | Ścieżka do Key Store TLS. |
tls_TrustStorePath | "" | Ścieżka do Trust Store. |
app_role_Path | not-default | |
hashicorp_vaultSecretEngineName | "" | Nazwa silnika sekretów Vault. |
hashicorp_vaultSecretName | "" | Nazwa sekretnych. |
hashicorp_vaultSecretVersion | "" | Wersja sekretu. |
hashicorp_vaultPrivateKeyId | "" | Private Key ID. |
hashicorp_vaultPublicKeyId | "" | Public Key ID. |
enable_remoteKeyValidation | fałsz | Sprawdza, czy zdalny węzeł posiada klucze publiczne, które są reklamowane. |
enable_privacyEnhancements | fałsz | Włącz ochronę partyjną (PP) oraz walidację stanu prywatnego (PSV). |
enable_multiplePrivateStates | fałsz | Włącz funkcję wielu prywatnych stanów. |
always_send_to | [] | Lista kluczy publicznych, które mają być dodawane jako odbiorcy dla każdej transakcji przesyłanej przez węzeł. Umożliwia to skonfigurowanie węzła, który otrzymuje kopię każdej transakcji, nawet jeśli nie jest wskazany jako strona transakcji. |
symmetric_cipher | "AES/GCM/NoPadding" | |
elliptic_curve | "secp256r1" | |
nonce_length | "24" | |
shared_key_length | "32" |
Przykładowe Użycie
- Zainstaluj rolę z Ansible Galaxy
ansible-galaxy install consensys.tessera
Utwórz requirements.yml
z wymaganymi zmiennymi
- 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=
Uwaga: Powyższe informacje o config_details
i public_key
są tylko do celów demonstracyjnych w środowisku deweloperskim. NIE powinny być używane w produkcji. Proszę zobaczyć dokumentację Tessera dotyczące generowania nowych kluczy i korzystania z usług Vault.
Uwaga: Powyższe polecenie powinno być używane tylko w środowiskach deweloperskich. Zazwyczaj będziesz musiał określić własne peers
i server_config
, aby spełnić swoje wymagania.
- Zainstaluj rolę z Github
ansible-galaxy install git+https://github.com/consensys/ansible-role-tessera.git
Utwórz requirements.yml
dla zainstalowanej roli z 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=
- Uruchom wynik poleceniem:
ansible-playbook -v requirements.yml -vvv
Licencja
Apache
Informacje o Autorze
ConsenSys, 2021
Tessera is a private transaction manager for an Ethereum client like GoQuourm or Besu
ansible-galaxy install consensys.tessera