--- - name: is /etc clean? command: git status --porcelain args: chdir: /etc changed_when: False register: git_status when: not ansible_check_mode ignore_errors: yes tags: - commit-etc - debug: var: git_status verbosity: 3 tags: - commit-etc - name: fetch current Git user.email git_config: name: user.email repo: /etc scope: local register: git_config_user_email ignore_errors: yes - name: set commit author set_fact: etc_git_commit_options: "{ --author \"{{ ansible_env.SUDO_USER |default(\"root\")}} <{{ git_config_user_email.config_value |default(\"root@localhost\")}}>\"" - name: /etc modifications are committed shell: "git add -A . && git commit -m \"{{ commit_message | mandatory }}\"{{ etc_git_commit_options }}" args: chdir: /etc register: etc_commit_end_run when: not ansible_check_mode and git_status.stdout != "" ignore_errors: yes tags: - commit-etc - debug: var: etc_commit_end_run verbosity: 4 tags: - commit-etc