To recover from a failure or allow to quickly reset to known state we need to know with what playbook-commit the sever is installed. This commit saves the GIT hash/status when we run the playbook in a file called git_hash.yml. It also backs up that file by copying it to the target machine.
This commit is contained in:
parent
fe1f49d5e7
commit
80e57417f4
|
@ -298,3 +298,7 @@ run_setup: true
|
|||
run_self_check: true
|
||||
run_start: true
|
||||
run_stop: true
|
||||
|
||||
# Saves the git hash in a file called git_hash.yml
|
||||
# Set this to false if GIT is not installed on the local system (the system where the ansible command is run on)
|
||||
git_save_hash: true
|
|
@ -19,6 +19,59 @@
|
|||
mode: '0660'
|
||||
when: "matrix_vars_yml_snapshotting_enabled | bool"
|
||||
|
||||
- name: Save current git-repo status on the target to aid with restoring in case of problems
|
||||
block:
|
||||
- name: Get local git hash
|
||||
delegate_to: 127.0.0.1
|
||||
become: false
|
||||
register: git_describe
|
||||
shell:
|
||||
git describe
|
||||
--always
|
||||
--tags
|
||||
--dirty
|
||||
--long
|
||||
--all
|
||||
|
||||
- set_fact:
|
||||
git_hash: "{{ git_describe.stdout }}"
|
||||
|
||||
- name: Git hash
|
||||
debug:
|
||||
msg: "Git hash: {{ git_hash }}"
|
||||
|
||||
- name: Save git hash in git_hash.yml
|
||||
become: false
|
||||
local_action:
|
||||
copy
|
||||
content="git_hash_last_run{{ ":" }} {{ git_hash }}\n"
|
||||
dest="{{ matrix_vars_yml_snapshotting_src }}/git_hash.yml"
|
||||
|
||||
- name: Copy git_hash.yml file to target
|
||||
copy:
|
||||
src: "{{ matrix_vars_yml_snapshotting_src }}/git_hash.yml"
|
||||
dest: "{{ matrix_base_data_path }}/git_hash.yml"
|
||||
owner: "{{ matrix_user_username }}"
|
||||
group: "{{ matrix_user_groupname }}"
|
||||
mode: '0660'
|
||||
|
||||
rescue:
|
||||
- name: GIT not found error
|
||||
ansible.builtin.debug:
|
||||
msg: >-
|
||||
Couldn't find GIT on the local machine. Continuing without saving the GIT hash.
|
||||
You can disable saving the GIT hash by setting 'git_save_hash: false' in vars.yml
|
||||
when: "git_describe.stderr.find('not found') != -1"
|
||||
|
||||
- name: GIT hash error
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
Error when trying to get the GIT hash.
|
||||
You can disable saving the GIT hash by setting 'git_save_hash: false' in vars.yml
|
||||
when: "git_describe.stderr.find('not found') == -1"
|
||||
|
||||
when: "matrix_vars_yml_snapshotting_enabled|bool and git_save_hash|bool"
|
||||
|
||||
- name: Ensure Matrix network is created in Docker
|
||||
community.docker.docker_network:
|
||||
name: "{{ matrix_docker_network }}"
|
||||
|
|
Loading…
Reference in a new issue