--- ## Remove the previous app & install the new version - name: Remove Firefly3 previous version ansible.builtin.file: state: absent dest: "{{ firefly3_app_home }}" - name: Create app home ansible.builtin.file: state: directory dest: "{{ firefly3_app_home }}" owner: root group: www-data mode: "0o750" - name: Install firefly3 application ansible.builtin.unarchive: remote_src: true src: "{{ firefly3_url }}" dest: "{{ firefly3_app_home }}" owner: root group: www-data mode: "a-rwx,u+rwX,g+rX" exclude: "{{ firefly3_userdata_app_dirs | map('regex_replace', '^', './') }}" - name: Put config file ansible.builtin.template: src: "env.j2" dest: "{{ firefly3_app_home }}/.env" owner: root group: www-data mode: "0o640" - name: Check writable dirs ansible.builtin.file: state: directory dest: "{{ firefly3_app_home }}/{{ item }}" owner: root group: www-data recurse: true mode: "g+w" loop: "{{ firefly3_writable_app_dirs }}" ## Ensure the data dirs exists, populate them if not - name: Create data home ansible.builtin.file: state: directory path: "{{ firefly3_data_home }}" owner: www-data group: www-data mode: "0o750" # If the first data dir exists, others should exist too - name: Get data dir ansible.builtin.stat: path: "{{ firefly3_data_home }}/{{ firefly3_userdata_app_dirs[0] }}" register: _firefly3_userdata_dir_stat - name: Install Firefly3 data dir ansible.builtin.unarchive: remote_src: true src: "{{ firefly3_url }}" dest: "{{ firefly3_data_home }}" owner: www-data group: www-data mode: "a-rwx,u+rwX,g+rX" include: "{{ firefly3_userdata_app_dirs | map('regex_replace', '^', './') }}" when: not _firefly3_userdata_dir_stat.stat.exists - name: Link Firefly3 userdata dirs ansible.builtin.file: state: link src: "{{ firefly3_data_home }}/{{ item }}" dest: "{{ firefly3_app_home }}/{{ item }}" loop: "{{ firefly3_userdata_app_dirs }}"