--- - 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 register: git_config_user_email ignore_errors: yes - name: "set commit author" set_fact: commit_author: '{% if ansible_env.SUDO_USER is not defined %}root{% else %}{{ ansible_env.SUDO_USER }}{% endif %}' commit_email: '{% if git_config_user_email.config_value == "" %}root@localhost{% else %}{{ git_config_user_email.config_value }}{% endif %}' - name: "/etc modifications are committed" shell: "git add -A . && git commit -m \"{{ commit_message | mandatory }}\" --author \"{{ commit_author | mandatory }} <{{ commit_email | mandatory }}>\"" 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