aboutsummaryrefslogtreecommitdiff
path: root/roles
diff options
context:
space:
mode:
authorGravatar Jonas Gunz <himself@jonasgunz.de> 2021-09-07 01:54:25 +0200
committerGravatar Jonas Gunz <himself@jonasgunz.de> 2021-09-07 01:54:25 +0200
commit2ccf20e70715acd02f86415a61341476ef2c2f14 (patch)
tree9dbf4ecc9a054f1588cea2e0557ef02b49ab5ac4 /roles
parent4000e16e20ae47423542db221b9ab636cf3d79b9 (diff)
downloadansible_collection-2ccf20e70715acd02f86415a61341476ef2c2f14.tar.gz
add influxdb
Diffstat (limited to 'roles')
-rw-r--r--roles/influxdb/README.md22
-rw-r--r--roles/influxdb/defaults/main.yml10
-rw-r--r--roles/influxdb/handlers/main.yml7
-rw-r--r--roles/influxdb/tasks/main.yml74
-rw-r--r--roles/influxdb/templates/influxdb.conf.j242
-rw-r--r--roles/influxdb/templates/influxdb.list.j24
6 files changed, 159 insertions, 0 deletions
diff --git a/roles/influxdb/README.md b/roles/influxdb/README.md
new file mode 100644
index 0000000..0cf028c
--- /dev/null
+++ b/roles/influxdb/README.md
@@ -0,0 +1,22 @@
+# kompetenzbolzen.stuff.influxdb
+
+example configuration
+
+```
+---
+influx:
+ https_enabled: true
+ https_cert: '/etc/ssl/certs/{{ ansible_facts.fqdn }}.pem'
+ https_key: '/etc/ssl/private/{{ ansible_facts.fqdn }}.key'
+
+influx_dbs:
+ - test1
+ - test2
+
+influx_users:
+ test1:
+ password: '1234'
+ grants:
+ - database: 'test1'
+ privilege: 'WRITE'
+```
diff --git a/roles/influxdb/defaults/main.yml b/roles/influxdb/defaults/main.yml
new file mode 100644
index 0000000..c32f9ca
--- /dev/null
+++ b/roles/influxdb/defaults/main.yml
@@ -0,0 +1,10 @@
+---
+influx:
+ https_enabled: false
+ https_cert: '/etc/ssl/certs/ssl-cert-snakeoil.pem'
+ https_key: '/etc/ssl/private/ssl-cert-snakeoil.key'
+
+influx_dbs: []
+
+influx_users: {}
+
diff --git a/roles/influxdb/handlers/main.yml b/roles/influxdb/handlers/main.yml
new file mode 100644
index 0000000..45970c0
--- /dev/null
+++ b/roles/influxdb/handlers/main.yml
@@ -0,0 +1,7 @@
+---
+- name: Restart influxdb
+ systemd:
+ name: influxdb
+ state: restarted
+ enabled: yes
+ become: yes
diff --git a/roles/influxdb/tasks/main.yml b/roles/influxdb/tasks/main.yml
new file mode 100644
index 0000000..0ccda4c
--- /dev/null
+++ b/roles/influxdb/tasks/main.yml
@@ -0,0 +1,74 @@
+---
+- name: Install GnuPG
+ apt:
+ update_cache: yes
+ name:
+ - gnupg2
+ become: yes
+
+- name: APT Key
+ apt_key:
+ url: 'https://repos.influxdata.com/influxdb.key'
+ state: present
+ become: yes
+
+- name: Install repos
+ template:
+ src: influxdb.list.j2
+ dest: /etc/apt/sources.list.d/influxdb.list
+ become: yes
+
+- name: Install Packages
+ apt:
+ update_cache: yes
+ name:
+ - curl
+ - python3-influxdb
+ - influxdb
+ become: yes
+
+- name: InfluxDB user setup
+ user:
+ name: influxdb
+ groups:
+ - ssl-cert
+ append: yes
+ become: yes
+
+- name: Install configuration
+ template:
+ src: influxdb.conf.j2
+ dest: /etc/influxdb/influxdb.conf
+ become: yes
+ notify: Restart influxdb
+
+- name: Check for changed cert
+ command: /bin/true
+ when:
+ - cert_changed
+ notify:
+ - Restart influxdb
+
+- name: create Influx DBs
+ influxdb_database:
+ database_name: '{{ item }}'
+ hostname: localhost
+ port: 8086
+ ssl: yes
+ validate_certs: no
+ state: present
+ with_items: '{{ influx_dbs }}'
+ become: yes
+
+- name: create Influx Users
+ influxdb_user:
+ user_name: '{{ item.key }}'
+ user_password: '{{ item.value.password }}'
+ grants: '{{ item.value.grants }}'
+ hostname: localhost
+ port: 8086
+ ssl: yes
+ validate_certs: no
+ state: present
+ with_dict: '{{ influx_users }}'
+ become: yes
diff --git a/roles/influxdb/templates/influxdb.conf.j2 b/roles/influxdb/templates/influxdb.conf.j2
new file mode 100644
index 0000000..6d290bf
--- /dev/null
+++ b/roles/influxdb/templates/influxdb.conf.j2
@@ -0,0 +1,42 @@
+# Managed by Ansible. Do not change.
+
+[meta]
+ dir = "/var/lib/influxdb/meta"
+
+[data]
+ dir = "/var/lib/influxdb/data"
+ wal-dir = "/var/lib/influxdb/wal"
+ series-id-set-cache-size = 100
+
+[coordinator]
+
+[retention]
+
+[shard-precreation]
+
+[monitor]
+
+[http]
+ enabled = true
+ bind-address = ":8086"
+
+ https-enabled = {{ influx.https_enabled | lower }}
+
+ https-certificate = "{{ influx.https_cert }}"
+ https-private-key = "{{ influx.https_key }}"
+
+[logging]
+
+[subscriber]
+
+[[graphite]]
+
+[[collectd]]
+
+[[opentsdb]]
+
+[[udp]]
+
+[continuous_queries]
+
+[tls]
diff --git a/roles/influxdb/templates/influxdb.list.j2 b/roles/influxdb/templates/influxdb.list.j2
new file mode 100644
index 0000000..24fca97
--- /dev/null
+++ b/roles/influxdb/templates/influxdb.list.j2
@@ -0,0 +1,4 @@
+# vi: ft=debsources
+# This file is managed by Ansible. Do not change.
+
+deb https://repos.influxdata.com/debian {{ ansible_facts.distribution_release }} stable