grafana
: Installs and configures Grafana.grafana::install
: == Class grafana::installgrafana::service
: == Class grafana::service This class is meant to be called from grafana It ensure the service is runninggrafana::validator
: Manage grafana_conn_validator resource
grafana::config
grafana_conn_validator
: Verify connectivity to the Grafana APIgrafana_dashboard
: Manage dashboards in Grafanagrafana_dashboard_permission
: Manage dashboard permissions in Grafanagrafana_datasource
: Manage datasources in Grafanagrafana_folder
: Manage folders in Grafanagrafana_ldap_config
: Manage Grafana LDAP configurationgrafana_ldap_group_mapping
: Map an LDAP group to a Grafana role.grafana_ldap_server
: Manage Grafana LDAP servers for LDAP authentication.grafana_membership
: Manage resource memberships in Grafanagrafana_notification
: Manage notification in Grafanagrafana_organization
: Manage organizations in Grafanagrafana_plugin
: manages grafana pluginsgrafana_team
: Manage teams in Grafanagrafana_user
: Manage users in Grafana
grafana::deep_find_and_remove
: == Function: deep_find_and_remove This function takes a hash as input, along with a string (key). Additionally, the optional removekey (defagrafana::get_sub_paths
: == Function get_sub_paths This function receives an input path as an input parameter, and returns an array of the subpaths in the input, exc
change_grafana_admin_password
: Change the Grafana admin user's password
Installs and configures Grafana.
class { '::grafana':
install_method => 'docker',
}
The following parameters are available in the grafana
class:
archive_source
container_cfg
container_params
data_dir
install_dir
install_method
manage_package_repo
package_name
package_source
service_name
version
repo_name
repo_gpg_key_url
repo_key_id
repo_release
repo_url
plugins
provisioning_dashboards
provisioning_datasources
provisioning_dashboards_file
provisioning_datasources_file
create_subdirs_provisioning
sysconfig_location
sysconfig
ldap_servers
ldap_group_mappings
toml_manage_package
toml_package_name
toml_package_ensure
toml_package_provider
cfg_location
cfg
ldap_cfg
docker_image
docker_ports
rpm_iteration
Data type: Optional[String]
Download location of tarball to be used with the 'archive' install method. Defaults to the URL of the latest version of Grafana available at the time of module release.
Data type: Boolean
Determines whether a configuration file should be generated when using the 'docker' install method.
If true, use the cfg
and cfg_location
parameters to control creation of the file.
Defaults to false.
Data type: Hash
Hash of parameters to use when creating the Docker container. For use with the 'docker' install method.
Refer to documentation of the docker::run
resource in the garethr-docker
module for details of available parameters.
Defaults to:
container_params => { 'image' => 'grafana/grafana:latest', 'ports' => '3000' }
Data type: String
The directory Grafana will use for storing its data. Defaults to '/var/lib/grafana'.
Data type: String
Installation directory to be used with the 'archive' install method. Defaults to '/usr/share/grafana'.
Data type: String
Set to 'archive' to install Grafana using the tar archive. Set to 'docker' to install Grafana using the official Docker container. Set to 'package' to install Grafana using .deb or .rpm packages. Set to 'repo' to install Grafana using an apt or yum repository. Defaults to 'package'.
Data type: Boolean
If true this will setup the official grafana repositories on your host. Defaults to true.
Data type: String
The name of the package managed with the 'package' install method. Defaults to 'grafana'.
Data type: Optional[String]
Download location of package to be used with the 'package' install method. Defaults to the URL of the latest version of Grafana available at the time of module release.
Data type: String
The name of the service managed with the 'archive' and 'package' install methods. Defaults to 'grafana-server'.
Data type: String
The version of Grafana to install and manage. Defaults to 'installed'
Data type: Enum['stable', 'beta', 'custom']
When using 'repo' install_method, the repo to look for packages in. Set to 'stable' to install only stable versions Set to 'beta' to install beta versions Set to 'custom' to install from custom repo. Use full URL Defaults to stable.
Data type: Stdlib::HTTPUrl
When using 'repo' install_method, the repo_gpg_key_url to look for the gpg signing key of the repo. Defaults to https://packages.grafana.com/gpg.key.
Default value: 'https://packages.grafana.com/gpg.key'
Data type: Optional[String[1]]
When using 'repo' install_method, the repo_key_id of the repo_gpg_key_url key on Debian based systems. Defaults to 4E40DDF6D76E284A4A6780E48C8C34C524098CB6.
Data type: Optional[String[1]]
Optional value, needed on Debian based systems. If repo name is set to custom, used to identify the release of the repo. No default value.
Data type: Optional[Stdlib::HTTPUrl]
When using 'repo' install_method, the repo_url to look for packages in. Set to a custom string value to install from a custom repo. Defaults to https://packages.grafana.com/oss/OS_SPECIFIC_SLUG_HERE.
Data type: Hash
A hash of plugins to be passed to create_resources
, wraps around the
grafana_plugin
resource.
Data type: Hash
Hash of dashboards to provision into grafana. grafana > v5.0.0 required. Hash will be converted into YAML and used by grafana to provision dashboards.
Data type: Hash
Hash of datasources to provision into grafana, grafana > v5.0.0 required. Hash will be converted into YAML and used by granfana to configure datasources.
Data type: String
String with the fully qualified path to place the provisioning file for dashboards, only used if provisioning_dashboards is specified. Defaults to '/etc/grafana/provisioning/dashboards/puppetprovisioned.yaml'
Data type: String
String with the fully qualified path to place the provisioning file for datasources, only used if provisioning_datasources is specified. Default to '/etc/grafana/provisioning/datasources/puppetprovisioned.yaml'
Data type: Boolean
Boolean, defaults to false. If true puppet will create any subdirectories in the given path when provisioning dashboards.
Data type: Optional[String]
Location of the sysconfig file for the environment of the grafana-server service. This is only used when the install_method is 'package' or 'repo'.
Data type: Optional[Hash]
A hash of environment variables for the grafana-server service
Example: sysconfig => { 'http_proxy' => 'http://proxy.example.com/' }
Data type: Hash[String[1], Hash]
A hash of ldap_servers to be passed to create_resources
, wraps around the
grafana_ldap_server
resource.
Data type: Hash[String[1], Hash]
A hash of ldap_servers to be passed to create_resources
, wraps around the
grafana_ldap_group_mapping
resource.
Data type: Boolean
ruby-toml is required to generate the TOML-based LDAP config for Grafana. Defaults to true. Set to false if you manage package- or gem-install somewhere else.
Data type: String[1]
Name of the software-package providing the TOML parser library. Defaults to ruby-toml.
Data type: String[1]
Ensure the package-resource - e.g. installed, absent, etc. https://puppet.com/docs/puppet/latest/types/package.html#package-attribute-ensure Defaults to present
Data type: Optional[String[1]]
The package-provider used to install the TOML parser library. Defaults to undef, to let Puppet decide. See https://puppet.com/docs/puppet/latest/types/package.html#package-attribute-provider
Data type: String
Data type: Variant[Hash,Sensitive[Hash]]
Data type: Optional[Variant[Hash,Array[Hash],Sensitive[Hash],Sensitive[Array[Hash]]]]
Data type: String
Data type: String
Data type: String
== Class grafana::install
== Class grafana::service
This class is meant to be called from grafana It ensure the service is running
Manage grafana_conn_validator resource
The following parameters are available in the grafana::validator
class:
Data type: Stdlib::HTTPUrl
Grafana URL.
Default value: 'http://localhost:3000'
Data type: Stdlib::Absolutepath
API path to validate with.
Default value: '/api/health'
Verify connectivity to the Grafana API
The following properties are available in the grafana_conn_validator
type.
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
The following parameters are available in the grafana_conn_validator
type.
The absolute path to the API endpoint
Default value: /api/health
The URL of the Grafana server
Default value: http://localhost:3000
namevar
Arbitrary name of this resource
The specific backend to use for this grafana_conn_validator
resource. You will seldom need to specify this --- Puppet
will usually discover the appropriate provider for your platform.
How long to wait for the API to be available
Default value: 20
Manage dashboards in Grafana
The following properties are available in the grafana_dashboard
type.
The JSON representation of the dashboard.
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
The following parameters are available in the grafana_dashboard
type.
The folder to place the dashboard in (optional)
The absolute path to the API endpoint
Default value: /api
The password for the Grafana server (optional)
The URL of the Grafana server
Default value: ''
The username for the Grafana server (optional)
The organization name to create the datasource on
Default value: 1
The specific backend to use for this grafana_dashboard
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
The title of the dashboard.
Manage dashboard permissions in Grafana
The following properties are available in the grafana_dashboard_permission
type.
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
Valid values: Admin
, Edit
, View
The role to apply
The following parameters are available in the grafana_dashboard_permission
type.
dashboard
grafana_api_path
grafana_password
grafana_url
grafana_user
name
organization
provider
team
user
Dashboard to modify permissions for
The absolute path to the API endpoint
Default value: /api
The password for the Grafana server
The URL of the Grafana server
Default value: ''
The username for the Grafana server
namevar
The name of the permission.
The name of the organization to add permission for
Default value: Main Org.
The specific backend to use for this grafana_dashboard_permission
resource. You will seldom need to specify this ---
Puppet will usually discover the appropriate provider for your platform.
Team to add the permission for
User to add the permission for
Manage datasources in Grafana
The following properties are available in the grafana_datasource
type.
Valid values: direct
, proxy
Whether the datasource is accessed directly or not by the clients
Default value: direct
Valid values: true
, false
Whether basic auth is enabled or not
Default value: false
The password for basic auth if enabled
Default value: ''
The username for basic auth if enabled
Default value: ''
The name of the database (optional)
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
Valid values: true
, false
Whether the datasource is the default one
Default value: false
Additional JSON data to configure the datasource (optional)
The password for the datasource (optional)
Additional secure JSON data to configure the datasource (optional)
The datasource type
The URL/Endpoint of the datasource
The username for the datasource (optional)
Valid values: true
, false
Whether credentials such as cookies or auth headers should be sent with cross-site requests
Default value: false
The following parameters are available in the grafana_datasource
type.
The absolute path to the API endpoint
Default value: /api
The password for the Grafana server
The URL of the Grafana server
Default value: ''
The username for the Grafana server
namevar
The name of the datasource.
The organization name to create the datasource on
Default value: 1
The specific backend to use for this grafana_datasource
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
Manage folders in Grafana
The following properties are available in the grafana_folder
type.
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
The permissions of the folder
The following parameters are available in the grafana_folder
type.
The absolute path to the API endpoint
Default value: /api
The password for the Grafana server (optional)
The URL of the Grafana server
Default value: ''
The username for the Grafana server (optional)
The organization name to create the folder on
Default value: 1
The specific backend to use for this grafana_folder
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
The title of the folder
UID of the folder
Manage Grafana LDAP configuration
The following parameters are available in the grafana_ldap_config
type.
Valid values: true
, false
, yes
, no
Backup existing files before replacing them into the file-bucket
Default value: false
Group of the LDAP configuration file either as String or Integer (default: grafana)
Default value: grafana
File-permissions mode of the LDAP configuration file as String
Default value: 0440
Owner of the LDAP configuration-file either as String or Integer (default: root)
Default value: root
Valid values: true
, false
, yes
, no
Replace existing files
Default value: true
Path to ldap.toml
A command to validate the new Grafana LDAP configuration before actually replacing it
Map an LDAP group to a Grafana role.
The following parameters are available in the grafana_ldap_group_mapping
type.
Valid values: true
, false
, yes
, no
Additonal flag for Grafana > v5.3 to signal admin-role to Grafana
Default value: false
The LDAP distinguished-name of the group
The LDAP server config to apply the group-mappings on
Valid values: Admin
, Editor
, Viewer
The Grafana role the shall be assigned to this group
A unique identifier of the resource
Manage Grafana LDAP servers for LDAP authentication.
The following parameters are available in the grafana_ldap_server
type.
attributes
bind_dn
bind_password
client_cert
client_key
group_search_base_dns
group_search_filter
group_search_filter_user_attribute
hosts
port
root_ca_cert
search_base_dns
search_filter
ssl_skip_verify
start_tls
title
use_ssl
Mapping LDAP attributes to their Grafana user-account-properties (optional)
If the LDAP server requires authentication (i.e. non-anonymous), provide the distinguished-name (dn) here (optional)
If the LDAP server requires authentication (i.e. non-anonymous), provide the password (optional)
If the LDAP server requires certificate-based authentication, specify the client's certificate (for TLS and SSL, optional)
If the LDAP server requires certificate-based authentication, specify the client's certificate (for TLS and SSL, optional)
The base-dn to be used when querying LDAP for group-accounts (optional)
A search-filter to be used when querying LDAP for group-accounts (optional)
The attribute to be used to locate matching user-accounts in the group (optional)
The servers to perform LDAP authentication at
The port to connect at the LDAP servers (389 for TLS/plaintext, 636 for SSL [ldaps], optional)
Default value: 389
The root ca-certificate to verify the LDAP server's SSL certificate against (for TLS and SSL, optional)
Default value: /etc/ssl/certs/ca-certificates.crt
The one or more base-dn to be used when querying LDAP for user-accounts (optional)
Default value: []
A search-filter to be used when querying LDAP for user-accounts (optional)
Valid values: true
, false
, yes
, no
Set to true to disable verification of the LDAP server's SSL certificate (for TLS and SSL, optional)
Default value: false
Valid values: true
, false
, yes
, no
Set to true if you want to perform LDAP via a TLS-connection (not meant to be for SSL, optional)
Default value: true
A unique identified for this LDAP server.
Valid values: true
, false
, yes
, no
Set to true if you want to perform LDAP via a SSL-connection (not meant to be for TLS, optional)
Default value: false
Manage resource memberships in Grafana
The following properties are available in the grafana_membership
type.
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
Valid values: Admin
, Editor
, Viewer
The role to apply to the membership (Admin, Editor, Viewer)
The following parameters are available in the grafana_membership
type.
grafana_api_path
grafana_password
grafana_url
grafana_user
membership_type
name
organization
provider
target_name
user_name
The absolute path to the API endpoint
Default value: /api
The password for the Grafana server
The URL of the Grafana server
Default value: ''
The username for the Grafana server
Valid values: organization
, team
The underlying type of the membership (organization, team)
namevar
The name of the membership.
The name of the organization to add membership for (team only)
Default value: Main Org.
The specific backend to use for this grafana_membership
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
The name of the target to add membership for
The name of the user to add membership for
Manage notification in Grafana
The following properties are available in the grafana_notification
type.
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
The notification reminder frequency
Valid values: true
, false
Whether the notification is the default one
Default value: false
Valid values: true
, false
Whether automatic message resending is enabled or not
Default value: false
Additional JSON data to configure the notification
The notification type
The following parameters are available in the grafana_notification
type.
The absolute path to the API endpoint
Default value: /api
The password for the Grafana server
The URL of the Grafana server
Default value: ''
The username for the Grafana server
namevar
The name of the notification.
The specific backend to use for this grafana_notification
resource. You will seldom need to specify this --- Puppet
will usually discover the appropriate provider for your platform.
Manage organizations in Grafana
The following properties are available in the grafana_organization
type.
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
The following parameters are available in the grafana_organization
type.
The absolute path to the API endpoint
Default value: /api
The password for the Grafana server
The URL of the Grafana server
Default value: ''
The username for the Grafana server
namevar
The name of the organization.
The specific backend to use for this grafana_organization
resource. You will seldom need to specify this --- Puppet
will usually discover the appropriate provider for your platform.
manages grafana plugins
grafana_plugin { 'grafana-simple-json-datasource': }
grafana_plugin { 'grafana-simple-json-datasource':
ensure => 'present',
repo => 'https://nexus.company.com/grafana/plugins',
}
grafana_plugin { 'grafana-example-custom-plugin':
ensure => 'present',
plugin_url => 'https://github.com/example/example-custom-plugin/zipball/v1.0.0'
}
grafana_plugin { 'grafana-simple-json-datasource':
ensure => 'absent',
}
$ puppet resource grafana_plugin
The following properties are available in the grafana_plugin
type.
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
The following parameters are available in the grafana_plugin
type.
Valid values: %r{^\S+$}
namevar
The name of the plugin to enable
Full url to the plugin zip file
The specific backend to use for this grafana_plugin
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
The URL of an internal plugin server
Manage teams in Grafana
The following properties are available in the grafana_team
type.
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
The id or name of the home dashboard
Default value: Default
The UID or name of the home dashboard folder
The theme to use for the team
The timezone to use for the team
The following parameters are available in the grafana_team
type.
The email for the team
Default value: ''
The absolute path to the API endpoint
Default value: /api
The password for the Grafana server
The URL of the Grafana server
Default value: ''
The username for the Grafana server
namevar
The name of the team
The organization the team belongs to
Default value: Main Org.
The specific backend to use for this grafana_team
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
Manage users in Grafana
The following properties are available in the grafana_user
type.
The email for the user
Valid values: present
, absent
The basic property that the resource should be in.
Default value: present
The full name of the user.
Valid values: true
, false
Whether the user is a grafana admin
A hash of organizations and roles
The password for the user
The theme for the user
The following parameters are available in the grafana_user
type.
The absolute path to the API endpoint
Default value: /api
The password for the Grafana server
The URL of the Grafana server
Default value: ''
The username for the Grafana server
namevar
The username of the user.
The specific backend to use for this grafana_user
resource. You will seldom need to specify this --- Puppet will
usually discover the appropriate provider for your platform.
Type: Ruby 4.x API
== Function: deep_find_and_remove
This function takes a hash as input, along with a string (key). Additionally, the optional removekey (defaults to 'puppetsource') is a parameter.
The purpose of this function is to extract the 'options' subhash from the array of hashes given to provision dashboards. This options subhash may contain a path and source which puppet will use for provisioning: creating the path and applying the files from the source.
Additionally, if the key 'puppetsource' exists in the sub-hash, it will be deleted from the structure. Thus the output of this function may be used in yaml format for grafana's provisioning configuration file for dashboards.
== Function: deep_find_and_remove
This function takes a hash as input, along with a string (key). Additionally, the optional removekey (defaults to 'puppetsource') is a parameter.
The purpose of this function is to extract the 'options' subhash from the array of hashes given to provision dashboards. This options subhash may contain a path and source which puppet will use for provisioning: creating the path and applying the files from the source.
Additionally, if the key 'puppetsource' exists in the sub-hash, it will be deleted from the structure. Thus the output of this function may be used in yaml format for grafana's provisioning configuration file for dashboards.
Returns: Array
Data type: String
Data type: Hash
Data type: Optional[String]
Type: Ruby 4.x API
== Function get_sub_paths
This function receives an input path as an input parameter, and returns an array of the subpaths in the input, excluding the input path itself. The function will attempt to ignore any extra slashes in the path given.
This function will only work on UNIX paths with forward slashes (/).
Examples: input = '/var/lib/grafana/dashboards' output = [ '/var', '/var/lib', '/var/lib/grafana'/ ]
input = '/opt' output = []
input = '/first/second/' output = [ '/first' ]
== Function get_sub_paths
This function receives an input path as an input parameter, and returns an array of the subpaths in the input, excluding the input path itself. The function will attempt to ignore any extra slashes in the path given.
This function will only work on UNIX paths with forward slashes (/).
Examples: input = '/var/lib/grafana/dashboards' output = [ '/var', '/var/lib', '/var/lib/grafana'/ ]
input = '/opt' output = []
input = '/first/second/' output = [ '/first' ]
Returns: Array
Data type: String
Change the Grafana admin user's password
Supports noop? false
Data type: Optional[String[1]]
The old admin password
Data type: Optional[String[1]]
The new admin password
Data type: Enum['http','https']
http or https
Data type: Integer
The port Grafana is running on