buluma.grafana

Rôle Ansible grafana

Grafana - plateforme pour l'analyse et la surveillance

GitHub Version Problèmes Demandes de tirage Téléchargements
github Version Issues PullRequests Ansible Role

Exemple de Playbook

Cet exemple est tiré de molecule/default/converge.yml et est testé à chaque poussée, demande de tirage et publication.

---
- name: Convergence
  hosts: all
  become: yes
  gather_facts: yes

  roles:
    - role: buluma.grafana
      vars:
        grafana_security:
          admin_user: admin
          admin_password: password

La machine doit être préparée. Dans le CI, cela se fait en utilisant molecule/default/prepare.yml :

---
- name: Préparer
  hosts: all
  gather_facts: no
  become: yes

  roles:
    - role: buluma.bootstrap

Vous pouvez également consulter une explication complète et un exemple sur la façon d'utiliser ces rôles.

Variables du Rôle

Les valeurs par défaut pour les variables sont définies dans defaults/main.yml:

---
grafana_version: latest
grafana_yum_repo_template: etc/yum.repos.d/grafana.repo.j2
grafana_manage_repo: true

# Devons-nous utiliser la capacité de provisionnement lorsque cela est possible (le provisionnement nécessite grafana >= 5.0)
grafana_use_provisioning: true

# Le provisionnement doit-il être maintenu synchronisé ? Si vrai, les objets provisionnés précédemment seront supprimés s'ils ne sont plus référencés.
grafana_provisioning_synced: false

grafana_instance: "{{ ansible_fqdn | default(ansible_host) | default(inventory_hostname) }}"

grafana_logs_dir: "/var/log/grafana"
grafana_data_dir: "/var/lib/grafana"

grafana_address: "0.0.0.0"
grafana_port: 3000
# Pour permettre l'utilisation de ports en dessous de 1024 pour les processus non privilégiés, Linux doit définir CAP_NET_BIND_SERVICE.
# Cela a des implications de sécurité et doit être un choix conscient.
# Informez-vous en lisant : http://man7.org/linux/man-pages/man7/capabilities.7.html
grafana_cap_net_bind_service: false

# Adresse externe de Grafana. La variable correspond à "root_url" dans la section serveur de grafana
grafana_url: "http://{{ grafana_address }}:{{ grafana_port }}"
grafana_api_url: "{{ grafana_url }}"
grafana_domain: "{{ ansible_fqdn | default(ansible_host) | default('localhost') }}"

# Options supplémentaires pour la section "server" de grafana
# Cette section OMITTRA les options pour : http_addr, http_port, domain, et root_url, car ces réglages sont définis par les variables énumérées précédemment
grafana_server:
  protocol: http
  enforce_domain: false
  socket: ""
  cert_key: ""
  cert_file: ""
  enable_gzip: false
  static_root_path: public
  router_logging: false
  serve_from_sub_path: false

# Les variables correspondent à celles du fichier de configuration grafana.ini
# Sécurité
grafana_security:
  admin_user: admin
  admin_password: "password"
#  secret_key: ""
#  login_remember_days: 7
#  cookie_username: grafana_user
#  cookie_remember_name: grafana_remember
#  disable_gravatar: true
#  data_source_proxy_whitelist:

# Configuration de la base de données
grafana_database:
  type: sqlite3
#  host: 127.0.0.1:3306
#  name: grafana
#  user: root
#  password: ""
#  url: ""
#  ssl_mode: disable
#  path: grafana.db
#  max_idle_conn: 2
#  max_open_conn: ""
#  log_queries: ""

# Cache distant
grafana_remote_cache: {}

# Gestion et enregistrement des utilisateurs
grafana_welcome_email_on_sign_up: false
grafana_users:
  allow_sign_up: false
  # allow_org_create: true
  # auto_assign_org: true
  auto_assign_org_role: Viewer
  # login_hint: "email or username"
  default_theme: dark
  # external_manage_link_url: ""
  # external_manage_link_name: ""
  # external_manage_info: ""

# Mécanismes d'authentification de grafana
grafana_auth: {}
#  disable_login_form: false
#  oauth_auto_login: false
#  disable_signout_menu: false
#  signout_redirect_url: ""
#  anonymous:
#    org_name: "Main Organization"
#    org_role: Viewer
#  ldap:
#    config_file: "/etc/grafana/ldap.toml"
#    allow_sign_up: false
#  basic:
#    enabled: true

grafana_ldap: {}
#  verbose_logging: false
#  servers:
#    host: 127.0.0.1
#    port: 389 # 636 pour SSL
#    use_ssl: false
#    start_tls: false
#    ssl_skip_verify: false
#    root_ca_cert: /path/to/certificate.crt
#    bind_dn: "cn=admin,dc=grafana,dc=org"
#    bind_password: grafana
#    search_filter: "(cn=%s)" # "(sAMAccountName=%s)" sur AD
#    search_base_dns:
#      - "dc=grafana,dc=org"
#    group_search_filter: "(&(objectClass=posixGroup)(memberUid=%s))"
#    group_search_base_dns:
#      - "ou=groups,dc=grafana,dc=org"
#    attributes:
#      name: givenName
#      surname: sn
#      username: sAMAccountName
#      member_of: memberOf
#      email: mail
#  group_mappings:
#    - name: Main Org.
#      id: 1
#      groups:
#        - group_dn: "cn=admins,ou=groups,dc=grafana,dc=org"
#          org_role: Admin
#        - group_dn: "cn=editors,ou=groups,dc=grafana,dc=org"
#          org_role: Editor
#        - group_dn: "*"
#          org_role: Viewer
#    - name: Alternative Org
#      id: 2
#      groups:
#        - group_dn: "cn=alternative_admins,ou=groups,dc=grafana,dc=org"
#          org_role: Admin

grafana_session: {}
#  provider: file
#  provider_config: "sessions"

grafana_analytics: {}
#  reporting_enabled: true
#  google_analytics_ua_id: ""

# Définissez ceci pour les notifications par e-mail
grafana_smtp: {}
#  host:
#  user:
#  password:
#  from_address:

# Activez le mécanisme d'alerte de grafana
grafana_alerting:
  execute_alerts: true
#  error_or_timeout: 'alerting'
#  nodata_or_nullvalues: 'no_data'
#  concurrent_render_limit: 5

# Configuration de la journalisation de grafana
grafana_log:
# mode: 'console file'
# level: info

# Système de métriques internes de grafana
grafana_metrics: {}
#  interval_seconds: 10
#  graphite:
#    address: "localhost:2003"
#    prefix: "prod.grafana.%(instance_name)s"

# Options de trace distribuée
grafana_tracing: {}
#  address: "localhost:6831"
#  always_included_tag: "tag1:value1,tag2:value2"
#  sampler_type: const
#  sampler_param: 1

grafana_snapshots: {}
#  external_enabled: true
#  external_snapshot_url: "https://snapshots-origin.raintank.io"
#  external_snapshot_name: "Publish to snapshot.raintank.io"
#  snapshot_remove_expired: true
#  snapshot_TTL_days: 90

# Stockage d'images externes
grafana_image_storage: {}
#  provider: gcs
#  key_file:
#  bucket:
#  path:


#######
# Plugins de https://grafana.com/plugins
grafana_plugins: []
#  - raintank-worldping-app

# Tableaux de bord de https://grafana.com/dashboards
grafana_dashboards: []
#  - dashboard_id: '4271'
#    revision_id: '3'
#    datasource: 'Prometheus'
#  - dashboard_id: '1860'
#    revision_id: '4'
#    datasource: 'Prometheus'
#  - dashboard_id: '358'
#    revision_id: '1'
#    datasource: 'Prometheus'

grafana_dashboards_dir: "dashboards"

# Canaux de notification d'alerte à configurer
grafana_alert_notifications: []
#  - name: "Email Alert"
#    type: "email"
#    uid: channel1
#    is_default: true
#    settings:
#      addresses: "[email protected]"

# Sources de données à configurer
grafana_datasources: []
#  - name: "Prometheus"
#    type: "prometheus"
#    access: "proxy"
#    url: "http://prometheus.mydomain"
#    basicAuth: true
#    basicAuthUser: "admin"
#    basicAuthPassword: "password"
#    isDefault: true
#    jsonData:
#      tlsAuth: false
#      tlsAuthWithCACert: false
#      tlsSkipVerify: true

# Clés API à configurer
grafana_api_keys: []
#  - name: "admin"
#    role: "Admin"
#  - name: "viewer"
#    role: "Viewer"
#  - name: "editor"
#    role: "Editor"

# L'emplacement où les clés doivent être stockées.
grafana_api_keys_dir: "{{ lookup('env', 'HOME') }}/grafana/keys"

grafana_environment: {}

# Configurations des panneaux
grafana_panels: {}
#  disable_sanitize_html: false
#  enable_alpha: false

Exigences

État des rôles utilisés

Les rôles suivants sont utilisés pour préparer un système. Vous pouvez préparer votre système d'une autre manière.

Exigence GitHub Version
buluma.bootstrap Ansible Molecule Version

Contexte

Ce rôle fait partie de plusieurs rôles compatibles. Consultez la documentation de ces rôles pour plus d'informations.

Voici un aperçu des rôles connexes :

dépendances

Compatibilité

Ce rôle a été testé sur ces images de conteneurs:

conteneur tags
Ubuntu tous
Debian tous
EL tous
Fedora tous

La version minimale d'Ansible requise est 2.12, et des tests ont été effectués sur :

  • La version précédente.
  • La version actuelle.
  • La version de développement.

Si vous trouvez des problèmes, veuillez les signaler sur GitHub

Journal des modifications

Historique du Rôle

Licence

Apache-2.0

Informations sur l'auteur

Shadow Walker

À propos du projet

Grafana - platform for analytics and monitoring

Installer
ansible-galaxy install buluma.grafana
Licence
apache-2.0
Téléchargements
374
Propriétaire
DevOps Engineer