From 3d0b74cb4b33e53fd9c06241adf419e3577f884d Mon Sep 17 00:00:00 2001 From: Lilian Roller Date: Wed, 29 May 2019 11:00:13 +0200 Subject: [PATCH] implement version controll --- defaults/main.yml | 4 ++++ tasks/main.yml | 3 +++ tasks/versioncheck.yml | 39 +++++++++++++++++++++++++++++++++++++++ vars/main.yml | 3 +++ 4 files changed, 49 insertions(+) create mode 100644 tasks/versioncheck.yml diff --git a/defaults/main.yml b/defaults/main.yml index 9146077..154cb9d 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,4 +1,6 @@ --- +# Here are the variables you may want to change +# to configure i3wm i3_keybindings_extra: [] # - keybinding: # name: example @@ -35,3 +37,5 @@ i3_packages_extra: - ranger # which user are we? i3wm_user: "{{ ansible_user_id }}" +# version check for this role? +submodules_versioncheck: true diff --git a/tasks/main.yml b/tasks/main.yml index 5582544..524dfb0 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,4 +1,7 @@ --- +- include_tasks: versioncheck.yml + when: submodules_versioncheck|bool + - name: register variables import_tasks: variables.yml diff --git a/tasks/versioncheck.yml b/tasks/versioncheck.yml new file mode 100644 index 0000000..28464aa --- /dev/null +++ b/tasks/versioncheck.yml @@ -0,0 +1,39 @@ +--- +- name: Create directory for versionscheck + become: true + file: + path: '/etc/ansible-version' + state: directory + mode: 0755 + when: submodules_versioncheck|bool + +- name: check playbook version + become: true + slurp: + src: "{{ playbook_version_path }}" + register: playbook_version + when: submodules_versioncheck|bool + ignore_errors: yes + +- name: Print remote role version + debug: + msg: "Remote role version: {{ playbook_version.content | default('Y3VycmVudGx5IG5vdCBkZXBsb3llZAo=') | b64decode | string }}" + when: submodules_versioncheck|bool + +- name: Print locale role version + debug: + msg: "Local role version: '{{ playbook_version_number|string }}'." + when: submodules_versioncheck|bool + +- name: Check if your version is outdated + fail: + msg: "Your ansible module has the version '{{ playbook_version_number }}' and is outdated. You need to update it!" + when: + - playbook_version.content|default("Mgo=")|b64decode|int - 1 >= playbook_version_number|int and submodules_versioncheck|bool + +- name: write new version to remote disk + become: true + copy: + content: "{{ playbook_version_number }}" + dest: "{{ playbook_version_path }}" + when: submodules_versioncheck|bool diff --git a/vars/main.yml b/vars/main.yml index a8b25bc..1246788 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -32,3 +32,6 @@ __i3_workspaces: name: " 0 " user: "{{ i3wm_user }}" + +playbook_version_number: 9000 # should be over ninethousand +playbook_version_path: '/etc/ansible-version/role-i3wm_chaos-bodensee_github.com.version'