45 lines
1.5 KiB
YAML
45 lines
1.5 KiB
YAML
---
|
|
- name: Assert usage of systemd as an init system
|
|
assert:
|
|
that: ansible_service_mgr == 'systemd'
|
|
msg: "This module only works with systemd"
|
|
|
|
- block:
|
|
- name: Get latest release
|
|
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:] }}
|
|
set_fact:
|
|
loki_version: "{{ _latest_release.json.tag_name[1:] }}"
|
|
when:
|
|
- loki_version == "latest"
|
|
- loki_binary_local_dir | length == 0
|
|
|
|
- block:
|
|
- name: Get checksum list
|
|
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
|
|
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]"
|
|
delegate_to: localhost
|
|
when:
|
|
- loki_binary_local_dir | length == 0
|