--- - name: Create group ansible.builtin.group: name: mysqld_exporter system: true - name: Create user ansible.builtin.user: name: mysqld_exporter comment: Prometheus MySQL Exporter group: mysqld_exporter groups: hostkey create_home: false home: /var/empty shell: /sbin/nologin system: true - name: Download package ansible.builtin.get_url: url: >- {{ "https://github.com/prometheus/mysqld_exporter/releases/download/v" + mysqld_exporter_version + "/" + mysqld_exporter_pkg + ".tar.gz" }} dest: "/usr/local/src/{{ mysqld_exporter_pkg }}.tar.gz" mode: "0644" owner: root group: "{{ ansible_wheel }}" - name: Extract package ansible.builtin.unarchive: src: "/usr/local/src/{{ mysqld_exporter_pkg }}.tar.gz" dest: /usr/local/src owner: root group: "{{ ansible_wheel }}" creates: "/usr/local/src/{{ mysqld_exporter_pkg }}" remote_src: true - name: Copy binary ansible.builtin.copy: dest: /usr/local/bin/mysqld_exporter src: "/usr/local/src/{{ mysqld_exporter_pkg }}/mysqld_exporter" mode: "0755" owner: root group: "{{ ansible_wheel }}" remote_src: true - name: Create config directory ansible.builtin.file: path: /etc/mysqld_exporter state: directory mode: "0755" owner: root group: "{{ ansible_wheel }}" - name: Create web-config ansible.builtin.template: dest: /etc/mysqld_exporter/web-config.yml src: web-config.yml.j2 mode: "0644" owner: root group: "{{ ansible_wheel }}" notify: Restart mysqld_exporter - name: Create credentials config ansible.builtin.template: dest: /etc/mysqld_exporter/my.cnf src: my.cnf.j2 mode: "0640" owner: root group: mysqld_exporter notify: Restart mysqld_exporter - name: Create service file ansible.builtin.copy: dest: /etc/systemd/system/mysqld_exporter.service src: mysqld_exporter.service mode: "0644" owner: root group: "{{ ansible_wheel }}" notify: Restart mysqld_exporter - name: Enable service ansible.builtin.service: name: mysqld_exporter state: started enabled: true