cloudalchemy.grafana
DÉPRÉCIÉ
Ce rôle a été déprécié au profit de la collection grafana-ansible-collection.
Rôle Ansible : grafana
Provisionner et gérer grafana - plateforme pour l'analyse et la surveillance
Exigences
- Ansible >= 2.7 (Il peut fonctionner sur des versions antérieures, mais nous ne pouvons pas le garantir)
- libselinux-python sur l'hôte de déploiement (uniquement lorsque la machine de déploiement a SELinux)
- grafana >= 5.1 (pour les anciennes versions de grafana, utilisez ce rôle dans la version 0.10.1 ou antérieure)
- jmespath sur la machine de déploiement. Si vous utilisez Ansible depuis un environnement virtuel Python, installez jmespath dans le même environnement via pip.
Variables du rôle
Toutes les variables qui peuvent être remplacées sont stockées dans le fichier defaults/main.yml ainsi que dans le tableau ci-dessous.
Nom | Valeur par défaut | Description |
---|---|---|
grafana_use_provisioning |
true | Utiliser la capacité de provisionnement de Grafana lorsque possible (grafana_version=latest supposera >= 5.0). |
grafana_provisioning_synced |
false | S'assurer qu'aucun tableau de bord précédemment provisionné n'est conservé s'il n'est plus référencé. |
grafana_version |
latest | Version du paquet Grafana |
grafana_yum_repo_template |
etc/yum.repos.d/grafana.repo.j2 | Modèle Yum à utiliser |
grafana_manage_repo |
true | Gérer le dépôt de paquets (ou ne pas le faire) |
grafana_instance |
{{ ansible_fqdn | default(ansible_host) |
grafana_logs_dir |
/var/log/grafana | Chemin vers le répertoire des logs |
grafana_data_dir |
/var/lib/grafana | Chemin vers le répertoire de base de données |
grafana_address |
0.0.0.0 | Adresse sur laquelle Grafana écoute |
grafana_port |
3000 | Port sur lequel Grafana écoute |
grafana_cap_net_bind_service |
false | Permet l'utilisation de ports inférieurs à 1024 sans privilèges root en utilisant les "capabilities" du noyau Linux. lisez : http://man7.org/linux/man-pages/man7/capabilities.7.html |
grafana_url |
"http://{{ grafana_address }}:{{ grafana_port }}" | URL complète utilisée pour accéder à Grafana depuis un navigateur web |
grafana_api_url |
"{{ grafana_url }}" | URL utilisée pour les appels API en provisionnement si différente de l'URL publique. Voir ce problème. |
grafana_domain |
"{{ ansible_fqdn | default(ansible_host) |
grafana_server |
{ protocol: http, enforce_domain: false, socket: "", cert_key: "", cert_file: "", enable_gzip: false, static_root_path: public, router_logging: false } | Section de configuration serveur |
grafana_security |
{ admin_user: admin, admin_password: "" } | Section de configuration sécurité |
grafana_database |
{ type: sqlite3 } | Section de configuration base de données |
grafana_welcome_email_on_sign_up |
false | Envoyer un e-mail de bienvenue après l'inscription |
grafana_users |
{ allow_sign_up: false, auto_assign_org_role: Viewer, default_theme: dark } | Section de configuration utilisateurs |
grafana_auth |
{} | Section de configuration autorisation |
grafana_ldap |
{} | Section de configuration ldap. group_mappings sont élargis, voir les valeurs par défaut pour un exemple |
grafana_session |
{} | Section de gestion de configuration session |
grafana_analytics |
{} | Section de configuration Google analytics |
grafana_smtp |
{} | Section de configuration smtp |
grafana_alerting |
{} | Section de configuration alerte |
grafana_log |
{} | Section de configuration journal |
grafana_metrics |
{} | Section de configuration métriques |
grafana_tracing |
{} | Section de configuration tracage |
grafana_snapshots |
{} | Section de configuration instantanés |
grafana_image_storage |
{} | Section de configuration stockage d'images |
grafana_dashboards |
[] | Liste des tableaux de bord qui doivent être importés |
grafana_dashboards_dir |
"dashboards" | Chemin vers un répertoire local contenant des fichiers de tableaux de bord au format json |
grafana_datasources |
[] | Liste des sources de données qui doivent être configurées |
grafana_environment |
{} | Paramètre d'environnement optionnel pour l'installation de Grafana, utile par exemple pour définir http_proxy |
grafana_plugins |
[] | Liste des plugins Grafana qui doivent être installés |
grafana_alert_notifications |
[] | Liste des canaux de notification d'alerte à créer, mettre à jour ou supprimer |
Exemple de source de données :
grafana_datasources:
- name: prometheus
type: prometheus
access: proxy
url: 'http://{{ prometheus_web_listen_address }}'
basicAuth: false
Exemple de tableau de bord :
grafana_dashboards:
- dashboard_id: 111
revision_id: 1
datasource: prometheus
Exemple de canal de notification d'alerte :
REMARQUE : la définition de la variable grafana_alert_notifications
ne prendra effet que lorsque grafana_use_provisioning
est true
. Cela signifie que le nouveau système de provisionnement utilisant des fichiers de configuration, disponible à partir de Grafana v5.0, doit être en usage.
grafana_alert_notifications:
notifiers:
- name: Channel 1
type: email
uid: channel1
is_default: false
send_reminder: false
settings:
addresses: "[email protected]"
autoResolve: true
delete_notifiers:
- name: Channel 2
uid: channel2
Utiliser un modèle Yum Grafana personnalisé exemple :
Placez votre modèle à côté de votre playbook sous le dossier
templates
Utilisez un chemin différent de celui par défaut, car Ansible, lorsqu'il utilise un chemin relatif, utilise le premier modèle trouvé et regarde d'abord sous le répertoire de rôle, puis sous le répertoire du playbook.
L'expansion du modèle sera placée sous
/etc/yum.repos.d/
, et aura comme nom lebasename
du chemin du modèle sans le .j2Exemple :
grafana_yum_repo_template: my_yum_repos/grafana.repo.j2 # [playbook_dir]/templates/my_yum_repos/grafana.repo.j2 # sera placé sous # /etc/yum.repos.d/grafana.repo # sur l'hôte distant
Architectures CPU supportées
Historiquement, les paquets étaient pris dans différents canaux en fonction de l'architecture CPU. En particulier, les paquets armv6/armv7 et aarch64/arm64 étaient via des paquets non officiels distribués par fg2it. Maintenant que Grafana publie des versions officielles ARM, tous les paquets sont pris des paquets officiels Debian/Ubuntu ou RPM.
Exemple
Playbook
Remplissez le champ du mot de passe administrateur avec votre choix, la page Web de Grafana ne demandera pas de le changer lors de la première connexion.
- hosts: all
roles:
- role: cloudalchemy.grafana
vars:
grafana_security:
admin_user: admin
admin_password: entrez_votre_mot_de_passe_sécurisé
Site de démonstration
Nous fournissons un site de démonstration pour une solution de surveillance complète basée sur Prometheus et Grafana. Le dépôt avec le code et des liens vers des instances en cours d'exécution est disponible sur GitHub et le site est hébergé sur DigitalOcean.
Test local
La meilleure façon de tester localement le rôle est d'utiliser Docker et molecule (v2.x). Vous devrez installer Docker sur votre système. Voir "Commencer" pour un paquet Docker adapté à votre système. Nous utilisons tox pour simplifier le processus de test sur plusieurs versions d'Ansible. Pour installer tox, exécutez :
pip3 install tox
Pour exécuter des tests sur toutes les versions d'Ansible (AVERTISSEMENT : cela peut prendre un certain temps)
tox
Pour exécuter une commande molecule personnalisée sur un environnement personnalisé avec seulement le scénario de test par défaut :
tox -e py35-ansible28 -- molecule test -s default
Pour plus d'informations sur molecule, consultez leur documentation.
Si vous souhaitez exécuter des tests sur un hôte docker distant, spécifiez simplement la variable DOCKER_HOST
avant d'exécuter les tests tox.
Travis CI
Combiner molecule et travis CI nous permet de tester comment de nouvelles PR se comporteront lorsqu'elles seront utilisées 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ôles. En conséquence, nous avons une matrice de tests assez importante qui prendra plus de temps que les tests locaux, alors please soyez patient.
Contribuer
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.
Grafana - platform for analytics and monitoring
ansible-galaxy install cloudalchemy.grafana