rockandska.influxdb

ansible-role-influxdb

Rôle Ansible pour installer/configurer InfluxDB à partir des binaires d'InfluxDB.
Disponible sur Ansible Galaxy

Ansible Galaxy :
Note Galaxy

Travis Build :
Statut de la construction

Exigences sur les hôtes distants

Toutes distributions

  • logrotate
  • python requests >= 1.0.0 (si vous utilisez la gestion des utilisateurs, bases de données, politiques de rétention fournie par ce rôle)
  • python influxdb >= 0.9.0 (si vous utilisez la gestion des utilisateurs, bases de données, politiques de rétention fournie par ce rôle)

Debian / Ubuntu

  • apt-transport-https
  • gpg-agent
  • ca-certificates

CentOS / RedHat

  • gnupg2

Variables du Rôle

Les variables par défaut sont dans defaults/main.yml

---
###########
# Installer #
###########
influxdb_version: 1.7.4

influxdb_rpm_url: "https://dl.influxdata.com/influxdb/releases/influxdb-{{ influxdb_version }}.x86_64.rpm"
influxdb_rpm_sha256: "93caa49159e76b3338abc191c85d46d134ac67697a0c7f874c937baa38dd6a5e"
influxdb_rpm_dest_path: "/usr/src"

influxdb_deb_url: "https://dl.influxdata.com/influxdb/releases/influxdb_{{ influxdb_version }}_amd64.deb"
influxdb_deb_sha256: "5488bd8889de7d45aa09cdccc845156e2d59442871ad6899d64d797e42f2888b"
influxdb_deb_dest_path: "/usr/src"

#################
# Configuration Personnalisée #
#################
influxdb_vars_files: []

influxdb_config_tpl: etc/influxdb/influxdb.conf.j2
influxdb_config: {}

influxdb_systemd_override_tpl: etc/systemd/system/influxdb.service.d/override.conf.j2
influxdb_systemd_override: {}

influxdb_custom_logrotate_tpl: etc/logrotate.d/influxdb.j2
influxdb_custom_logrotate:

############
# Utilisateur API #
############
influxdb_management_hostname:
influxdb_management_port:
influxdb_management_validate_certs:
influxdb_management_proxies:
influxdb_management_login_username:
influxdb_management_login_password:
influxdb_management_retries:
influxdb_management_ssl:
influxdb_management_timeout:
influxdb_management_udp_port:
influxdb_management_use_udp:

#########
# Utilisateurs #
#########
influxdb_users_to_create: []
influxdb_users_to_delete: []

#############
# Bases de Données #
#############
influxdb_databases_to_create: []
influxdb_databases_to_delete: []

############
# Politiques #
############
influxdb_retention_policies_to_create: []

#########
# Débogage #
#########
influxdb_hide_log: true

Détails

  • influxdb_version

    • doit être une version d'influxdb disponible sur https://dl.influxdata.com/influxdb/releases
    • les anciennes versions ne sont pas affichées sur la page de téléchargement mais sont disponibles par des liens directs
  • influxdb_rpm_url

    • URL du paquet rpm
  • influxdb_rpm_sha256

    • sha256 du paquet rpm pour vérifier son intégrité
    • Disponible sur la page de téléchargement d'InfluxDB pour la dernière version
  • influxdb_rpm_dest_path

    • chemin où télécharger le paquet rpm
  • influxdb_deb_url

    • URL du paquet deb
  • influxdb_deb_sha256

    • sha256 du paquet deb pour vérifier son intégrité
    • Disponible sur la page de téléchargement d'InfluxDB pour la dernière version
  • influxdb_deb_dest_path

    • chemin où télécharger le paquet deb
  • influxdb_vars_files

    • liste des fichiers de variables utilisés pour remplacer les variables par défaut si nécessaire
    • si vous utilisez un chemin relatif, mettez ces fichiers à côté de votre playbook dans le répertoire vars
    • exemple :
      influxdb_vars_files:
        - settings.yml
      
  • influxdb_config_tpl

    • chemin vers le modèle de configuration d'influxdb
    • si vous souhaitez utiliser votre propre modèle
      • ajoutez votre modèle à côté de votre playbook dans un répertoire templates
      • utilisez un chemin différent de celui par défaut
  • influxdb_config

    • un dictionnaire représentant la configuration personnalisée d'influxdb à appliquer

    • mettez des clés spéciales entre guillemets (exemple : "[meta]")

    • Si vous utilisez une configuration personnalisée, certaines sections minimales doivent être appliquées en raison de influxdb/#12140 et sont montrées dans l'exemple ci-dessous

    • exemples :

      influxdb_config:
      # Section de configuration globale en 'clé : valeur'
        reporting-disabled: true
      # Sections minimales requises en 'section : { clé : valeur, clé : valeur }'
        "[meta]":
          dir: /var/lib/influxdb/meta
        "[data]":
          dir: /var/lib/influxdb/data
          wal-dir: /var/lib/influxdb/wal
      # Autres sections au format 'section : { clé : valeur, clé : valeur }'
        "[http]":
          auth-enabled: true
        "[[graphite]]":
          enable: true
          batch-size: 5000
      
  • influxdb_systemd_override_tpl

    • chemin vers le modèle d'override systemd d'influxdb
    • si vous souhaitez utiliser votre propre modèle
      • ajoutez votre modèle à côté de votre playbook dans un répertoire templates
      • utilisez un chemin différent de celui par défaut
  • influxdb_systemd_override

    • un dictionnaire représentant la configuration d'override systemd
    • le premier niveau est utilisé pour la section ini
    • le second niveau est utilisé pour les paires clé / valeur
    • exemple :
      influxdb_systemd_override:
        Service:
          LimitNOFILE: 30000
      # Cela donnera dans le fichier d'override systemd :
      # [Service]
      # LimitNOFILE=30000
      
  • influxdb_custom_logrotate_tpl

    • chemin vers le modèle de logrotate personnalisé d'influxdb
    • si vous souhaitez utiliser votre propre modèle
      • ajoutez votre modèle à côté de votre playbook dans un répertoire templates
      • utilisez un chemin différent de celui par défaut
  • influxdb_custom_logrotate

    • une chaîne multilignes avec les options de logrotate pour les journaux d'influxdb

    • remplacera la configuration par défaut

    • /!\ Attention, si vous remplacez la configuration par défaut de logrotate par une personnalisation, la configuration appliquée persistera même si vous désélectionnez cette variable

    • exemple :

      influxdb_custom_logrotate: |
        weekly
        missingok
        rotate 40
        compress
        notifempty
      # Cela donnera dans le fichier de configuration de logrotate :
      # /var/log/influxdb/*.log {
      #   weekly
      #   missingok
      #   rotate 40
      #   compress
      #   notifempty
      # }
      
  • influxdb_management_hostname

    • par défaut à partir de la valeur du module influxdb_{user,policy,retention_policy}
    • nom d'hôte pour les appels API
  • influxdb_management_port

    • par défaut à partir de la valeur du module influxdb_{user,policy,retention_policy}
    • port http pour les appels API
  • influxdb_management_validate_certs

    • par défaut à partir de la valeur du module influxdb_{user,policy,retention_policy}
    • devons-nous valider le certificat SSL pour les appels API
  • influxdb_management_proxies

    • par défaut à partir de la valeur du module influxdb_{user,policy,retention_policy}
    • Proxy HTTP(S) à utiliser pour les appels API
  • influxdb_management_login_username

    • nom d'utilisateur à utiliser pour les appels API
    • obligatoire si influxdb_config['[http]']['auth-enabled'] est défini
    • Cet utilisateur ne sera créé qu'une seule fois et doit être un utilisateur qui n'existe pas déjà
    • Si vous souhaitez modifier l'utilisateur après sa création, utilisez un utilisateur admin déjà existant.
  • influxdb_management_login_password

    • mot de passe à utiliser pour les appels API
    • obligatoire si influxdb_config['[http]']['auth-enabled'] est défini
    • Si vous souhaitez modifier le mot de passe après la création de l'utilisateur admin :
      • Modifiez le mot de passe via la CLI avant de le modifier ici
      • Alternativement, vous pourriez le changer dans influxdb_users_to_create, mais sachez que cela générera une erreur si vous avez des utilisateurs restants qui doivent être vérifiés, mais cela devrait fonctionner si vous relancez votre playbook une deuxième fois.
  • influxdb_management_retries

    • par défaut à partir de la valeur du module influxdb_{user,policy,retention_policy}
    • nombre de tentatives pour les appels API
  • influxdb_management_ssl

    • par défaut à partir de la valeur du module influxdb_{user,policy,retention_policy}
    • utiliser SSL pour les appels API
  • influxdb_management_timeout

    • par défaut à partir de la valeur du module influxdb_{user,policy,retention_policy}
    • délai d'attente pour les appels API
  • influxdb_management_udp_port

    • par défaut à partir de la valeur du module influxdb_{user,policy,retention_policy}
    • port UDP à utiliser pour les appels API
  • influxdb_management_use_udp

    • par défaut à partir de la valeur du module influxdb_{user,policy,retention_policy}
    • devons-nous utiliser l'UDP pour les appels API
  • influxdb_users_to_create

    • liste de dictionnaires pour la création d'utilisateurs

    • référez-vous à la documentation ansible pour les options obligatoires et la compatibilité des versions

    • les privilèges de concession sont fournis par une bibliothèque personnalisée fournie avec ce rôle et mis à jour depuis ce PR

    • l'absence de la clé grants supprimera tous les GRANTS pour l'utilisateur spécifié

    • Exemple :

      influxdb_users_to_create:
        - user_name: test
          user_password: test
          grants:
            - database: db_test
              privilege: READ  
        - user_name: test2
          user_password: test2
          admin: true  
      
  • influxdb_users_to_delete

    • liste des utilisateurs à supprimer
    • Exemple :
      influxdb_users_to_delete:
        - test
      
  • influxdb_retention_policies_to_create

    • liste des politiques de rétention à créer

    • référez-vous à la documentation ansible pour les options obligatoires et la compatibilité des versions

    • exemple :

      influxdb_retention_policies_to_create:
        - database_name: db_test
          policy_name: test
          duration: 1h
          replication: 1
      
  • influxdb_databases_to_create

    • liste des bases de données à créer
    • exemples :
    influxdb_databases_to_create:
      - db_test
    
  • influxdb_databases_to_delete

    • liste des bases de données à supprimer

    • exemples :

    influxdb_databases_to_delete:
      - db_test
    
  • influxdb_retention_policies_to_create

    • liste des paramètres des politiques de rétention

    • la suppression de politiques n'est pas encore supportée

    • exemples :

    influxdb_retention_policies_to_create:
      - database_name: db_test
        policy_name: test
        duration: 1h
        replication: 1  
    
  • influxdb_hide_log

    • par défaut : true
    • ne montre pas le journal des appels API pour éviter les fuites d'informations sensibles
    • mettez-le sur false pour le débogage

Exemple de Playbook

- hosts: influxdb
  roles:
    - rockandska.influxdb

Tests Locaux

La meilleure façon de tester localement le rôle est d'utiliser Docker et molecule (v2.x). Vous devez 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 :

$ sudo pip install tox
# ou
$ pip install --user 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 uniquement le scénario de test par défaut :

$ tox -e py27-ansible25 -- 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.

Licence

BSD

À propos du projet

InfluxDB installation / configuration

Installer
ansible-galaxy install rockandska.influxdb
Licence
Unknown
Téléchargements
124
Propriétaire