Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,7 @@ influxdb_udp_settings: |
bind-address = "{{ influxdb_http_ip }}:8090"
database = "openwisp2"
retention-policy = "short"
# When "influxdb_data_dir" is set to a path different from the default
# (/var/lib/influxdb), InfluxDB will store its data in the specified directory.
influxdb_data_dir: "/opt/influxdb"
```
1 change: 1 addition & 0 deletions defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ influxdb_http_port: 8086
influxdb_query_logging: false
influxdb_user_username: admin
influxdb_index_version: inmem
influxdb_data_dir: /var/lib/influxdb
influxdb_udp_mode: false
influxdb_udp_settings: |
# For writing data with the "default" retention policy
Expand Down
32 changes: 32 additions & 0 deletions molecule/resources/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,35 @@
failed_when: '"results" not in db_created_response.stdout'
changed_when: false
when: influxdb_user_password is not defined or not influxdb_user_password | bool

- name: Test influxdb data directory configuration
block:
- name: Read InfluxDB configuration file
slurp:
src: /etc/influxdb/influxdb.conf
register: influxdb_config_content

- name: Test default data directory when variable not changed
block:
- name: Read InfluxDB configuration file
slurp:
src: /etc/influxdb/influxdb.conf
register: influxdb_config_content

- name: Verify default data directory is present
assert:
that:
- "'/var/lib/influxdb' in (influxdb_config_content.content | b64decode)"
fail_msg: "InfluxDB should use default /var/lib/influxdb when influxdb_data_dir is not defined or unchanged"
success_msg: "InfluxDB correctly using default data directory /var/lib/influxdb"
when: influxdb_data_dir is not defined or influxdb_data_dir == '/var/lib/influxdb'

- name: Verify data directory has been updated in configuration
assert:
that:
- influxdb_data_dir is defined
- "'/var/lib/influxdb' not in (influxdb_config_content.content | b64decode)"
- "influxdb_data_dir in (influxdb_config_content.content | b64decode)"
fail_msg: "InfluxDB configuration should use {{ influxdb_data_dir | default('/var/lib/influxdb') }} instead of default /var/lib/influxdb"
success_msg: "InfluxDB data directory correctly configured as {{ influxdb_data_dir | default('/var/lib/influxdb') }}"
when: influxdb_data_dir is defined and influxdb_data_dir != '/var/lib/influxdb'
56 changes: 56 additions & 0 deletions tasks/data_dir.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
- name: Stop influxdb service
service:
name: influxdb
state: stopped
tags: [ influxdb ]

- name: Create influxdb data directory if it does not exist
file:
path: "{{ influxdb_data_dir }}"
state: directory
owner: influxdb
group: influxdb
tags: [ influxdb ]

- name: Update influxdb meta directory
ansible.builtin.lineinfile:
path: /etc/influxdb/influxdb.conf
regexp: '^\s*dir\s*=\s*".*/meta"'
line: ' dir = "{{ influxdb_data_dir }}/meta"'
insertafter: '\[meta\]'
notify: restart influxdb
tags: [ influxdb ]

- name: Update influxdb data directory
ansible.builtin.lineinfile:
path: /etc/influxdb/influxdb.conf
regexp: '^\s*dir\s*=\s*".*/data"'
line: ' dir = "{{ influxdb_data_dir }}/data"'
insertafter: '\[data\]'
notify: restart influxdb
tags: [ influxdb ]

- name: Update influxdb wal directory
ansible.builtin.lineinfile:
path: /etc/influxdb/influxdb.conf
regexp: '^\s*wal-dir\s*=\s*".*/wal"'
line: ' wal-dir = "{{ influxdb_data_dir }}/wal"'
insertafter: '\[data\]'
notify: restart influxdb
tags: [ influxdb ]

- name: Start influxdb service
service:
name: influxdb
state: started
tags: [ influxdb ]

- name: Set influxdb dir permissions
file:
path: "{{ influxdb_data_dir }}"
state: directory
owner: influxdb
group: influxdb
recurse: true
tags: [ influxdb ]
4 changes: 4 additions & 0 deletions tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,10 @@
enabled: true
tags: [influxdb]

- import_tasks: data_dir.yml
when: influxdb_data_dir is defined and influxdb_data_dir != '/var/lib/influxdb'
tags: [influxdb]

- import_tasks: authentication.yml
tags: [influxdb]

Expand Down