diff options
| author | Egor Tensin <egor@tensin.name> | 2025-11-23 23:25:52 +0100 |
|---|---|---|
| committer | Egor Tensin <egor@tensin.name> | 2025-11-23 23:37:31 +0100 |
| commit | 58d256ea6262dc6365d26d3abc807c88a12809b2 (patch) | |
| tree | a9736c6ded91ae9192ec89c7ebf04a691f0d0227 /roles | |
| parent | config_links: fix a typo (diff) | |
| download | infra-ansible-58d256ea6262dc6365d26d3abc807c88a12809b2.tar.gz infra-ansible-58d256ea6262dc6365d26d3abc807c88a12809b2.zip | |
plugins: add etckeeper_commit
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/etckeeper/handlers/commit.yml | 30 | ||||
| -rw-r--r-- | roles/etckeeper/handlers/main.yml | 13 | ||||
| -rw-r--r-- | roles/etckeeper_commit/defaults/main.yml | 2 | ||||
| -rw-r--r-- | roles/etckeeper_commit/tasks/main.yml | 45 |
4 files changed, 11 insertions, 79 deletions
diff --git a/roles/etckeeper/handlers/commit.yml b/roles/etckeeper/handlers/commit.yml deleted file mode 100644 index de64614..0000000 --- a/roles/etckeeper/handlers/commit.yml +++ /dev/null @@ -1,30 +0,0 @@ -# This was copied to role etckeeper_commit. -# -# TODO: figure out how to dedupe this (handlers cannot use include_role). - -- name: Get list of modified files - become: true - ansible.builtin.shell: | - set -o pipefail && \ - git status --porcelain=v1 \ - | cut -c 4- \ - | grep -G -v {{ ('^' + (paths | map("regex_replace", "^/", "") | list | join("\|^"))) | quote }} - args: - chdir: /etc - vars: - ansible_shell_executable: /bin/bash - register: git_status - changed_when: false - failed_when: git_status.rc not in [0, 1] - -- name: Fail if unexpected files were modified - ansible.builtin.fail: - msg: | - Unexpected files were modified: - {{ git_status.stdout }} - when: git_status.rc == 0 - -- name: etckeeper commit - become: true - ansible.builtin.command: | - etckeeper commit {{ commit_msg | quote }} diff --git a/roles/etckeeper/handlers/main.yml b/roles/etckeeper/handlers/main.yml index 76c225e..c67dc02 100644 --- a/roles/etckeeper/handlers/main.yml +++ b/roles/etckeeper/handlers/main.yml @@ -1,13 +1,10 @@ - name: Commit etckeeper.conf - ansible.builtin.include_tasks: commit.yml - vars: - paths: [etckeeper/etckeeper.conf] - commit_msg: configure etckeeper + tensin.infra.etckeeper_commit: + msg: configure etckeeper + allowlist: [etckeeper/etckeeper.conf] listen: etckeeper_commit_conf - name: Commit .gitignore - ansible.builtin.include_tasks: commit.yml - vars: - paths: ['.*'] - commit_msg: configure ignored files + tensin.infra.etckeeper_commit: + msg: configure ignored files listen: etckeeper_commit_gitignore diff --git a/roles/etckeeper_commit/defaults/main.yml b/roles/etckeeper_commit/defaults/main.yml index 4a75c85..205b501 100644 --- a/roles/etckeeper_commit/defaults/main.yml +++ b/roles/etckeeper_commit/defaults/main.yml @@ -1,2 +1,2 @@ -#etckeeper_commit_paths: [] +#etckeeper_commit_allowlist: [] #etckeeper_commit_msg: '' diff --git a/roles/etckeeper_commit/tasks/main.yml b/roles/etckeeper_commit/tasks/main.yml index 94370d0..061942e 100644 --- a/roles/etckeeper_commit/tasks/main.yml +++ b/roles/etckeeper_commit/tasks/main.yml @@ -1,41 +1,6 @@ -# This was copied from role etckeeper's handlers. -# -# TODO: figure out how to dedupe this (handlers cannot use include_role). - -- name: Get list of modified files +- name: Run etckeeper commit become: true - ansible.builtin.shell: | - set -o pipefail && \ - git status --porcelain=v1 | cut -c 4- - args: - chdir: /etc - vars: - ansible_shell_executable: /bin/bash - register: git_status - changed_when: false - -- name: Try to commit if there're modified files - when: git_status.stdout_lines | length > 0 - block: - - name: Filter out expected modifications - ansible.builtin.shell: | - set -o pipefail && \ - echo {{ git_status.stdout | quote }} \ - | grep -G -v {{ ('^' + (etckeeper_commit_paths | map("regex_replace", "^/", "") | list | join("\|^"))) | quote }} - vars: - ansible_shell_executable: /bin/bash - register: unexpected_files - changed_when: false - failed_when: unexpected_files.rc not in [0, 1] - - - name: Fail if unexpected files were modified - ansible.builtin.fail: - msg: | - Unexpected files were modified: - {{ unexpected_files.stdout }} - when: unexpected_files.stdout_lines | length > 0 - - - name: etckeeper commit - become: true - ansible.builtin.command: | - etckeeper commit {{ etckeeper_commit_msg | quote }} + tensin.infra.etckeeper_commit: + msg: '{{ etckeeper_commit_msg }}' + allowlist: '{{ etckeeper_commit_allowlist }}' + skip_no_changes: true |
