From d0f3d828df38f3cab4f7a66a4aa82484426399dc Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Fri, 27 Sep 2024 16:14:10 +0200 Subject: [PATCH] Add influxdb role --- roles/influxdb/files/config.toml | 2 ++ roles/influxdb/files/influxdb.initd | 16 +++++++++ roles/influxdb/handlers/main.yml | 11 ++++++ roles/influxdb/tasks/main.yml | 48 ++++++++++++++++++++++++++ roles/influxdb/templates/nginx.conf.j2 | 12 +++++++ 5 files changed, 89 insertions(+) create mode 100644 roles/influxdb/files/config.toml create mode 100644 roles/influxdb/files/influxdb.initd create mode 100644 roles/influxdb/handlers/main.yml create mode 100644 roles/influxdb/tasks/main.yml create mode 100644 roles/influxdb/templates/nginx.conf.j2 diff --git a/roles/influxdb/files/config.toml b/roles/influxdb/files/config.toml new file mode 100644 index 0000000..e90f650 --- /dev/null +++ b/roles/influxdb/files/config.toml @@ -0,0 +1,2 @@ +reporting-disabled = true +http-bind-address = "localhost:8087" diff --git a/roles/influxdb/files/influxdb.initd b/roles/influxdb/files/influxdb.initd new file mode 100644 index 0000000..48b25b2 --- /dev/null +++ b/roles/influxdb/files/influxdb.initd @@ -0,0 +1,16 @@ +#!/sbin/openrc-run + +command="influxd" +command_background="yes" +command_user="${command_user:-influxdb:influxdb}" +directory="${data_path:-/var/lib/influxdb}" +pidfile="/run/$RC_SVCNAME.pid" +start_stop_daemon_args="--stdout-logger /usr/bin/logger" + +depend() { + use logger +} + +start_pre() { + checkpath -d -o "$command_user" -m755 "${data_path:-/var/lib/influxdb}" +} diff --git a/roles/influxdb/handlers/main.yml b/roles/influxdb/handlers/main.yml new file mode 100644 index 0000000..c866f9e --- /dev/null +++ b/roles/influxdb/handlers/main.yml @@ -0,0 +1,11 @@ +- name: restart influxdb + service: + name: influxdb + state: restarted + when: "'handler' not in ansible_skip_tags" + +- name: reload nginx + service: + name: nginx + state: reloaded + when: "'handler' not in ansible_skip_tags" diff --git a/roles/influxdb/tasks/main.yml b/roles/influxdb/tasks/main.yml new file mode 100644 index 0000000..3b1f4d9 --- /dev/null +++ b/roles/influxdb/tasks/main.yml @@ -0,0 +1,48 @@ +- name: Create influxdb group + group: + name: influxdb + system: yes + +- name: Create influxdb user + user: + name: influxdb + system: yes + home: /var/lib/influxdb + shell: /sbin/nologin + +- name: Install tar + package: + name: tar + +- name: Install influxdb + unarchive: + src: https://download.influxdata.com/influxdb/releases/influxdb2-{{ influxdb_version }}_linux_amd64.tar.gz + dest: / + remote_src: yes + extra_opts: + - '--strip-components=1' + notify: restart influxdb + +- name: Install influxdb initscript + copy: + dest: /etc/init.d/influxdb + src: influxdb.initd + mode: 0755 + notify: restart influxdb + +- name: Configure influxdb + copy: + dest: /var/lib/influxdb/ + src: config.toml + +- name: Set up nginx site + template: + dest: '/etc/nginx/http.d/influxdb.conf' + src: 'nginx.conf.j2' + notify: reload nginx + +- name: Enable influxdb + service: + name: influxdb + enabled: yes + state: started diff --git a/roles/influxdb/templates/nginx.conf.j2 b/roles/influxdb/templates/nginx.conf.j2 new file mode 100644 index 0000000..c88aa30 --- /dev/null +++ b/roles/influxdb/templates/nginx.conf.j2 @@ -0,0 +1,12 @@ +server { + listen 8086 ssl; + listen [::]:8086 ssl; + server_name {{ dns_name }}; + + ssl_certificate /etc/letsencrypt/live/{{ dns_name }}/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/{{ dns_name }}/privkey.pem; + + location / { + proxy_pass http://localhost:8087; + } +}