rockandska.influxdb

ansible-role-influxdb

Ansible-Rolle zur Installation/Konfiguration von InfluxDB aus den InfluxDB-Binärdateien.
Verfügbar auf Ansible Galaxy

Ansible Galaxy:
Galaxy Score

Travis Build:
Build Status

Anforderungen an Remote-Hosts

Alle Distributionen

  • logrotate
  • python requests >= 1.0.0 (falls Benutzer-, Datenbanken- und Aufbewahrungsrichtlinienverwaltung von dieser Rolle verwendet wird)
  • python influxdb >= 0.9.0 (falls Benutzer-, Datenbanken- und Aufbewahrungsrichtlinienverwaltung von dieser Rolle verwendet wird)

Debian / Ubuntu

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

CentOS / RedHat

  • gnupg2

Rollenvariablen

Standardvariablen befinden sich in defaults/main.yml

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

#################
# Benutzerdefinierte Konfiguration #
#################
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:

############
# API-Benutzer #
############
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:

#########
# Benutzer #
#########
influxdb_users_to_create: []
influxdb_users_to_delete: []

#############
# Datenbanken #
#############
influxdb_databases_to_create: []
influxdb_databases_to_delete: []

############
# Richtlinien #
############
influxdb_retention_policies_to_create: []

#########
# Debug #
#########
influxdb_hide_log: true

Details

  • influxdb_version

  • influxdb_rpm_url

    • URL des RPM-Pakets
  • influxdb_rpm_sha256

    • sha256 des RPM-Pakets zur Überprüfung seiner Integrität
    • Verfügbar auf der InfluxDB-Download-Seite für die letzte Veröffentlichung
  • influxdb_rpm_dest_path

    • Pfad, wo das RPM-Paket heruntergeladen werden soll
  • influxdb_deb_url

    • URL des DEB-Pakets
  • influxdb_deb_sha256

    • sha256 des DEB-Pakets zur Überprüfung seiner Integrität
    • Verfügbar auf der InfluxDB-Download-Seite für die letzte Veröffentlichung
  • influxdb_deb_dest_path

    • Pfad, wo das DEB-Paket heruntergeladen werden soll
  • influxdb_vars_files

    • Liste der Variablendateien, die verwendet werden, um Standardvariablen zu überschreiben, falls erforderlich
    • Wenn relative Pfade verwendet werden, legen Sie diese Dateien neben Ihr Playbook im vars-Verzeichnis
    • Beispiel:
      influxdb_vars_files:
        - settings.yml
      
  • influxdb_config_tpl

    • Pfad zur InfluxDB-Konfigurationsvorlage
    • Wenn Sie Ihre eigene Vorlage verwenden möchten
      • Fügen Sie Ihre Vorlage neben Ihr Playbook in ein templates-Verzeichnis hinzu
      • Verwenden Sie einen anderen Pfad als den Standardpfad
  • influxdb_config

    • ein Dictionary, das die benutzerdefinierte InfluxDB-Konfiguration darstellt

    • spezielle Schlüssel bitte in doppelte Anführungszeichen setzen (Beispiel: "[meta]")

    • Bei Verwendung einer benutzerdefinierten Konfiguration müssen einige minimale Abschnitte angewendet werden, wie in influxdb/#12140 beschrieben und im folgenden Beispiel gezeigt

    • Beispiele:

      influxdb_config:
      # Globale Konfigurationsabschnitte als 'key: value'
        reporting-disabled: true
      # Minimale erforderliche Abschnitte als 'section: { key: value, key: value }'
        "[meta]":
          dir: /var/lib/influxdb/meta
        "[data]":
          dir: /var/lib/influxdb/data
          wal-dir: /var/lib/influxdb/wal
      # Weitere Abschnitte im Format 'section: { key: value, key: value }'
        "[http]":
          auth-enabled: true
        "[[graphite]]":
          enable: true
          batch-size: 5000
      
  • influxdb_systemd_override_tpl

    • Pfad zur InfluxDB-Systemd-Override-Vorlage
    • Wenn Sie Ihre eigene Vorlage verwenden möchten
      • Fügen Sie Ihre Vorlage neben Ihr Playbook in ein templates-Verzeichnis hinzu
      • Verwenden Sie einen anderen Pfad als den Standardpfad
  • influxdb_systemd_override

    • ein Dictionary, das die Systemd-Override-Konfiguration darstellt
    • Die erste Ebene wird für den ini-Bereich verwendet
    • Die zweite Ebene wird für den Schlüssel/Wert verwendet
    • Beispiel:
      influxdb_systemd_override:
        Service:
          LimitNOFILE: 30000
      # Führt zu folgender Systemd-Override-Datei:
      # [Service]
      # LimitNOFILE=30000
      
  • influxdb_custom_logrotate_tpl

    • Pfad zur benutzerdefinierten logrotate-Vorlage für InfluxDB
    • Wenn Sie Ihre eigene Vorlage verwenden möchten
      • Fügen Sie Ihre Vorlage neben Ihr Playbook in ein templates-Verzeichnis hinzu
      • Verwenden Sie einen anderen Pfad als den Standardpfad
  • influxdb_custom_logrotate

    • eine mehrzeilige Zeichenfolge mit den Logrotate-Optionen für InfluxDB-Logs

    • überschreibt die Standardkonfiguration

    • /!\ Beachten Sie, dass, wenn Sie die Standard-logrotate-Konfiguration durch eine benutzerdefinierte ersetzen, die angewendete Konfiguration auch dann bestehen bleibt, wenn Sie diese Variable zurücksetzen

    • Beispiel:

      influxdb_custom_logrotate: |
        weekly
        missingok
        rotate 40
        compress
        notifempty
      # Führt zu folgender logrotate-Konfigurationsdatei:
      # /var/log/influxdb/*.log {
      #   weekly
      #   missingok
      #   rotate 40
      #   compress
      #   notifempty
      # }
      
  • influxdb_management_hostname

    • Standardwert aus influxdb_{user,policy,retention_policy} Modulen
    • Hostname für API-Aufrufe
  • influxdb_management_port

    • Standardwert aus influxdb_{user,policy,retention_policy} Modulen
    • HTTP-Port für API-Aufrufe
  • influxdb_management_validate_certs

    • Standardwert aus influxdb_{user,policy,retention_policy} Modulen
    • Müssen die SSL-Zertifikate für API-Aufrufe validiert werden?
  • influxdb_management_proxies

    • Standardwert aus influxdb_{user,policy,retention_policy} Modulen
    • HTTP(S)-Proxy, der für API-Aufrufe verwendet wird
  • influxdb_management_login_username

    • Benutzername für API-Aufrufe
    • Pflichtfeld, wenn influxdb_config['[http]']['auth-enabled'] gesetzt ist
    • Dieser Benutzer wird nur einmal erstellt und muss ein nicht bereits existierender Benutzer sein
    • Wenn Sie den Benutzer nach dessen Erstellung ändern möchten, verwenden Sie einen bereits existierenden admin-Benutzer.
  • influxdb_management_login_password

    • Passwort für API-Aufrufe
    • Pflichtfeld, wenn influxdb_config['[http]']['auth-enabled'] gesetzt ist
    • Wenn Sie das Passwort nach der Erstellung des admin-Benutzers ändern möchten:
      • Ändern Sie das Passwort über die CLI, bevor Sie es hier ändern
      • Alternativ könnten Sie es in influxdb_users_to_create ändern, bedenken Sie jedoch, dass in diesem Fall ein Fehler auftritt, wenn noch bestehende Benutzer überprüft werden müssen, es sollte jedoch funktionieren, wenn Sie Ihr Playbook ein zweites Mal ausführen.
  • influxdb_management_retries

    • Standardwert aus influxdb_{user,policy,retention_policy} Modulen
    • Anzahl der Wiederholungen für API-Aufrufe
  • influxdb_management_ssl

    • Standardwert aus influxdb_{user,policy,retention_policy} Modulen
    • SSL für API-Aufrufe verwenden
  • influxdb_management_timeout

    • Standardwert aus influxdb_{user,policy,retention_policy} Modulen
    • Timeout für API-Aufrufe
  • influxdb_management_udp_port

    • Standardwert aus influxdb_{user,policy,retention_policy} Modulen
    • UDP-Port für API-Aufrufe
  • influxdb_management_use_udp

    • Standardwert aus influxdb_{user,policy,retention_policy} Modulen
    • Müssen UDP für API-Aufrufe verwendet werden
  • influxdb_users_to_create

    • Liste von Diktaten zur Benutzererstellung

    • Siehe ansible doc für Pflichtoptionen und Versionskompatibilität

    • Berechtigungen werden durch eine benutzerdefinierte Bibliothek bereitgestellt, die mit dieser Rolle geliefert und mit diesem PR aktualisiert wurde

    • Das Fehlen des grants-Schlüssels entfernt alle GRANTS für den angegebenen Benutzer

    • Beispiel:

      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 der zu löschenden Benutzer
    • Beispiel:
      influxdb_users_to_delete:
        - test
      
  • influxdb_retention_policies_to_create

    • Liste der zu erstellenden Aufbewahrungsrichtlinien

    • Siehe ansible doc für Pflichtoptionen und Versionskompatibilität

    • Beispiel:

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

    • Liste der zu erstellenden Datenbanken
    • Beispiele:
    influxdb_databases_to_create:
      - db_test
    
  • influxdb_databases_to_delete

    • Liste der zu löschenden Datenbanken

    • Beispiele:

    influxdb_databases_to_delete:
      - db_test
    
  • influxdb_retention_policies_to_create

    • Liste von Diktaten zu den Aufbewahrungsrichtlinien

    • Löschung von Richtlinien wird derzeit nicht unterstützt

    • Beispiele:

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

    • Standard: true
    • Protokoll für API-Aufrufe nicht anzeigen, um das Auslaufen sensibler Informationen zu vermeiden
    • Auf false setzen für Debugging

Beispiel-Playbook

- hosts: influxdb
  roles:
    - rockandska.influxdb

Lokale Tests

Der bevorzugte Weg, die Rolle lokal zu testen, ist die Verwendung von Docker und molecule (v2.x). Sie müssen Docker auf Ihrem System installieren. Siehe "Erste Schritte" für ein Docker-Paket, das für Ihr System geeignet ist. Wir verwenden tox, um den Prozess des Testens auf mehreren Ansible-Versionen zu vereinfachen. Um tox zu installieren, führen Sie aus:

$ sudo pip install tox
# oder
$ pip install --user tox

Um Tests mit allen Ansible-Versionen auszuführen (WARNUNG: Dies kann einige Zeit in Anspruch nehmen)

$ tox

Um einen benutzerdefinierten Molekübefehl in einer benutzerdefinierten Umgebung nur mit dem Standardtest-Szenario auszuführen:

$ tox -e py27-ansible25 -- molecule test -s default

Für weitere Informationen über molekül besuchen Sie deren Docs.

Wenn Sie Tests auf einem Remote-Docker-Host durchführen möchten, geben Sie die DOCKER_HOST-Variable an, bevor Sie die tox-Tests ausführen.

Lizenz

BSD

Über das Projekt

InfluxDB installation / configuration

Installieren
ansible-galaxy install rockandska.influxdb
GitHub Repository
Lizenz
Unknown
Downloads
124
Besitzer