--- - name: Create amd_exporter group become: true ansible.builtin.group: name: "{{ amd_exporter_user }}" state: present system: true - name: Create amd_exporter user become: true ansible.builtin.user: name: "{{ amd_exporter_user }}" group: "{{ amd_exporter_user }}" home: "{{ amd_exporter_user_home }}" create_home: true shell: /usr/sbin/nologin system: true - name: Create amd_exporter install directory become: true ansible.builtin.file: path: "{{ item }}" state: directory owner: "{{ amd_exporter_user }}" group: "{{ amd_exporter_user }}" mode: "0755" loop: - "{{ amd_exporter_install_dir }}" - "{{ amd_exporter_install_dir }}/logs" - name: Copy amd_gpu_exporter script become: true ansible.builtin.copy: src: amd_gpu_exporter.py dest: "{{ amd_exporter_script_path }}" owner: "{{ amd_exporter_user }}" group: "{{ amd_exporter_user }}" mode: "0755" notify: - Restart amd_exporter - name: Create Python virtual environment become: true ansible.builtin.command: cmd: "{{ amd_exporter_python_version }} -m venv {{ amd_exporter_venv_path }}" creates: "{{ amd_exporter_venv_path }}/bin/activate" - name: Install Python dependencies in venv become: true ansible.builtin.pip: name: - prometheus-client - requests virtualenv: "{{ amd_exporter_venv_path }}" state: present - name: Fix ownership of amd_exporter directory become: true ansible.builtin.file: path: "{{ amd_exporter_install_dir }}" owner: "{{ amd_exporter_user }}" group: "{{ amd_exporter_user }}" recurse: true - name: Generate amd_exporter systemd service become: true ansible.builtin.template: src: amdgpu_exporter.service.j2 dest: "/etc/systemd/system/{{ amd_exporter_service_name }}.service" owner: root group: root mode: "0644" notify: - Reload systemd daemon - Restart amd_exporter - name: Enable amd_exporter service become: true ansible.builtin.systemd: name: "{{ amd_exporter_service_name }}" enabled: true state: started