--- - name: Assert usage of systemd as an init system ansible.builtin.assert: that: ansible_service_mgr == 'systemd' msg: "This module only works with systemd" - name: Get version when: - loki_version == "latest" - loki_binary_local_dir | length == 0 block: - name: Get latest release ansible.builtin.uri: url: "https://api.github.com/repos/grafana/loki/releases/latest" method: GET return_content: true status_code: 200 body_format: json validate_certs: false user: "{{ lookup('env', 'GH_USER') | default(omit) }}" password: "{{ lookup('env', 'GH_TOKEN') | default(omit) }}" no_log: "{{ not lookup('env', 'ANSIBLE_DEBUG') | bool }}" register: _latest_release until: _latest_release.status == 200 retries: 5 - name: Set loki version to {{ _latest_release.json.tag_name[1:] }} ansible.builtin.set_fact: loki_version: "{{ _latest_release.json.tag_name[1:] }}" - name: Get checksums delegate_to: localhost when: - loki_binary_local_dir | length == 0 block: - name: Get checksum list ansible.builtin.set_fact: __loki_checksums: "{{ lookup('url', 'https://github.com/grafana/loki/releases/download/v' + loki_version + '/SHA256SUMS', wantlist=True) | list }}" run_once: true - name: Get checksum for bins ansible.builtin.set_fact: __loki_bins_checksum: "{{ __loki_bins_checksum | default({}) | combine({item[1]: item[0].split()[0]}) }}" loop: "{{ lookup('nested', __loki_checksums, loki_bins, wantlist=True) }}" when: - "(item[1] + '-linux-' + go_arch + '.zip') in item[0].split()[1]" - name: Install unzip ansible.builtin.apt: name: unzip update_cache: true - name: Install dnspython ansible.builtin.pip: name: - dnspython - docker