- name: Install etckeeper become: true ansible.builtin.package: name: etckeeper state: present - name: etckeeper init become: true ansible.builtin.command: etckeeper init args: creates: /etc/.git/config - name: Configure /etc repository become: true community.general.git_config: scope: local repo: /etc name: '{{ item.name }}' value: '{{ item.value }}' loop: - name: user.name value: '{{ git_name }}' - name: user.email value: '{{ git_email }}' - name: Initial commit become: true ansible.builtin.command: etckeeper commit 'initial commit' args: creates: /etc/.git/index - name: Configure etckeeper become: true community.general.ini_file: path: /etc/etckeeper/etckeeper.conf # I'm pretty sure this file is sourced by a shell, so this is required: no_extra_spaces: true owner: root group: root mode: '644' section: null option: '{{ item.name }}' value: '{{ item.value }}' loop: - name: AVOID_DAILY_AUTOCOMMITS value: '1' - name: AVOID_COMMIT_BEFORE_INSTALL value: '1' - name: Configure repository remote when: etckeeper_remote_url is defined become: true block: - name: git remote add ansible.builtin.command: argv: - git - remote - add - '{{ etckeeper_remote_name }}' - '{{ etckeeper_remote_url }}' chdir: /etc creates: '/etc/.git/refs/remotes/{{ etckeeper_remote_name }}/' - name: Configure pushes for etckeeper community.general.ini_file: path: /etc/etckeeper/etckeeper.conf no_extra_spaces: true owner: root group: root mode: '644' section: null option: PUSH_REMOTE value: '{{ etckeeper_remote_name }}'