--- - name: Create group ansible.builtin.group: name: nginx_exporter system: true - name: Create user ansible.builtin.user: name: nginx_exporter comment: Prometheus NGINX Exporter group: nginx_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/nginxinc/nginx-prometheus-exporter/releases/" + "download/v" + nginx_exporter_version + "/" + nginx_exporter_pkg + ".tar.gz" }} dest: "/usr/local/src/{{ nginx_exporter_pkg }}.tar.gz" mode: "0644" owner: root group: "{{ ansible_wheel }}" - name: Create directory for extracing package ansible.builtin.file: path: "/usr/local/src/{{ nginx_exporter_pkg }}" state: directory mode: "0755" owner: root group: "{{ ansible_wheel }}" - name: Extract nginx_exporter ansible.builtin.unarchive: src: "/usr/local/src/{{ nginx_exporter_pkg }}.tar.gz" dest: "/usr/local/src/{{ nginx_exporter_pkg }}" owner: root group: "{{ ansible_wheel }}" creates: "/usr/local/src/{{ nginx_exporter_pkg }}/nginx-prometheus-exporter" remote_src: true - name: Copy binary ansible.builtin.copy: dest: "/usr/local/bin/nginx_exporter" src: "/usr/local/src/{{ nginx_exporter_pkg }}/nginx-prometheus-exporter" mode: "0755" owner: root group: "{{ ansible_wheel }}" remote_src: true notify: Restart nginx_exporter - name: Create config directory ansible.builtin.file: path: /etc/nginx_exporter state: directory mode: "0755" owner: root group: "{{ ansible_wheel }}" - name: Create web-config ansible.builtin.template: dest: /etc/nginx_exporter/web-config.yml src: web-config.yml.j2 mode: "0644" owner: root group: "{{ ansible_wheel }}" notify: Restart nginx_exporter - name: Create service file ansible.builtin.template: dest: /etc/systemd/system/nginx_exporter.service src: nginx_exporter.service.j2 mode: "0644" owner: root group: "{{ ansible_wheel }}" notify: Restart nginx_exporter - name: Enable service ansible.builtin.service: name: nginx_exporter state: started enabled: true