From c71c6fb17d00b81dff034947fde99555fdd1dbc6 Mon Sep 17 00:00:00 2001 From: L3D Date: Mon, 21 Nov 2022 16:57:07 +0100 Subject: [PATCH] Set version --- defaults/main.yml | 4 +++- handlers/main.yml | 4 ++++ tasks/main.yml | 3 +++ tasks/set_version.yml | 38 ++++++++++++++++++++++++++++++++++++++ vars/main.yml | 3 +++ 5 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 handlers/main.yml create mode 100644 tasks/set_version.yml diff --git a/defaults/main.yml b/defaults/main.yml index 3053e6d..2fe8374 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,10 +1,12 @@ --- # Unix vars ping_exporter__user: 'ping_exporter' -ping_exporter__grpup: 'ping_exporter' +ping_exporter__group: 'ping_exporter' ping_exporter__user_home: '/var/lib/ping_exporter' ping_exporter__shell: '/bin/false' +# Version +ping_exporter__version: 'latest' # should we do a version check? (recomended) submodules_versioncheck: false diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..338c366 --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,4 @@ +--- +- name: Systemctl restart ping_exporter.service + ansible.builtin.debug: + msg: "in progress..." diff --git a/tasks/main.yml b/tasks/main.yml index 2949086..6402dc1 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -5,3 +5,6 @@ - name: Create User for ping exporter ansible.builtin.include_tasks: create_user.yml + +- name: Get latest release and define version + ansible.builtin.include_tasks: set_version.yml diff --git a/tasks/set_version.yml b/tasks/set_version.yml new file mode 100644 index 0000000..0fe466d --- /dev/null +++ b/tasks/set_version.yml @@ -0,0 +1,38 @@ +--- +- name: "Determine 'latest' version release" + when: ping_exporter__version == "latest" + block: + - name: "Get latest ping_exporter release metadata" + ansible.builtin.uri: + url: "{{ ping_exporter__repo_api }}" + return_content: true + register: ping_exporter_remote_metadata + when: not ansible_check_mode + + - name: "Fail if running in check mode without versions set." + ansible.builtin.fail: + msg: | + "You are running this playbook in check mode: + Please set the Ping Exporter version with the variable 'ping_exporter__version', because the + URI module cannot detect the latest version in this mode." + when: ansible_check_mode and (ping_exporter__version == 'latest' or ping_exporter__version == 'present') + + - name: "Set fact latest ping_exporter release" + ansible.builtin.set_fact: + ping_exporter_remote_version: "{{ ping_exporter_remote_metadata.json.tag_name }}" + when: not ansible_check_mode + + - name: "Set ping_exporter version target (latest)" + ansible.builtin.set_fact: + ping_exporter_version_target: "{{ ping_exporter_remote_version }}" + when: not ansible_check_mode + +- name: "Set ping_exporter version target {{ ping_exporter__version }}" + ansible.builtin.set_fact: + ping_exporter_version_target: "{{ ping_exporter__version }}" + when: ping_exporter__version != "latest" + +- name: Print Ping Exporter Version + ansible.builtin.debug: + verbosity: 1 + msg: "Set Ping Exporter Version to {{ ping_exporter_version_target }}" diff --git a/vars/main.yml b/vars/main.yml index 7d4cd49..e003a21 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -1,4 +1,7 @@ --- +ping_exporter__repo: 'https://github.com/czerwonk/ping_exporter.git' +ping_exporter__repo_api: 'https://api.github.com/repos/czerwonk/ping_exporter/releases/latest' + # versionscheck playbook_version_number: 02 # should be a integer playbook_version_path: 'do1jlr.prometheus_ping_exporter.version'