teku
Ansible Роль: Teku
Описание
Ansible роль, которая устанавливает, настраивает и запускает Teku: корпоративный Java Ethereum 2 клиент.
Содержание
Поддерживаемые платформы
* MacOS
* Debian
* Ubuntu
* Redhat (CentOS/Fedora)
* Amazon
Зависимости
- JDK 11 или выше
Переменные роли:
Все переменные, которые можно переопределить, хранятся в файле defaults/main.yml. В основном эти переменные — это параметры конфигурации. Дополнительную информацию можно найти в документации Teku документация.
Имя | Значение по умолчанию | Описание |
---|---|---|
teku_version |
unset | ТРЕБУЕТСЯ Версия Teku для установки и запуска. Все доступные версии перечислены на странице наших релизов Teku релизы. |
teku_user |
teku | Пользователь Teku |
teku_group |
teku | Группа Teku |
teku_download_url |
https://artifacts.consensys.net/public/teku/raw/names/teku.tar.gz/versions/{{ teku_version }}/teku-{{ teku_version }}.tar.gz | URL для загрузки tar.gz файла. Вы можете использовать это, если вам нужно получить Teku из пользовательского источника, такого как внутренний репозиторий. |
teku_install_dir |
/opt/teku | Путь для установки |
teku_config_dir |
/etc/teku | Путь для конфигурации по умолчанию |
teku_data_dir |
/opt/teku/data | Путь для каталога данных |
teku_log_dir |
/var/log/teku | Путь для каталога журналов |
teku_log_filename |
{{ teku_log_dir }}/teku.log |
Путь, содержащий местоположение (относительное или абсолютное) и имя файла журнала |
teku_profile_file |
/etc/profile.d/teku-path.sh | Путь для загрузки Teku в системный PATH |
teku_managed_service |
true | Включает службу systemd (или launchd, если на Darwin) |
teku_launchd_dir |
/Library/LaunchAgents | Каталог по умолчанию для launchd |
teku_systemd_dir |
/etc/systemd/system/ | Каталог по умолчанию для systemd |
teku_systemd_state |
restarted | Параметр состояния службы systemd по умолчанию |
teku_output_transition_dir |
/tmp/teku | |
teku_node_private_key_file |
"" | |
teku_network |
minimal | Предопределенная конфигурация сети |
teku_host_ip |
"" | |
teku_p2p_enabled |
True | Включает или отключает всю P2P связь |
teku_p2p_interface |
0.0.0.0 | Указывает сетевой интерфейс, на котором узел слушает P2P связь |
teku_p2p_port |
9000 | Указывает P2P порты прослушивания (UDP и TCP) |
teku_p2p_advertised_port |
9000 | Рекламируемый P2P порт |
teku_p2p_discovery_enabled |
True | Включает или отключает автоматический поиск P2P узлов |
teku_interop_genesis_time |
0 | |
teku_interop_start_state |
"" | |
teku_interop_owned_validator_start_index |
0 | |
teku_interop_owned_validator_count |
64 | |
teku_interop_number_of_validators |
64 | |
teku_interop_enabled |
False | |
teku_validators_key_file |
"" | Путь к файлу в формате YAML для загрузки незашифрованных ключей валидаторов |
teku_deposit_mode |
normal | |
teku_deposit_input_file |
"" | |
teku_deposit_number_validators |
64 | |
teku_deposit_contract_address |
0x | Eth1 адрес контракта депозита |
teku_deposit_eth1_endpoint |
"" | JSON-RPC URL узла Eth1 |
teku_metrics_enabled |
True | Установите в true, чтобы включить экспортёр метрик |
teku_metrics_interface |
0.0.0.0 | |
teku_metrics_port |
8008 | Порт метрик при развертывании в монохите |
teku_beacon_metrics_port |
8008 | Порт метрик службы маяка при развертывании как самостоятельной |
teku_validator_metrics_port |
8009 | Порт метрик службы валидатора при развертывании как самостоятельной |
teku_metrics_categories |
[] (Все категории включены) | Категории, для которых отслеживаются метрики |
teku_data_path |
/data | Используйте одну и ту же папку для валидатора и службы маяка в автономном режиме |
teku_data_storage_mode |
prune | Установите стратегию управления историческими данными цепочки |
teku_beacon_rest_api_port |
5051 | |
teku_beacon_rest_api_docs_enabled |
False | |
teku_beacon_rest_api_enabled |
True | Включить службу REST API |
teku_beacon_rest_api_interface |
127.0.0.1 | Интерфейс для службы REST API |
teku_beacon_rest_api_host_allowlist |
["*"] | Список разрешённых хостов для REST API |
teku_cmdline_args |
[] | |
teku_cmdline_args_beacon |
teku_cmdline_args | Применимо только в автономном режиме. Позволяет устанавливать специальные значения маяка |
teku_cmdline_args_validator |
teku_cmdline_args | Применимо только в автономном режиме. Позволяет устанавливать специальные значения валидатора |
teku_env_opts |
[] | |
teku_env_opts_beacon |
teku_env_opts |
Применимо только в автономном режиме. Позволяет устанавливать специальные значения маяка |
teku_env_opts_validator |
teku_env_opts |
Применимо только в автономном режиме. Позволяет устанавливать специальные значения валидатора |
teku_standalone_validator |
False | Запустить валидатор в автономном режиме |
teku_beacon_enabled |
True | Нужно ли развернуть узел маяка |
Список переменных, которые не определены со значениями по умолчанию в роли ansible. Однако, если эти переменные установлены через командную строку, они будут настроены в конфигурационном файле Teku.
Имя | Параметр в конфигурационном файле | Описание |
---|---|---|
teku_data_beacon_path |
data-beacon-path |
Путь к данным маяка |
teku_data_storage_archive_frequency |
data-storage-archive-frequency |
Устанавливает частоту, с которой будут сохраняться окончательные состояния на диск |
teku_data_validator_path |
data-validator-path |
Путь к данным клиента валидатора |
teku_ee_endpoint |
ee-endpoint |
URL конечной точки исполнительного движка |
teku_ee_jwt_secret_file |
ee-jwt-secret-file |
Файл для чтения секрета аутентификации JWT исполнительного движка |
teku_log_level |
logging |
Уровни детализации журналирования: OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL |
teku_log_validator_duties |
log-include-validator-duties-enabled |
Включает ли события, которые регистрируются, когда валидаторы выполняют свои обязанности |
teku_p2p_discovery_bootnodes |
p2p-discovery-bootnodes |
Список ENR узлов для загрузки: ex: ['enr:-enr-string','enr:-enr-string'] |
teku_p2p_peer_lower_bound |
p2p-peer-lower-bound |
Нижняя граница для целевого количества пирингов |
teku_p2p_peer_upper_bound |
p2p-peer-upper-bound |
Верхняя граница для целевого количества пирингов |
teku_p2p_static_peers |
p2p-static-peers |
Статические пирингы: ex: ['peer1-address','peer2-address'] |
teku_p2p_subscribe_all_subnets_enabled |
p2p-subscribe-all-subnets-enabled |
True/False |
teku_validators_external_signer_public_keys |
validators-external-signer-public-keys |
Список публичных ключей внешнего подписывающего: ex: ['key1','key2'] |
teku_validators_external_signer_timeout |
validators-external-signer-timeout |
Тайм-аут (в миллисекундах) для внешнего сервиса подписания |
teku_validators_external_signer_url |
validators-external-signer-url |
URL для внешнего сервиса подписания |
teku_validators_proposer_default_fee_recipient |
validators-proposer-default-fee-recipient |
Получатель комиссии по умолчанию, используемый при предложении блоков после слияния |
teku_validators_proposer_config |
validators-proposer-config |
Удаленный URL или локальный путь для загрузки конфигурации предложителя |
teku_validators_proposer_config_refresh_enabled |
validators-proposer-config-refresh-enabled |
Необходимо ли периодически обновлять конфигурацию предложителя |
teku_validators_graffiti |
validators-graffiti |
Граффити, которое будет включено во время создания блока (конвертируется в байты и дополняется до Bytes32). |
teku_validators_keystore_locking_enabled |
validators-keystore-locking-enabled |
Включить блокировку файлов хранилища валидаторов (допустимые значения True, False) |
teku_validators_performance_tracking_enabled |
validators-performance-tracking-enabled |
Включить отслеживание производительности валидатора (допустимые значения True, False) |
teku_validators_early_attestations_enabled |
validators-early-attestations-enabled |
Включить раннее производство аттестации (допустимые значения True, False) |
teku_ws_checkpoint |
ws-checkpoint |
Последняя контрольная точка в пределах слабой субъективности. Формат |
teku_beacon_node_api_endpoints |
beacon-node-api-endpoints |
Массив. Конечные точки API узла маяка, к которым должен подключиться клиент валидатора. |
Режим автономной работы
Можно настроить Teku для работы в режиме монолита (оба, маяк и валидатор, работают в одном процессе) или в автономном режиме (маяк и валидатор работают в своих собственных процессах).
В автономном режиме служба маяка работает в своем собственном процессе, а служба валидатора — в своем собственном процессе. Имя службы systemd teku
используется для службы маяка, а teku-validator
- для службы валидатора, когда работает в автономном режиме.
Роль ansible по умолчанию запускает Teku в режиме монолита, и поведение можно контролировать с помощью переменной teku_standalone_validator=False/True
.
Пример плейбука
- Настройка по умолчанию: Установить роль из galaxy
ansible-galaxy install pegasyseng.teku
Создайте файл requirements.yml со следующим содержимым:
Замените x.y.z
ниже на версию, которую вы хотите использовать из страницы релизов Teku релизы
---
- hosts: localhost
connection: local
force_handlers: True
roles:
- role: pegasyseng.teku
vars:
teku_version: x.y.z
Запустите с помощью ansible-playbook:
ansible-playbook -v /path/to/requirements.yml
- Установка через GitHub
ansible-galaxy install git+https://github.com/pegasyseng/ansible-role-teku.git
Создайте файл requirements.yml со следующим содержимым:
Замените x.y.z
ниже на версию, которую вы хотите использовать из страницы релизов Teku релизы
---
- hosts: localhost
connection: local
force_handlers: True
roles:
- role: ansible-role-teku
vars:
teku_version: x.y.z
Запустите с помощью ansible-playbook:
ansible-playbook -v /path/to/requirements.yml
Лицензия
Apache
Информация об авторе
PegaSysEng, 2020
Teku is an open-source java enterprise ethereum 2 client
ansible-galaxy install ConsenSys/ansible-role-teku