diff options
| author | Elizabeth Hunt <me@liz.coffee> | 2025-09-30 23:09:16 -0700 |
|---|---|---|
| committer | Elizabeth Hunt <me@liz.coffee> | 2025-09-30 23:14:42 -0700 |
| commit | 93985fdb88dbd89e3524aefe3f0b3ce5167a786e (patch) | |
| tree | 3db5fd00b27e80daa7ad159e0b463ce87d6e51c8 /tasks/copy-rendered-templates-recursive.yml | |
| parent | 88eed6b06b6780fb67413e90f57e55bdd3b6c81d (diff) | |
| download | infra-93985fdb88dbd89e3524aefe3f0b3ce5167a786e.tar.gz infra-93985fdb88dbd89e3524aefe3f0b3ce5167a786e.zip | |
Add backup role
Diffstat (limited to 'tasks/copy-rendered-templates-recursive.yml')
| -rw-r--r-- | tasks/copy-rendered-templates-recursive.yml | 46 |
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 |
