--- - name: Check for the restore canary file stat: path: "{{ atl_backup_home_restore_canary_path }}" register: restore_canary - block: - name: Create shared home if necessary file: path: "{{ atl_product_home_shared }}" state: directory mode: 0750 owner: "{{ atl_product_user }}" group: "{{ atl_product_user }}" - name: Restore the shared-home backup unarchive: src: "{{ atl_backup_home_dest }}" remote_src: yes dest: "{{ atl_product_home_shared }}" when: atl_backup_home_is_server is not defined or not atl_backup_home_is_server|bool - name: Restore a Confluence server home to share-home layout unarchive: src: "{{ atl_backup_home_dest }}" remote_src: yes dest: "{{ atl_product_home_shared }}" # Use tar transform to convert the Confluence Server # (unclustered) layout to shared-home version. What occurs is: # * --transform runs first, moving attachments into the shared home. # * --strip-components removes the top-level directory # NOTE: Also see the `confluence_config` role, which uses # symlinks to support server and clustered layouts # concurrently. extra_opts: - "--transform=s,^attachments,shared-home/attachments," - "--strip-components=1" when: atl_backup_home_is_server is defined and atl_backup_home_is_server|bool - name: Set shared home owner and group to application user file: path: "{{ atl_product_home_shared }}" recurse: yes group: "{{ atl_product_user }}" owner: "{{ atl_product_user }}" state: directory - name: Set version file owner and group to root file: path: "{{ atl_product_version_cache }}" group: root owner: root state: file # Ignore the error in case there is no product version file in the backup ignore_errors: yes - name: Create restore-canary if necessary copy: dest: "{{ atl_backup_home_restore_canary_path }}" content: "{{ atl_backup_id }}" when: not restore_canary.stat.exists