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_self_check: true
|
||||||
run_start: true
|
run_start: true
|
||||||
run_stop: 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'
|
mode: '0660'
|
||||||
when: "matrix_vars_yml_snapshotting_enabled | bool"
|
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
|
- name: Ensure Matrix network is created in Docker
|
||||||
community.docker.docker_network:
|
community.docker.docker_network:
|
||||||
name: "{{ matrix_docker_network }}"
|
name: "{{ matrix_docker_network }}"
|
||||||
|
|
Loading…
Reference in a new issue