--- - name: copy config file ansible.builtin.template: src: influxdb.conf.j2 dest: /etc/influxdb/influxdb.conf owner: root group: root mode: 0644 notify: restart influxdb tags: influxdb - name: start and enable service ansible.builtin.service: name: influxdb state: started enabled: yes tags: influxdb - name: wait http api is up ansible.builtin.wait_for: port: 8086 timeout: 10 tags: influxdb - name: create databases community.general.influxdb_database: database_name: '{{ item }}' username: '{{ influxdb_api_user }}' password: '{{ influxdb_api_password }}' loop: '{{ influxdb_databases }}' tags: influxdb - name: create retention policies community.general.influxdb_retention_policy: policy_name: '{{ item.name }}' database_name: '{{ item.database }}' duration: '{{ item.duration }}' replication: '{{ item.replication|default(1) }}' default: '{{ item.default|default(False) }}' username: '{{ influxdb_api_user }}' password: '{{ influxdb_api_password }}' loop: '{{ influxdb_retention_policies }}' tags: influxdb - name: create users community.general.influxdb_user: user_name: '{{ item.name }}' user_password: '{{ item.password }}' admin: '{{ item.admin|default(false) }}' grants: '{{ item.grants|default([]) }}' username: '{{ influxdb_api_user }}' password: '{{ influxdb_api_password }}' loop: '{{ influxdb_users }}' loop_control: label: '{{ item.name }}' when: item.state is not defined or item.state != 'absent' tags: influxdb - name: delete users community.general.influxdb_user: user_name: '{{ item.name }}' username: '{{ influxdb_api_user }}' password: '{{ influxdb_api_password }}' state: absent loop: '{{ influxdb_users }}' loop_control: label: '{{ item.name }}' when: item.state is defined and item.state == 'absent' tags: influxdb