--- - name: Create llama_exporter group become: true ansible.builtin.group: name: "{{ llama_exporter_user }}" state: present system: true - name: Create llama_exporter user become: true ansible.builtin.user: name: "{{ llama_exporter_user }}" group: "{{ llama_exporter_user }}" home: "{{ llama_exporter_user_home }}" create_home: true shell: /usr/sbin/nologin system: true - name: Create llama_exporter install directory become: true ansible.builtin.file: path: "{{ item }}" state: directory owner: "{{ llama_exporter_user }}" group: "{{ llama_exporter_user }}" mode: "0755" loop: - "{{ llama_exporter_install_dir }}" - "{{ llama_exporter_install_dir }}/logs" - name: Copy llama_exporter script become: true ansible.builtin.copy: src: llama_exporter.py dest: "{{ llama_exporter_script_path }}" owner: "{{ llama_exporter_user }}" group: "{{ llama_exporter_user }}" mode: "0755" notify: - Restart llama_exporter - name: Create Python virtual environment become: true ansible.builtin.command: cmd: "{{ ansible_facts['python']['executable'] }} -m venv {{ llama_exporter_venv_path }}" creates: "{{ llama_exporter_venv_path }}/bin/activate" - name: Install Python dependencies in llama_exporter venv become: true ansible.builtin.pip: name: - prometheus-client - requests virtualenv: "{{ llama_exporter_venv_path }}" state: present - name: Fix ownership of llama_exporter directory become: true ansible.builtin.file: path: "{{ llama_exporter_install_dir }}" owner: "{{ llama_exporter_user }}" group: "{{ llama_exporter_user }}" recurse: true - name: Generate llama_exporter systemd service become: true ansible.builtin.template: src: llama_exporter.service.j2 dest: "/etc/systemd/system/{{ llama_exporter_service_name }}.service" owner: root group: root mode: "0644" notify: - Reload systemd daemon - Restart llama_exporter - name: Enable llama_exporter service become: true ansible.builtin.systemd: name: "{{ llama_exporter_service_name }}" enabled: true state: started