juliendufresne.influxdb
Rôle Ansible InfluxDB
Installation et gestion d'InfluxDB entièrement configurable.
Vous pouvez gérer vos utilisateurs et bases de données avec les variables influxdb_users
et influxdb_databases
.
Plateformes prises en charge
Distribution | Date de dernière vérification | Installation complète | Idempotence |
---|---|---|---|
CentOS 7.2.1511 (Core) | 2016-08-06 18:40:07 | ||
Debian 7.10 (wheezy) | 2016-08-06 18:41:39 | ||
Debian 8.4 (jessie) | 2016-08-06 18:43:44 | ||
Ubuntu 12.04 (precise) | 2016-08-06 18:45:21 | ||
Ubuntu 14.04 (trusty) | 2016-08-06 18:47:32 | ||
Ubuntu 15.04 (vivid) | 2016-08-06 18:49:37 | ||
Ubuntu 15.10 (wily) | 2016-08-06 18:51:39 | ||
Ubuntu 16.04 (xenial) | 2016-08-06 18:53:35 |
Table générée avec test-ansible-roles
Exigences
Ce rôle nécessite ansible 2.1.0+ (apt_repository utilise filename)
Module influxdb_user
Ce rôle contient un module pour gérer vos utilisateurs InfluxDB. Il peut :
- Assurer qu'un utilisateur est présent ou absent
- Créer un utilisateur admin ou un utilisateur classique
- Gérer les droits d'accès aux bases de données des utilisateurs (AUCUN, LIRE, ÉCRIRE ou TOUS les privilèges)
- Ajouter vos droits spécifiés aux droits existants
Pour plus d'informations sur ce module, consultez sa documentation dédiée
Remarque : Vous pouvez utiliser ce module indépendamment ou via la variable
influxdb_users
Variables du rôle
Chaque variable a une valeur par défaut. Ce rôle peut être exécuté avec la configuration par défaut.
options globales
Nom | Description | Par défaut |
---|---|---|
influxdb_install_user | Quel utilisateur sera utilisé pour l'installation. | "root" |
influxdb_user | Utilisateur InfluxDB | "influxdb" |
influxdb_group | Groupe InfluxDB | "influxdb" |
influxdb_config_dir | Emplacement des fichiers de configuration | "/etc/influxdb" |
influxdb_config_file | Nom du fichier de configuration | "influxdb.conf" |
influxdb_users | Permet de gérer les utilisateurs (voir ci-dessous) | [] |
influxdb_databases | Permet de gérer les bases de données (voir ci-dessous) | ["_internal"] |
Gestion des utilisateurs
La variable influxdb_users
permet de gérer la création des utilisateurs et la gestion des droits.
Pour chaque entrée, le script :
- Créera l'utilisateur s'il n'existe pas
- Mettra à jour le mot de passe de l'utilisateur s'il a changé
- Donnera le rôle admin si le
type
est défini suradmin
- Révoquera tous les droits d'accès aux bases de données précédemment définis
- Donnera les droits spécifiés à chaque base de données.
Exemple :
influxdb_users:
- name: admin
admin: yes
password: admin
- name: grafana
password: grafana
grants: "measurement:READ" # Donne accès en LECTURE à la table measurement pour l'utilisateur grafana
- type: user
name: telegraf
password: telegraf
grants: "measurement:WRITE" # Donne accès en ÉCRITURE à la table measurement pour l'utilisateur telegraf
- name: john
password: john
grants: "measurement:ALL" # Donne accès en LECTURE et ÉCRITURE à la table measurement pour l'utilisateur telegraf
Pour des raisons de sécurité, il ne supprime pas de bases de données.
Gestion des bases de données
Assurez-vous que les bases de données listées dans influxdb_databases
sont créées.
Exemple :
influxdb_databases:
- "_internal"
- "grafana"
Pour des raisons de sécurité, il ne supprime pas de bases de données.
Options de fichier de configuration
Chaque paramètre du fichier de configuration peut être spécifié.
Format de la variable : influxdb__<nom_du_bloc>__<paramètre_en_case_snake>
Nom | Description | Par défaut |
---|---|---|
influxdb_config__meta__dir | "/var/lib/influxdb/meta" | |
influxdb_config__meta__retention_autocreate | "true" | |
influxdb_config__meta__logging_enabled | "true" | |
influxdb_config__meta__pprof_enabled | "false" | |
influxdb_config__meta__lease_duration | "1m0s" | |
influxdb_config__data__enabled | "true" | |
influxdb_config__data__dir | "/var/lib/influxdb/data" | |
influxdb_config__data__wal_dir | "/var/lib/influxdb/wal" | |
influxdb_config__data__wal_logging_enabled | "true" | |
influxdb_config__data__data_logging_enabled | "true" | |
influxdb_config__data__query_log_enabled | "true" | |
influxdb_config__data__cache_max_memory_size | 524288000 | |
influxdb_config__data__cache_snapshot_memory_size | 26214400 | |
influxdb_config__data__cache_snapshot_write_cold_duration | "1h" | |
influxdb_config__data__compact_min_file_count | 3 | |
influxdb_config__data__compact_full_write_cold_duration | "24h" | |
influxdb_config__data__max_points_per_block | 1000 | |
influxdb_config__cluster__shard_writer_timeout | "5s" | |
influxdb_config__cluster__write_timeout | "10s" | |
influxdb_config__cluster__max_concurrent_queries | 0 | |
influxdb_config__cluster__query_timeout | "0s" | |
influxdb_config__cluster__max_select_point | 0 | |
influxdb_config__cluster__max_select_series | 0 | |
influxdb_config__cluster__max_select_buckets | 0 | |
influxdb_config__retention__enabled | "true" | |
influxdb_config__retention__check_interval | "30s" | |
influxdb_config__shard_precreation__enabled | "true" | |
influxdb_config__shard_precreation__check_interval | "10m" | |
influxdb_config__shard_precreation__advance_period | "30m" | |
influxdb_config__monitor__store_enabled | "true" | |
influxdb_config__monitor__store_database | "_internal" | |
influxdb_config__monitor__store_interval | "10s" | |
influxdb_config__admin__enabled | "true" | |
influxdb_config__admin__bind_address | ":8083" | |
influxdb_config__admin__https_enabled | "false" | |
influxdb_config__admin__https_certificate | "/etc/ssl/influxdb.pem" | |
influxdb_config__http__enabled | "true" | |
influxdb_config__http__bind_address | ":8086" | |
influxdb_config__http__auth_enabled | "false" | |
influxdb_config__http__log_enabled | "true" | |
influxdb_config__http__write_tracing | "false" | |
influxdb_config__http__pprof_enabled | "false" | |
influxdb_config__http__https_enabled | "false" | |
influxdb_config__http__https_certificate | "/etc/ssl/influxdb.pem" | |
influxdb_config__http__max_row_limit | 10000 | |
influxdb_config__graphite__enabled | "false" | |
influxdb_config__graphite__bind_address | ":2003" | |
influxdb_config__graphite__database | "graphite" | |
influxdb_config__graphite__protocol | "tcp" | |
influxdb_config__graphite__batch_size | 5000 | |
influxdb_config__graphite__batch_pending | 10 | |
influxdb_config__graphite__batch_timeout | "1s" | |
influxdb_config__graphite__consistency_level | "one" | |
influxdb_config__graphite__separator | "." | |
influxdb_config__graphite__udp_read_buffer | 0 | |
influxdb_config__graphite__tags | [] | |
influxdb_config__graphite__templates | [] | |
influxdb_config__collectd__enabled | "false" | |
influxdb_config__collectd__bind_address | ":25826" | |
influxdb_config__collectd__database | "collectd" | |
influxdb_config__collectd__batch_size | 5000 | |
influxdb_config__collectd__batch_pending | 10 | |
influxdb_config__collectd__batch_timeout | "10s" | |
influxdb_config__collectd__read_buffer | 0 | |
influxdb_config__collectd__typesdb | "/usr/share/collectd/types.db" | |
influxdb_config__opentsdb__enabled | "false" | |
influxdb_config__opentsdb__bind_address | ":4242" | |
influxdb_config__opentsdb__database | "opentsdb" | |
influxdb_config__opentsdb__retention_policy | "" | |
influxdb_config__opentsdb__consistency_level | "one" | |
influxdb_config__opentsdb__tls_enabled | "false" | |
influxdb_config__opentsdb__certificate | "/etc/ssl/influxdb.pem" | |
influxdb_config__opentsdb__batch_size | 1000 | |
influxdb_config__opentsdb__batch_pending | 5 | |
influxdb_config__opentsdb__batch_timeout | "1s" | |
influxdb_config__opentsdb__log_point_errors | "true" | |
influxdb_config__udp__enabled | "false" | |
influxdb_config__udp__bind_address | ":8089" | |
influxdb_config__udp__database | "udp" | |
influxdb_config__udp__retention_policy | "" | |
influxdb_config__udp__batch_size | 5000 | |
influxdb_config__udp__batch_pending | 10 | |
influxdb_config__udp__batch_timeout | "1s" | |
influxdb_config__udp__read_buffer | 0 | |
influxdb_config__udp__udp_payload_size | 65536 | |
influxdb_config__continuous_queries__log_enabled | "true" | |
influxdb_config__continuous_queries__enabled | "true" | |
influxdb_config__continuous_queries__run_interval | "1s" |
Dépendances
Aucune.
Exemple de Playbook
Inclure un exemple de la façon d'utiliser votre rôle (par exemple, avec des variables passées en tant que paramètres) est toujours agréable pour les utilisateurs :
- hosts: serveurs
roles:
- { role: juliendufresne.influxdb }
Licence
MIT / BSD
Informations sur l'auteur
Ce rôle a été créé en 2016 par Julien Dufresne.
Fully configurable influxdb installation for Debian/Ubuntu Linux.
ansible-galaxy install juliendufresne.influxdb