cloudalchemy.node_exporter
DÉPRÉCIÉ
Ce rôle a été déprécié au profit de la collection prometheus-community/ansible.
Rôle Ansible : node exporter
Avertissement
En raison des limitations de galaxy.ansible.com, nous avons dû déplacer le rôle vers https://galaxy.ansible.com/cloudalchemy/node_exporter et utiliser _
au lieu de -
dans le nom du rôle. C'est un changement majeur et, malheureusement, cela affecte toutes les versions du rôle node_exporter, car ansible galaxy ne propose aucune forme de redirection. Nous nous excusons pour ce désagrément.
Description
Déployez le node exporter de prometheus en utilisant ansible.
Exigences
- Ansible >= 2.7 (Cela peut fonctionner sur des versions précédentes, mais nous ne pouvons pas le garantir)
- gnu-tar sur l'hôte de déploiement Mac (
brew install gnu-tar
) - Passlib est requis lors de l'utilisation de la fonctionnalité d'authentification de base (
pip install passlib[bcrypt]
)
Variables du rôle
Toutes les variables qui peuvent être remplacées sont stockées dans defaults/main.yml et sont répertoriées dans le tableau ci-dessous.
Nom | Valeur par défaut | Description |
---|---|---|
node_exporter_version |
1.1.2 | Version du paquet node exporter. Accepte également 'latest' comme paramètre. |
node_exporter_binary_local_dir |
"" | Permet l'utilisation de paquets locaux au lieu de ceux distribués sur GitHub. Ce paramètre peut être défini sur un répertoire où le binaire node_exporter est stocké sur l'hôte où ansible est exécuté. Cela remplace le paramètre node_exporter_version |
node_exporter_web_listen_address |
"0.0.0.0:9100" | Adresse sur laquelle le node exporter écoutera. |
node_exporter_web_telemetry_path |
"/metrics" | Chemin sous lequel exposer les métriques. |
node_exporter_enabled_collectors |
["systemd",{textfile: {directory: "{{node_exporter_textfile_dir}}"}}] |
Liste de dictionnaires définissant les collecteurs supplémentaires activés et leur configuration. Il ajoute des collecteurs à ceux activés par défaut. |
node_exporter_disabled_collectors |
[] | Liste des collecteurs désactivés. Par défaut, le node_exporter désactive les collecteurs énumérés ici. |
node_exporter_textfile_dir |
"/var/lib/node_exporter" | Répertoire utilisé par le Textfile Collector. Pour obtenir les autorisations d'écriture des métriques dans ce répertoire, les utilisateurs doivent être dans le groupe système node-exp . Remarque: Plus d'informations dans le guide TROUBLESHOOTING.md. |
node_exporter_tls_server_config |
{} | Configuration pour l'authentification TLS. Les clés et valeurs sont les mêmes que dans la documentation de node_exporter. |
node_exporter_http_server_config |
{} | Configuration pour le support HTTP/2. Les clés et valeurs sont les mêmes que dans la documentation de node_exporter. |
node_exporter_basic_auth_users |
{} | Dictionnaire d'utilisateurs et de mots de passe pour l'authentification de base. Les mots de passe sont automatiquement hachés avec bcrypt. |
Exemple
Playbook
Utilisez-le dans un playbook comme suit :
- hosts: all
roles:
- cloudalchemy.node_exporter
Configuration TLS
Avant d'exécuter le rôle node_exporter, l'utilisateur doit provisionner son propre certificat et sa clé.
- hosts: all
pre_tasks:
- name: Créer le répertoire cert de node_exporter
file:
path: "/etc/node_exporter"
state: directory
owner: root
group: root
- name: Créer le cert et la clé
openssl_certificate:
path: /etc/node_exporter/tls.cert
csr_path: /etc/node_exporter/tls.csr
privatekey_path: /etc/node_exporter/tls.key
provider: selfsigned
roles:
- cloudalchemy.node_exporter
vars:
node_exporter_tls_server_config:
cert_file: /etc/node_exporter/tls.cert
key_file: /etc/node_exporter/tls.key
node_exporter_basic_auth_users:
randomuser: examplepassword
Site de démonstration
Nous proposons un site d'exemple qui démontre une solution de surveillance complète basée sur prometheus et grafana. Le dépôt contenant le code et les liens vers des instances en cours d'exécution est disponible sur GitHub et le site est hébergé sur DigitalOcean.
Tests locaux
La manière préférée de tester localement le rôle est d'utiliser Docker et molecule (v3.x). Vous devrez installer Docker sur votre système. Consultez "Commencer" pour obtenir un package Docker adapté à votre système. Exécuter vos tests est aussi simple que d'exécuter molecule test
.
Intégration Continue
La combinaison de molecule et CircleCI nous permet de tester le comportement des nouvelles PR avec plusieurs versions d'ansible et plusieurs systèmes d'exploitation. Cela nous permet également de créer des scénarios de test pour différentes configurations de rôle. En conséquence, nous avons une matrice de test assez large qui peut prendre plus de temps que les tests locaux, alors merci de faire preuve de patience.
Contribution
Voir les directives pour les contributeurs.
Dépannage
Voir dépannage.
Licence
Ce projet est sous licence MIT. Voir LICENSE pour plus de détails.
ansible-galaxy install cloudalchemy.node_exporter