summaryrefslogtreecommitdiff
path: root/tasks
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-09-30 23:09:16 -0700
committerElizabeth Hunt <me@liz.coffee>2025-09-30 23:14:42 -0700
commit93985fdb88dbd89e3524aefe3f0b3ce5167a786e (patch)
tree3db5fd00b27e80daa7ad159e0b463ce87d6e51c8 /tasks
parent88eed6b06b6780fb67413e90f57e55bdd3b6c81d (diff)
downloadinfra-93985fdb88dbd89e3524aefe3f0b3ce5167a786e.tar.gz
infra-93985fdb88dbd89e3524aefe3f0b3ce5167a786e.zip
Add backup role
Diffstat (limited to 'tasks')
-rw-r--r--tasks/copy-rendered-templates-recursive.yml46
1 files changed, 25 insertions, 21 deletions
diff --git a/tasks/copy-rendered-templates-recursive.yml b/tasks/copy-rendered-templates-recursive.yml
index b255fab..e3311df 100644
--- a/tasks/copy-rendered-templates-recursive.yml
+++ b/tasks/copy-rendered-templates-recursive.yml
@@ -50,7 +50,6 @@
path: "{{ tempdir.path }}/{{ item.path | dirname }}"
state: directory
mode: "{{ mode | default('0755') }}"
- owner: "{{ owner }}"
with_filetree: "{{ render_dir }}"
when: item.state == "file"
@@ -61,7 +60,6 @@
src: "{{ render_dir }}/{{ item.path }}"
dest: "{{ tempdir.path }}/{{ item.path }}"
mode: "{{ mode | default('0755') }}"
- owner: "{{ owner }}"
loop: "{{ text_files }}"
- name: Copy binary files directly
@@ -71,40 +69,46 @@
src: "{{ render_dir }}/{{ item.path }}"
dest: "{{ tempdir.path }}/{{ item.path }}"
mode: "{{ mode | default('0644') }}"
- owner: "{{ owner }}"
loop: "{{ binary_files }}"
-- name: Sync rendered and copied files to remote host
+- name: Create tarball of rendered files
delegate_to: localhost
become: false
- ansible.builtin.synchronize:
- src: "{{ tempdir.path }}/"
- dest: "{{ tempdir.path }}/"
- owner: true
- group: true
- recursive: true
+ ansible.builtin.command:
+ cmd: tar -czf {{ tempdir.path }}/rendered-files.tar.gz -C {{ tempdir.path }} .
+ creates: "{{ tempdir.path }}/rendered-files.tar.gz"
-- name: Ensure destination exists
+- name: Transfer tarball to remote host
+ ansible.builtin.copy:
+ src: "{{ tempdir.path }}/rendered-files.tar.gz"
+ dest: "/tmp/rendered-files.tar.gz"
+ mode: '0644'
+
+- name: Ensure destination directory exists
become: true
ansible.builtin.file:
path: "{{ destination_dir }}"
- owner: "{{ owner }}"
state: directory
+ owner: "{{ owner }}"
+ group: "{{ group | default(owner) }}"
-- name: Copy files to final destination, preserving ownership stuff
+- name: Extract tarball to destination
become: true
- ansible.builtin.command:
- cmd: bash -c 'cp -rp {{ tempdir.path }}/* {{ destination_dir }}/'
+ ansible.builtin.unarchive:
+ src: "/tmp/rendered-files.tar.gz"
+ dest: "{{ destination_dir }}"
+ remote_src: yes
+ owner: "{{ owner }}"
+ group: "{{ group | default(owner) }}"
-- name: Remove local temporary directory
- delegate_to: localhost
- become: false
+- name: Remove remote tarball
ansible.builtin.file:
- path: "{{ tempdir.path }}"
+ path: "/tmp/rendered-files.tar.gz"
state: absent
-- name: Remove remote temporary directory
- become: true
+- name: Remove local temporary directory
+ delegate_to: localhost
+ become: false
ansible.builtin.file:
path: "{{ tempdir.path }}"
state: absent