tessera

Ansible Роль: Tessera

Описание

Этот репозиторий содержит Ansible плейбук для развертывания Tessera на физическом сервере.

Содержание

Предварительные требования

  1. Java JDK 11+
  2. Инструменты сборки для сборки libsodium

Переменные роли

Переменные определены в defaults/main.yml и могут быть переопределены, редактируя файл, передавая параметры командной строки или переменные в плейбуке. Большинство переменных относятся к конфигурационному файлу для Tessera, который можно найти в документации.

Рекомендуемые обязательные переменные роли

В таблице ниже приведены рекомендуемые переменные роли, которые должны использоваться. Пожалуйста, смотрите вторую таблицу, если вы хотите увидеть полный список переменных, которые могут быть изменены.

Имя По умолчанию Обязательно?
tessera_version не установлен Да
run_with_besu ложь Да, если работает с Besu. Оставьте не установленным или ложным, если используете GoQuorum.
server_configs не установлен Да. Однако, если оставлено не установленным, будет использована стандартная конфигурация, подходящая для разработки. Проверьте templates/config.json.j2
peers не установлен Да. Однако, если оставлено не установленным, будет использовано значение по умолчанию. Проверьте templates/config.json.j2
public_key не установлен Открытый ключ.
config_details не установлен Детали конфигурации для защищенных или незащищенных пар ключей.
jdbc_url Установлено на tessera_config_dir/db Да. По умолчанию установлено на tessera_config_dir/db как локальный файл.
jdbc_username "sa" Да. Обязательно измените.
jdbc_password "" Да. Обязательно измените.
default_log_level INFO Нет. Может быть установлен на 'DEBUG', если необходимо.

Полный список переменных роли

Имя По умолчанию Описание
tessera_version не установлен Версия Tessera для установки. Должна быть установлена для выполнения роли.
tessera_user tessera Пользователь, который будет создан в системе для работы Tessera.
tessera_group tessera Группа, к которой будет принадлежать пользователь.
tessera_download_url Предопределенный URL для архива Tessera.
enclave_download_url Предопределенный URL для архива Enclave.
azure_key_vault_download_url Предопределенный URL для архива Azure Key Vault.
aws_key_vault_download_url Предопределенный URL для архива AWS Key Vault.
hashicorp_key_vault_download_url Предопределенный URL для архива Hashicorp Key Vault.
libsodium_download_url Предопределенный URL для архива Libsodium tar.gz.
tessera_base_dir /opt/tessera Базовая директория для бинарного файла Tessera и зависимостей.
tessera_install_dir /opt/tessera/tessera-{{ tessera_version }} Директория установки для Tessera.
tessera_config_dir /etc/tessera Директория конфигурации для Tessera.
tessera_log_dir /var/log/tessera Директория для логов Tessera.
tessera_libsodium_dir /opt/tessera/libsodium Директория установки libsodium.
default_log_level INFO Установить уровень логирования для Tessera.
jdbc_url --- URL соединения JDBC.
jdbc_username "sa" Имя пользователя JDBC.
jdbc_password "" Пароль JDBC.
disable_peer_discovery ложь Если установлено в true, то связь ограничивается пирами в конфигурационном файле.
use_whitelist ложь Если установлено в true, то соединение с Tessera будет ограничено указанными пирами.
run_with_besu ложь Установите значение true, если Tessera будет работать с Besu вместо GoQuorum.
bootstrap_mode ложь Если установлено в true, то узел функционирует как бутстрэп для других узлов.
server_configs [] Смотрите документацию.
peers [] Список пиров для соединения.
public_key "" Открытый ключ для Tessera.
config_details "" Детали конфигурации для защищенных или незащищенных пар ключей.
private_key_path "" Путь к закрытому ключу.
public_key_path "" Путь к открытому ключу.
private_key "" Закрытый ключ для Tessera.
aws_secret_manager ложь Установите значение true, если используете AWS Secrets Manager.
aws_region us-east-1 Установите желаемый регион AWS для Secrets Manager.
aws_SecretsManager_PublicKeyId "" Идентификатор открытого ключа AWS Secrets Manager.
aws_SecretsManager_PrivateKeyId "" Идентификатор закрытого ключа AWS Secrets Manager.
azure_key_vault ложь Установите значение true, если используете Azure Key Vault.
azure_Vault_PrivateKeyId "" Идентификатор закрытого ключа Azure.
azure_Vault_PublicKeyId "" Идентификатор открытого ключа Azure.
azure_Vault_PublicKeyVersion "" Версия открытого ключа Azure.
azure_Vault_PrivateKeyVersion "" Версия закрытого ключа Azure.
hashicorp_vault ложь Установите значение true, если используете Hashicorp Vault.
vault_url "https://localhost:8200" Установите URL-адрес хранилища.
tls_KeyStorePath "" Путь к TLS хранилищу ключей.
tls_TrustStorePath "" Путь к хранилищу доверенных сертификатов.
app_role_Path not-default
hashicorp_vaultSecretEngineName "" Название двигателя секретов Vault.
hashicorp_vaultSecretName "" Название секрета.
hashicorp_vaultSecretVersion "" Версия секрета.
hashicorp_vaultPrivateKeyId "" Идентификатор закрытого ключа.
hashicorp_vaultPublicKeyId "" Идентификатор открытого ключа.
enable_remoteKeyValidation ложь Проверяет, что удалённый узел владеет открытыми ключами, которые публикуются.
enable_privacyEnhancements ложь Включает защиту сторон (PP) и проверку частного состояния (PSV).
enable_multiplePrivateStates ложь Включает функцию нескольких частных состояний.
always_send_to [] Список открытых ключей, разделённых запятой, которые следует включать в качестве получателей для каждой транзакции, отправляемой через узел.
symmetric_cipher "AES/GCM/NoPadding"
elliptic_curve "secp256r1"
nonce_length "24"
shared_key_length "32"

Пример использования

  1. Установить роль из Ansible Galaxy

ansible-galaxy install consensys.tessera

Создайте requirements.yml с необходимыми переменными

- 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=

Примечание: Указанная выше информация о config_details и public_key предназначена только для демонстрационных целей в среде разработки. Их не следует использовать в производственной среде. Пожалуйста, смотрите документацию Tessera о том, как генерировать новые ключи и использовать услуги Vault.

Примечание: Указанную команду следует использовать только в среде разработки. Обычно вам нужно указать собственные peers и server_config, чтобы соответствовать вашим требованиям.

  1. Установить роль из GitHub

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

Создайте requirements.yml для установленной роли из 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. Запустите результат с помощью: ansible-playbook -v requirements.yml -vvv

Лицензия

Apache

Информация об авторе

ConsenSys, 2021

О проекте

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

Установить
ansible-galaxy install ConsenSys/ansible-role-tessera
Лицензия
apache-2.0
Загрузки
81
Владелец
Consensys is the software engineering leader of the blockchain space. Our full-stack Ethereum products help developers build next-generation networks.