Ansible Role linuxfabrik.lfops.influxdb¶
This role installs and configures InfluxDB.
Available since LFOps 2.0.0.
Dependent Roles¶
Any LFOps playbook that installs this role runs these for you. Optional ones can be disabled via the playbook's skip variables.
influxdbandrequestsmust be installed into a Python 3 virtual environment in/opt/python-venv/influxdb(role: linuxfabrik.lfops.python_venv).- On Rocky 9+, the EPEL repository (role: linuxfabrik.lfops.repo_epel) and the CRB ("Code Ready Builder") repository (role: linuxfabrik.lfops.repo_baseos) must be enabled so
python3-virtualenvcan be installed. - The official InfluxDB repository must be enabled (role: linuxfabrik.lfops.repo_influxdb).
Tags¶
influxdb
- Installs and configures InfluxDB.
- Triggers: influxdb.service restart.
influxdb:configure
- Deploys the /etc/influxdb/influxdb.conf config file.
- Triggers: influxdb.service restart.
influxdb:database
- Creates or deletes InfluxDB databases.
- Triggers: none.
influxdb:dump
- Configures dumps (backups) of the InfluxDB server.
- Triggers: none.
influxdb:state
- Manages the state of the InfluxDB service.
- Triggers: none.
influxdb:user
- Creates, updates or deletes InfluxDB users.
- Triggers: none.
Mandatory Role Variables¶
influxdb__admin_login
- The user account for the database administrator.
-
Subkeys:
-
username:- Mandatory. Username.
- Type: String.
-
password:- Mandatory. Password.
- Type: String.
-
old_password:- Optional. The old password. Set this when changing the password.
- Type: String.
-
Example:
# mandatory
influxdb__admin_login:
username: 'influxdb-admin'
password: 'linuxfabrik'
# old_password: 'previous-linuxfabrik'
Optional Role Variables¶
influxdb__conf_continuous_queries_log_enabled
- Controls whether queries are logged when executed by the continuous query service. Make sure to also set
influxdb__conf_logging_level: 'debug'if this is enabled. - Type: Bool.
- Default:
false
influxdb__conf_continuous_queries_run_interval
- Interval for how often continuous queries will be checked if they need to run.
- Type: String.
- Default:
'1s'
influxdb__conf_https
- Determines whether HTTPS is enabled or not. Also have a look at
influxdb__validate_certs. -
Subkeys:
-
certificate_path:- Mandatory. The path of the certificate file used for SSL encryption.
- Type: String.
-
privatekey_path:- Mandatory. The path of the certificate key file used for SSL encryption.
- Type: String.
-
-
Default: unset
influxdb__conf_log_queries_after
- The time threshold when a query will be logged as a slow query. Setting the value to 0 disables the slow query logging.
- Type: String.
- Default:
'0s'
influxdb__conf_logging_level
- Determines which level of logs will be emitted. Possible options:
'error','warn','info','debug'. - Type: String.
- Default:
'warn'
influxdb__databases__host_var / influxdb__databases__group_var
- List of InfluxDB databases that should be created or deleted. For the usage in
host_vars/group_vars(can only be used in one group at a time). -
Subkeys:
-
name:- Mandatory. Name of the database.
- Type: String.
-
state:- Optional. The state of the database. Possible options:
present,absent. - Type: String.
- Default:
'present'
- Optional. The state of the database. Possible options:
-
retention:- Mandatory. Determines how long InfluxDB should keep the data. If specified, it should be
INFor at least one hour. - Type: String.
- Mandatory. Determines how long InfluxDB should keep the data. If specified, it should be
-
-
Type: List of dictionaries.
- Default:
[]
influxdb__dump_timer_enabled
- Enables or disables the influxdb-dump timer, analogous to
systemctl enable/disable --now. - Type: Bool.
- Default:
true
influxdb__service_enabled
- Enables or disables the influxdb service, analogous to
systemctl enable/disable --now. - Type: Bool.
- Default:
true
influxdb__users__host_var / influxdb__users__group_var
- List of InfluxDB users that should be created, updated or deleted. For the usage in
host_vars/group_vars(can only be used in one group at a time). -
Subkeys:
-
name:- Mandatory. The name of the account.
- Type: String.
-
password:- Mandatory. The password of the account.
- Type: String.
-
state:- Optional. The state of the account. Possible options:
present,absent. - Type: String.
- Default:
'present'
- Optional. The state of the account. Possible options:
-
admin:- Optional. Whether the user should be in the admin role or not.
- Type: Bool.
- Default:
false
-
grants:- Optional. Takes a list of dicts containing the
databaseandprivilegekeys. - Type: List of dictionaries.
- Default: omit
- Optional. Takes a list of dicts containing the
-
-
Type: List of dictionaries.
- Default:
[]
influxdb__validate_certs
- If set to
false, the role will not validate SSL certificates when connecting to InfluxDB. This is useful when using self-signed certificates. - Type: Bool.
- Default:
true
Example:
# optional
influxdb__conf_continuous_queries_log_enabled: true
influxdb__conf_continuous_queries_run_interval: '1s'
influxdb__conf_https:
certificate_path: '/etc/ssl/ssl-certificate.crt'
private_key_path: '/etc/ssl/ssl-certificate.key'
influxdb__conf_log_queries_after: '0s'
influxdb__conf_logging_level: 'warn'
influxdb__dump_timer_enabled: true
influxdb__databases__host_var:
- name: 'database1'
state: 'present'
retention: '216d'
influxdb__users__host_var:
- name: 'user1'
password: 'linuxfabrik'
state: 'present'
admin: false
grants:
- database: 'database1'
privilege: 'ALL'
influxdb__service_enabled: true
influxdb__validate_certs: false