community.general.influxdb_user module – Manage InfluxDB users

Note

This module is part of the community.general collection (version 4.8.3).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

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

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

Synopsis

  • Manage InfluxDB users.

Requirements

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

  • python >= 2.6

  • influxdb >= 0.9

Parameters

Parameter

Comments

admin

boolean

Whether the user should be in the admin role or not.

Since version 2.8, the role will also be updated.

Choices:

  • no ← (default)

  • yes

grants

list / elements=dictionary

Privileges to grant to this user.

Takes a list of dicts containing the “database” and “privilege” keys.

If this argument is not provided, the current grants will be left alone.

If an empty list is provided, all grants for the user will be removed.

hostname

string

The hostname or IP address on which InfluxDB server is listening.

Since Ansible 2.5, defaulted to localhost.

Default: “localhost”

password

aliases: login_password

string

Password that will be used to authenticate against InfluxDB server.

Alias login_password added in Ansible 2.5.

Default: “root”

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

port

integer

The port on which InfluxDB server is listening

Default: 8086

proxies

dictionary

HTTP(S) proxy to use for Requests to connect to InfluxDB server.

retries

integer

Number of retries client will try before aborting.

0 indicates try until success.

Only available when using python-influxdb >= 4.1.0

Default: 3

ssl

boolean

Use https instead of http to connect to InfluxDB server.

Choices:

  • no ← (default)

  • yes

state

string

State of the user.

Choices:

  • absent

  • present ← (default)

timeout

integer

Number of seconds Requests will wait for client to establish a connection.

udp_port

integer

UDP port to connect to InfluxDB server.

Default: 4444

use_udp

boolean

Use UDP to connect to InfluxDB server.

Choices:

  • no ← (default)

  • yes

user_name

string / required

Name of the user.

user_password

string

Password to be set for the user.

username

aliases: login_username

string

Username that will be used to authenticate against InfluxDB server.

Alias login_username added in Ansible 2.5.

Default: “root”

validate_certs

boolean

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.

Choices:

  • no

  • yes ← (default)

Examples

- name: Create a user on localhost using default login credentials
  community.general.influxdb_user:
    user_name: john
    user_password: s3cr3t

- name: Create a user on localhost using custom login credentials
  community.general.influxdb_user:
    user_name: john
    user_password: s3cr3t
    login_username: "{{ influxdb_username }}"
    login_password: "{{ influxdb_password }}"

- name: Create an admin user on a remote host using custom login credentials
  community.general.influxdb_user:
    user_name: john
    user_password: s3cr3t
    admin: yes
    hostname: "{{ influxdb_hostname }}"
    login_username: "{{ influxdb_username }}"
    login_password: "{{ influxdb_password }}"

- name: Create a user on localhost with privileges
  community.general.influxdb_user:
    user_name: john
    user_password: s3cr3t
    login_username: "{{ influxdb_username }}"
    login_password: "{{ influxdb_password }}"
    grants:
      - database: 'collectd'
        privilege: 'WRITE'
      - database: 'graphite'
        privilege: 'READ'

- name: Destroy a user using custom login credentials
  community.general.influxdb_user:
    user_name: john
    login_username: "{{ influxdb_username }}"
    login_password: "{{ influxdb_password }}"
    state: absent

Authors

  • Vitaliy Zhhuta (@zhhuta)