consensys.teku
Rôle Ansible : Teku
Description
Rôle Ansible qui installera, configurera et exécutera Teku : un client Ethereum 2 en Java pour entreprises.
Table des matières
- Plateformes supportées
- Dépendances
- Variables du rôle
- Exemple de playbook
- Licence
- Informations sur l'auteur
Plateformes supportées
* MacOS
* Debian
* Ubuntu
* Redhat (CentOS/Fedora)
* Amazon
Dépendances
- JDK 11 ou supérieur
Variables du rôle :
Toutes les variables qui peuvent être écrasées sont stockées dans le fichier defaults/main.yml. En général, ces variables sont des options de configuration. Veuillez vous référer à la documentation de Teku docs pour plus d'informations.
Nom | Valeur par défaut | Description |
---|---|---|
teku_version |
non défini | REQUIS Version de Teku à installer et à exécuter. Toutes les versions disponibles sont listées sur la page des releases de Teku. |
teku_user |
teku | Utilisateur Teku |
teku_group |
teku | Groupe Teku |
teku_download_url |
https://artifacts.consensys.net/public/teku/raw/names/teku.tar.gz/versions/{{ teku_version }}/teku-{{ teku_version }}.tar.gz | Fichier tar.gz de téléchargement utilisé. Vous pouvez l'utiliser si vous devez récupérer Teku d'un emplacement personnalisé tel qu'un dépôt interne. |
teku_install_dir |
/opt/teku | Chemin d'installation |
teku_config_dir |
/etc/teku | Chemin de la configuration par défaut |
teku_data_dir |
/opt/teku/data | Chemin du répertoire de données |
teku_log_dir |
/var/log/teku | Chemin du répertoire des journaux |
teku_log_filename |
{{ teku_log_dir }}/teku.log |
Chemin contenant l'emplacement (relatif ou absolu) et le nom du fichier journal |
teku_profile_file |
/etc/profile.d/teku-path.sh | Chemin pour permettre le chargement de Teku dans le chemin système |
teku_managed_service |
true | Active un service systemd (ou launchd sur Darwin) |
teku_launchd_dir |
/Library/LaunchAgents | Le répertoire launchd par défaut |
teku_systemd_dir |
/etc/systemd/system/ | Le répertoire systemd par défaut |
teku_systemd_state |
restarted | L'option par défaut pour l'état du service systemd |
teku_output_transition_dir |
/tmp/teku | |
teku_node_private_key_file |
"" | |
teku_network |
minimal | Configuration réseau prédéfinie |
teku_host_ip |
"" | |
teku_p2p_enabled |
True | Active ou désactive toute communication P2P |
teku_p2p_interface |
0.0.0.0 | Spécifie l'interface réseau sur laquelle le nœud écoute pour la communication P2P |
teku_p2p_port |
9000 | Spécifie les ports d'écoute P2P (UDP et TCP) |
teku_p2p_advertised_port |
9000 | Le port P2P annoncé |
teku_p2p_discovery_enabled |
True | Active ou désactive la découverte des pairs 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 |
"" | Chemin vers le fichier au format YAML pour charger les clés de validateurs non chiffrées |
teku_deposit_mode |
normal | |
teku_deposit_input_file |
"" | |
teku_deposit_number_validators |
64 | |
teku_deposit_contract_address |
0x | Adresse Eth1 du contrat de dépôt |
teku_deposit_eth1_endpoint |
"" | URL JSON-RPC du nœud Eth1 |
teku_metrics_enabled |
True | Définir sur true pour activer l'exportateur de métriques |
teku_metrics_interface |
0.0.0.0 | |
teku_metrics_port |
8008 | Port de métrique lorsqu'il est déployé en monolithe |
teku_beacon_metrics_port |
8008 | Port de métrique du service Beacon lorsqu'il est déployé en autonome |
teku_validator_metrics_port |
8009 | Port de métrique du service Validator lorsqu'il est déployé en autonome |
teku_metrics_categories |
[] (Toutes les catégories activées) | Catégories pour lesquelles suivre les métriques |
teku_data_path |
/data | Utiliser le même dossier pour le validateurs et le service Beacon en mode autonome |
teku_data_storage_mode |
prune | Définir la stratégie pour gérer les données historiques de la chaîne |
teku_beacon_rest_api_port |
5051 | |
teku_beacon_rest_api_docs_enabled |
False | |
teku_beacon_rest_api_enabled |
True | Activer le service API REST |
teku_beacon_rest_api_interface |
127.0.0.1 | Interface pour le service API REST |
teku_beacon_rest_api_host_allowlist |
["*"] | Liste d'autorisation des hôtes pour le service API REST |
teku_cmdline_args |
[] | |
teku_cmdline_args_beacon |
teku_cmdline_args | Seulement applicable en mode autonome. Permet de définir des valeurs spécifiques à Beacon |
teku_cmdline_args_validator |
teku_cmdline_args | Seulement applicable en mode autonome. Permet de définir des valeurs spécifiques au validateur |
teku_env_opts |
[] | |
teku_env_opts_beacon |
teku_env_opts |
Seulement applicable en mode autonome. Permet de définir des valeurs spécifiques à Beacon |
teku_env_opts_validator |
teku_env_opts |
Seulement applicable en mode autonome. Permet de définir des valeurs spécifiques au validateur |
teku_standalone_validator |
False | Exécuter le validateur en mode autonome |
teku_beacon_enabled |
True | Indique s'il faut déployer le nœud Beacon |
Liste des variables qui ne sont pas définies avec des valeurs par défaut dans le rôle Ansible. Cependant, si ces variables sont définies via la ligne de commande, elles seront configurées dans le fichier de configuration de Teku.
Nom | Paramètre du fichier de configuration | Description |
---|---|---|
teku_data_beacon_path |
data-beacon-path |
Chemin vers les données du Beacon |
teku_data_storage_archive_frequency |
data-storage-archive-frequency |
Définit la fréquence, en slots, à laquelle stocker les états finalisés sur le disque |
teku_data_validator_path |
data-validator-path |
Chemin vers les données du client valide |
teku_ee_endpoint |
ee-endpoint |
URL du point de terminaison du moteur d'exécution |
teku_ee_jwt_secret_file |
ee-jwt-secret-file |
Fichier pour lire le secret d'authentification JWT du moteur d'exécution |
teku_log_level |
logging |
Niveaux de verbosité des journaux : OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL |
teku_log_validator_duties |
log-include-validator-duties-enabled |
Indique si les événements sont journalisés lorsque les validateurs exécutent des tâches |
teku_p2p_discovery_bootnodes |
p2p-discovery-bootnodes |
Liste des ENRs des nœuds de démarrage ex : ['enr:-enr-string','enr:-enr-string'] |
teku_p2p_peer_lower_bound |
p2p-peer-lower-bound |
Limite inférieure sur le nombre cible de pairs |
teku_p2p_peer_upper_bound |
p2p-peer-upper-bound |
Limite supérieure sur le nombre cible de pairs |
teku_p2p_static_peers |
p2p-static-peers |
Pairs statiques. ex : ['adresse-paire1','adresse-paire2'] |
teku_p2p_subscribe_all_subnets_enabled |
p2p-subscribe-all-subnets-enabled |
True/False |
teku_validators_external_signer_public_keys |
validators-external-signer-public-keys |
Liste des clés publiques du signataire externe ex : ['clé1','clé2'] |
teku_validators_external_signer_timeout |
validators-external-signer-timeout |
Délai (en millisecondes) pour le service de signature externe |
teku_validators_external_signer_url |
validators-external-signer-url |
URL pour le service de signature externe |
teku_validators_proposer_default_fee_recipient |
validators-proposer-default-fee-recipient |
Destinataire des frais par défaut à utiliser lors de la proposition de blocs après la fusion |
teku_validators_proposer_config |
validators-proposer-config |
URL distante ou chemin de fichier local pour charger la configuration du proposeur |
teku_validators_proposer_config_refresh_enabled |
validators-proposer-config-refresh-enabled |
Indique si la configuration du proposeur doit être rafraîchie périodiquement |
teku_validators_graffiti |
validators-graffiti |
Graffiti à inclure lors de la création de blocs (converti en bytes et complété pour Bytes32) |
teku_validators_keystore_locking_enabled |
validators-keystore-locking-enabled |
Active le verrouillage des fichiers de stockage de validateur (Valeurs valides : True, False) |
teku_validators_performance_tracking_enabled |
validators-performance-tracking-enabled |
Active le suivi et la journalisation des performances du validateur (Valeurs valides : True, False) |
teku_validators_early_attestations_enabled |
validators-early-attestations-enabled |
Active la production d'attestations anticipées (Valeurs valides : True, False) |
teku_ws_checkpoint |
ws-checkpoint |
Un récent point de contrôle dans la période de subjectivité faible. Format |
teku_beacon_node_api_endpoints |
beacon-node-api-endpoints |
Tableau. Les points de terminaison de l'API du nœud Beacon auxquels le client validateur doit se connecter. |
Mode autonome
Il est possible de configurer Teku pour s'exécuter soit en mode monolithique (le Beacon et le validateur s'exécutent dans le même processus) soit en mode autonome (le Beacon et le validateur s'exécutent dans leur propre processus).
Le mode autonome exécute le service Beacon dans son propre processus et le service validateur dans son propre processus. Le nom du service systemd teku
est utilisé pour le service Beacon et teku-validator
est utilisé pour le service validateur lorsqu'il est exécuté en mode autonome. Le rôle Ansible par défaut exécute Teku en mode monolithique et ce comportement peut être contrôlé avec la variable teku_standalone_validator=False/True
.
Exemple de playbook
- Configuration par défaut : Installez le rôle depuis Galaxy
ansible-galaxy install pegasyseng.teku
Créez un fichier requirements.yml avec ce qui suit :
Remplacez x.y.z
ci-dessous par la version que vous souhaitez utiliser depuis la page des releases de Teku.
---
- hosts: localhost
connection: local
force_handlers: True
roles:
- role: pegasyseng.teku
vars:
teku_version: x.y.z
Exécutez avec ansible-playbook :
ansible-playbook -v /path/to/requirements.yml
- Installation via GitHub
ansible-galaxy install git+https://github.com/pegasyseng/ansible-role-teku.git
Créez un fichier requirements.yml avec ce qui suit :
Remplacez x.y.z
ci-dessous par la version que vous souhaitez utiliser depuis la page des releases de Teku.
---
- hosts: localhost
connection: local
force_handlers: True
roles:
- role: ansible-role-teku
vars:
teku_version: x.y.z
Exécutez avec ansible-playbook :
ansible-playbook -v /path/to/requirements.yml
Licence
Apache
Informations sur l'auteur
PegaSysEng, 2020
Teku is an open-source java enterprise ethereum 2 client
ansible-galaxy install consensys.teku