diff --git a/defaults/main.yml b/defaults/main.yml index 04e7f83..118290f 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -8,3 +8,6 @@ restic_create_cron: false restic_dir_owner: '{{ ansible_user | default(ansible_user_id) }}' restic_dir_group: '{{ ansible_user | default(ansible_user_id) }}' + +# version check for this playbook +submodules_versioncheck: true diff --git a/tasks/main.yml b/tasks/main.yml index 86f732b..3551fe1 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,5 +1,6 @@ --- -# tasks file for skeleton +- include_tasks: versioncheck.yml + when: submodules_versioncheck|bool - name: add OS specific variables include_vars: '{{ loop_vars }}' diff --git a/vars/defaults.yml b/vars/main.yml similarity index 61% rename from vars/defaults.yml rename to vars/main.yml index 4c28354..cf6567a 100644 --- a/vars/defaults.yml +++ b/vars/main.yml @@ -10,3 +10,7 @@ _platform_map: restic_create_paths: - '{{ restic_download_path }}/bin' - '{{ restic_script_dir }}' + + --- +playbook_version_number: 20 # should be over ninethousand +playbook_version_path: 'role-restic_archiver_roles-ansible_github.com.version' diff --git a/versioncheck.yml b/versioncheck.yml new file mode 100644 index 0000000..7977e52 --- /dev/null +++ b/versioncheck.yml @@ -0,0 +1,46 @@ +--- +- 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: "/etc/.ansible-version/{{ playbook_version_path }}" + register: playbook_version + when: submodules_versioncheck|bool + ignore_errors: yes + failed_when: false + +- 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: check if '/etc/ansible-version/' is empty + find: + paths: '/etc/ansible-version/' + register: filesFound + +- name: write new version to remote disk + become: true + copy: + content: "{{ playbook_version_number }}" + dest: "/etc/.ansible-version/{{ playbook_version_path }}" + mode: 0644 + when: submodules_versioncheck|bool