1---
2
3- name: check if gvm is installed
4  stat:
5    path: '{{ gvm_unix_path }}'
6  changed_when: false
7  register: gvm_is_present
8
9- name: install gvm if absent
10  get_url:
11    url: "https://github.com/andrewkroh/gvm/releases/download/v{{ gvm_version }}/gvm-{{ gvm_arch }}"
12    dest: '{{ gvm_unix_path }}'
13    mode: '0555'
14    owner: root
15    group: 0
16  when: gvm_is_present.stat.exists == False
17
18##### BLOCK START
19- block:
20  # gvm reports the version in stderr, redirect to stdout for future safety
21  - name: get gvm version if present
22    shell: '{{ gvm_unix_path }} --version 2>&1'
23    register: gvm_current_version
24    changed_when: false
25
26  - name: upgrade gvm to the specified version
27    get_url:
28      url: "https://github.com/andrewkroh/gvm/releases/download/v{{ gvm_version }}/gvm-{{ gvm_arch }}"
29      dest: '{{ gvm_unix_path }}'
30      mode: '0555'
31      owner: root
32      group: 0
33      force: True
34    when: >
35      gvm_current_version.stdout | default('') | replace('v','') | version_compare(gvm_version, '<')
36  when: gvm_is_present.stat.exists == True
37##### BLOCK END
38