aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/roles
diff options
context:
space:
mode:
authorEgor Tensin <egor@tensin.name>2025-11-23 00:01:15 +0100
committerEgor Tensin <egor@tensin.name>2025-11-23 14:02:25 +0100
commit96154a85752a50f0b00f8df5bd02d0a569f7c485 (patch)
tree0c9d96b918cd2e9a755abcae17df8b65fe25c3a1 /roles
parentetckeeper: rework & fix .gitignore setup (diff)
downloadinfra-ansible-96154a85752a50f0b00f8df5bd02d0a569f7c485.tar.gz
infra-ansible-96154a85752a50f0b00f8df5bd02d0a569f7c485.zip
etckeeper: fixup remote URLs forcefully
Diffstat (limited to 'roles')
-rw-r--r--roles/etckeeper/tasks/main.yml21
1 files changed, 13 insertions, 8 deletions
diff --git a/roles/etckeeper/tasks/main.yml b/roles/etckeeper/tasks/main.yml
index 74e28a5..b4c49f2 100644
--- a/roles/etckeeper/tasks/main.yml
+++ b/roles/etckeeper/tasks/main.yml
@@ -52,16 +52,21 @@
when: etckeeper_remote_url is defined
become: true
block:
- - name: git remote add
+ - name: Read current remote URL
ansible.builtin.command:
- argv:
- - git
- - remote
- - add
- - '{{ etckeeper_remote_name }}'
- - '{{ etckeeper_remote_url }}'
+ cmd: git config --local remote.{{ etckeeper_remote_name | quote }}.url
chdir: /etc
- creates: '/etc/.git/refs/remotes/{{ etckeeper_remote_name }}/'
+ changed_when: false
+ failed_when: false
+ register: url_result
+
+ - name: Fix remote URL if necessary
+ ansible.builtin.shell:
+ cmd: |
+ git remote remove {{ etckeeper_remote_name | quote }} && \
+ git remote add -f {{ etckeeper_remote_name | quote }} {{ etckeeper_remote_url | quote }}
+ chdir: /etc
+ when: url_result.stdout != etckeeper_remote_url
- name: Configure pushes for etckeeper
community.general.ini_file: