diff --git a/roles/grafana_alloy/tasks/install.yml b/roles/grafana_alloy/tasks/install.yml index b274748..d95fe6f 100644 --- a/roles/grafana_alloy/tasks/install.yml +++ b/roles/grafana_alloy/tasks/install.yml @@ -23,13 +23,16 @@ block: - name: "Install | Check Alloy version" changed_when: false + failed_when: false ansible.builtin.command: cmd: "alloy --version" register: grafana_alloy_ver - name: "Install | Assert version correctness" ansible.builtin.assert: - that: "grafana_alloy_version in grafana_alloy_ver.stdout" + that: + - "grafana_alloy_ver.rc == 0" + - "grafana_alloy_version in grafana_alloy_ver.stdout" success_msg: "alloy version {{ grafana_alloy_version }} is installed and working" fail_msg: "alloy version {{ grafana_alloy_version }} is not installed or not working correctly" @@ -39,10 +42,26 @@ name: "unzip" state: present - - name: "Install | Fetch and unpack the distribution" + - name: "Install | Download the distribution archive" + ansible.builtin.get_url: + url: "https://github.com/grafana/alloy/releases/download/v{{ grafana_alloy_version }}/alloy-linux-amd64.zip" + dest: "/tmp/alloy-linux-amd64.zip" + group: "alloy" + owner: "alloy" + mode: "0644" + timeout: 30 + force: true + register: grafana_alloy_download_status + until: grafana_alloy_download_status is success + retries: 3 + delay: 5 + + - name: "Install | Unpack and delete the distribution" ansible.builtin.unarchive: - src: "https://github.com/grafana/alloy/releases/download/v{{ grafana_alloy_version }}/alloy-linux-amd64.zip" + src: "/tmp/alloy-linux-amd64.zip" dest: "/tmp" + group: "alloy" + owner: "alloy" remote_src: true - name: "Install | Put the binary under the PATH" @@ -56,8 +75,11 @@ mode: "0755" - name: "Install | Clean up the downloads" + loop: + - "/tmp/alloy-linux-amd64" + - "/tmp/alloy-linux-amd64.zip" ansible.builtin.file: - path: "/tmp/alloy-linux-amd64" + path: "{{ item }}" state: absent - name: "Install | Create a systemd service unit" @@ -65,6 +87,6 @@ ansible.builtin.template: src: alloy.service.j2 dest: /etc/systemd/system/alloy.service - owner: "alloy" - group: "alloy" - mode: "0660" + owner: "root" + group: "root" + mode: "0600"