rockandska.influxdb
ansible-role-influxdb
Ansible-Rolle zur Installation/Konfiguration von InfluxDB aus den InfluxDB-Binärdateien.
Verfügbar auf Ansible Galaxy
Ansible Galaxy:
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
- sollte eine InfluxDB-Version sein, die auf https://dl.influxdata.com/influxdb/releases verfügbar ist
- alte Versionen werden nicht auf der Download-Seite angezeigt, sind aber über direkte Links verfügbar
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
- Fügen Sie Ihre Vorlage neben Ihr Playbook in ein
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
- Fügen Sie Ihre Vorlage neben Ihr Playbook in ein
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
- Fügen Sie Ihre Vorlage neben Ihr Playbook in ein
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 alleGRANTS
für den angegebenen BenutzerBeispiel:
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
ansible-galaxy install rockandska.influxdb