Просмотр исходного кода

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.

pull/2217/head
ikkemaniac 3 лет назад
Родитель
Сommit
80e57417f4
2 измененных файлов: 57 добавлений и 0 удалений
  1. +4
    -0
      roles/matrix-base/defaults/main.yml
  2. +53
    -0
      roles/matrix-base/tasks/setup_matrix_base.yml

+ 4
- 0
roles/matrix-base/defaults/main.yml Просмотреть файл

@@ -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

+ 53
- 0
roles/matrix-base/tasks/setup_matrix_base.yml Просмотреть файл

@@ -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 }}"


Загрузка…
Отмена
Сохранить