buluma.grafana

Rol de Ansible grafana

Grafana - plataforma para análisis y monitoreo

GitHub Versión Problemas Solicitudes de Extracción Descargas
github Version Issues PullRequests Ansible Role

Ejemplo de Playbook

Este ejemplo se toma de molecule/default/converge.yml y se prueba en cada envío, solicitud de extracción y lanzamiento.

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

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

La máquina necesita ser preparada. En CI, esto se hace usando molecule/default/prepare.yml:

---
- name: Preparar
  hosts: all
  gather_facts: no
  become: yes

  roles:
    - rol: buluma.bootstrap

También puedes ver una explicación completa y un ejemplo sobre cómo usar estos roles.

Variables del Rol

Los valores predeterminados para las variables se establecen en defaults/main.yml:

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

# ¿Deberíamos utilizar la capacidad de aprovisionamiento cuando sea posible (el aprovisionamiento requiere grafana >= 5.0)?
grafana_use_provisioning: true

# ¿Debería el aprovisionamiento mantenerse sincronizado? Si es verdadero, los objetos aprovisionados previamente se eliminarán si ya no se hacen referencia.
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
# Para permitir el uso de puertos por debajo de 1024 para procesos no privilegiados, Linux necesita establecer CAP_NET_BIND_SERVICE.
# Esto tiene algunas implicaciones de seguridad y debería ser una elección consciente.
# Infórmate leyendo: http://man7.org/linux/man-pages/man7/capabilities.7.html
grafana_cap_net_bind_service: false

# Dirección externa de Grafana. La variable se mapa a "root_url" en la sección del servidor grafana.
grafana_url: "http://{{ grafana_address }}:{{ grafana_port }}"
grafana_api_url: "{{ grafana_url }}"
grafana_domain: "{{ ansible_fqdn | default(ansible_host) | default('localhost') }}"

# Opciones adicionales para la sección "server" de grafana.
# Esta sección OMITIRÁ opciones para: http_addr, http_port, domain, y root_url, ya que esos ajustes se establecen por variables listadas antes.
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

# Las variables corresponden a las del archivo de configuración grafana.ini
# Seguridad
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:

# Configuración de base de datos
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: ""

# Caché remota
grafana_remote_cache: {}

# Gestión y registro de usuarios
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: ""

# Mecanismos de autenticación 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 para 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)" en 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: ""

# Configura esto para notificaciones por correo
grafana_smtp: {}
#  host:
#  user:
#  password:
#  from_address:

# Habilita el mecanismo de alertas de grafana
grafana_alerting:
  execute_alerts: true
#  error_or_timeout: 'alerting'
#  nodata_or_nullvalues: 'no_data'
#  concurrent_render_limit: 5

# Configuración de registro de grafana
grafana_log:
# mode: 'console file'
# level: info

# Sistema interno de métricas de grafana
grafana_metrics: {}
#  interval_seconds: 10
#  graphite:
#    address: "localhost:2003"
#    prefix: "prod.grafana.%(instance_name)s"

# Opciones de trazabilidad distribuidas
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: "Publicar en snapshot.raintank.io"
#  snapshot_remove_expired: true
#  snapshot_TTL_days: 90

# Almacenamiento de imágenes externas
grafana_image_storage: {}
#  provider: gcs
#  key_file:
#  bucket:
#  path:


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

# Dashboards 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"

# Canales de notificación de alertas a configurar
grafana_alert_notifications: []
#  - name: "Alerta por Correo"
#    type: "email"
#    uid: channel1
#    is_default: true
#    settings:
#      addresses: "[email protected]"

# Orígenes de datos a configurar
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

# Claves API a configurar
grafana_api_keys: []
#  - name: "admin"
#    role: "Admin"
#  - name: "viewer"
#    role: "Viewer"
#  - name: "editor"
#    role: "Editor"

# La ubicación donde se deben almacenar las claves.
grafana_api_keys_dir: "{{ lookup('env', 'HOME') }}/grafana/keys"

grafana_environment: {}

# Configuraciones de paneles
grafana_panels: {}
#  disable_sanitize_html: false
#  enable_alpha: false

Requisitos

Estado de los roles usados

Los siguientes roles se utilizan para preparar un sistema. Puedes preparar tu sistema de otra manera.

Requisito GitHub Versión
buluma.bootstrap Ansible Molecule Version

Contexto

Este rol es parte de muchos roles compatibles. Consulta la documentación de estos roles para más información.

Aquí hay un resumen de los roles relacionados:

dependencias

Compatibilidad

Este rol ha sido probado en estas imágenes de contenedor:

contenedor etiquetas
Ubuntu todas
Debian todas
EL todas
Fedora todas

La versión mínima de Ansible requerida es 2.12, se han realizado pruebas en:

  • La versión anterior.
  • La versión actual.
  • La versión de desarrollo.

Si encuentras problemas, por favor regístralos en GitHub

Historial de Cambios

Historial del Rol

Licencia

Apache-2.0

Información del Autor

Shadow Walker

Acerca del proyecto

Grafana - platform for analytics and monitoring

Instalar
ansible-galaxy install buluma.grafana
Licencia
apache-2.0
Descargas
374
Propietario
DevOps Engineer