--- - name: Create Promtail directories ansible.builtin.file: path: "{{ item }}" state: directory owner: monitoring group: monitoring mode: "0755" loop: - /etc/promtail - /var/lib/promtail - name: Check if Promtail is installed ansible.builtin.stat: path: /usr/local/bin/promtail register: promtail_binary - name: Download Promtail ansible.builtin.get_url: url: "https://github.com/grafana/loki/releases/download/v{{ promtail_version }}/promtail-linux-{{ go_arch }}.zip" dest: "/tmp/promtail-{{ promtail_version }}.zip" mode: "0644" when: not promtail_binary.stat.exists - name: Install unzip ansible.builtin.apt: name: unzip state: present when: ansible_os_family == "Debian" - name: Extract Promtail ansible.builtin.unarchive: src: "/tmp/promtail-{{ promtail_version }}.zip" dest: /tmp remote_src: true when: not promtail_binary.stat.exists - name: Install Promtail binary ansible.builtin.copy: src: /tmp/promtail-linux-{{ go_arch }} dest: /usr/local/bin/promtail mode: "0755" remote_src: true notify: Restart promtail when: not promtail_binary.stat.exists - name: Deploy Promtail configuration ansible.builtin.template: src: promtail.yml.j2 dest: /etc/promtail/promtail.yml owner: monitoring group: monitoring mode: "0644" notify: Restart promtail - name: Deploy Promtail systemd service ansible.builtin.template: src: promtail.service.j2 dest: /etc/systemd/system/promtail.service mode: "0644" notify: - Reload systemd - Restart promtail - name: Enable and start Promtail ansible.builtin.systemd: name: promtail enabled: true state: started daemon_reload: true - name: Clean up downloaded files ansible.builtin.file: path: "{{ item }}" state: absent loop: - "/tmp/promtail-{{ promtail_version }}.zip" - "/tmp/promtail-linux-{{ go_arch }}"