community.general.influxdb_retention_policy – Manage InfluxDB retention policies

Note

This plugin is part of the community.general collection (version 3.4.0).

To install it use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.influxdb_retention_policy.

Synopsis

  • Manage InfluxDB retention policies.

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 2.6

  • influxdb >= 0.9

  • requests

Parameters

Parameter Choices/Defaults Comments
database_name
string / required
Name of the database.
default
boolean
    Choices:
  • no ←
  • yes
Sets the retention policy as default retention policy.
duration
string
Determines how long InfluxDB should keep the data. If specified, it should be INF or at least one hour. If not specified, INF is assumed. Supports complex duration expressions with multiple units.
Required only if state is set to present.
hostname
string
Default:
"localhost"
The hostname or IP address on which InfluxDB server is listening.
Since Ansible 2.5, defaulted to localhost.
password
string
Default:
"root"
Password that will be used to authenticate against InfluxDB server.
Alias login_password added in Ansible 2.5.

aliases: login_password
path
string
added in 0.2.0 of community.general
The path on which InfluxDB server is accessible
Only available when using python-influxdb >= 5.1.0
policy_name
string / required
Name of the retention policy.
port
integer
Default:
8086
The port on which InfluxDB server is listening
proxies
dictionary
HTTP(S) proxy to use for Requests to connect to InfluxDB server.
replication
integer
Determines how many independent copies of each point are stored in the cluster.
Required only if state is set to present.
retries
integer
Default:
3
Number of retries client will try before aborting.
0 indicates try until success.
Only available when using python-influxdb >= 4.1.0
shard_group_duration
string
added in 2.0.0 of community.general
Determines the time range covered by a shard group. If specified it must be at least one hour. If none, it's determined by InfluxDB by the rentention policy's duration. Supports complex duration expressions with multiple units.
ssl
boolean
    Choices:
  • no ←
  • yes
Use https instead of http to connect to InfluxDB server.
state
string
added in 3.1.0 of community.general
    Choices:
  • absent
  • present ←
State of the retention policy.
timeout
integer
Number of seconds Requests will wait for client to establish a connection.
udp_port
integer
Default:
4444
UDP port to connect to InfluxDB server.
use_udp
boolean
    Choices:
  • no ←
  • yes
Use UDP to connect to InfluxDB server.
username
string
Default:
"root"
Username that will be used to authenticate against InfluxDB server.
Alias login_username added in Ansible 2.5.

aliases: login_username
validate_certs
boolean
    Choices:
  • no
  • yes ←
If set to no, the SSL certificates will not be validated.
This should only set to no used on personally controlled sites using self-signed certificates.

Examples

# Example influxdb_retention_policy command from Ansible Playbooks
- name: Create 1 hour retention policy
  community.general.influxdb_retention_policy:
      hostname: "{{ influxdb_ip_address }}"
      database_name: "{{ influxdb_database_name }}"
      policy_name: test
      duration: 1h
      replication: 1
      ssl: yes
      validate_certs: yes
      state: present

- name: Create 1 day retention policy with 1 hour shard group duration
  community.general.influxdb_retention_policy:
      hostname: "{{ influxdb_ip_address }}"
      database_name: "{{ influxdb_database_name }}"
      policy_name: test
      duration: 1d
      replication: 1
      shard_group_duration: 1h
      state: present

- name: Create 1 week retention policy with 1 day shard group duration
  community.general.influxdb_retention_policy:
      hostname: "{{ influxdb_ip_address }}"
      database_name: "{{ influxdb_database_name }}"
      policy_name: test
      duration: 1w
      replication: 1
      shard_group_duration: 1d
      state: present

- name: Create infinite retention policy with 1 week of shard group duration
  community.general.influxdb_retention_policy:
      hostname: "{{ influxdb_ip_address }}"
      database_name: "{{ influxdb_database_name }}"
      policy_name: test
      duration: INF
      replication: 1
      ssl: no
      validate_certs: no
      shard_group_duration: 1w
      state: present

- name: Create retention policy with complex durations
  community.general.influxdb_retention_policy:
      hostname: "{{ influxdb_ip_address }}"
      database_name: "{{ influxdb_database_name }}"
      policy_name: test
      duration: 5d1h30m
      replication: 1
      ssl: no
      validate_certs: no
      shard_group_duration: 1d10h30m
      state: present

- name: Drop retention policy
  community.general.influxdb_retention_policy:
      hostname: "{{ influxdb_ip_address }}"
      database_name: "{{ influxdb_database_name }}"
      policy_name: test
      state: absent

Authors

  • Kamil Szczygiel (@kamsz)