ansible-loki-role/tasks/preflight.yml
2021-10-04 02:14:54 +02:00

45 lines
1.6 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, follow_redirects='yes') | 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