--- - name: Collect source resources block: - name: Check if source dir and files are present stat: path: "{{ item.source_dir }}/{{ item.source_filename }}" get_checksum: false loop: - { source_dir: "{{ resources_dir | default('', true) }}", source_filename: "{{ resources_filename | default('', true) }}", target_dir: "{{ app_data_path | default('', true) }}", target_filename: "{{ resources_filename | default('', true) }}" } - { source_dir: "{{ resources_dir | default('', true) }}", source_filename: "{{ aux_resources_filename | default('', true) }}", target_dir: "{{ aux_data_path | default('', true) }}", target_filename: "{{ aux_resources_filename | default('', true) }}" } register: source_path when: - item.source_dir | length > 0 - item.source_filename | length > 0 - item.target_dir | length > 0 - item.target_filename | length > 0 - name: Create initial resources list of dicts set_fact: to_be_uploaded_resources_list: "{{ to_be_uploaded_resources_list | default([]) + [ {'file': item.item.target_filename, 'destination_dir': item.item.target_dir } ] }}" loop: "{{ source_path.results }}" when: item.stat is defined failed_when: not item.stat.exists when: inventory_hostname in groups.resources - name: "Upload resource files {{ hostvars[groups.resources.0].to_be_uploaded_resources_list }} to infrastructure" include_tasks: upload_resources.yml vars: resources_source_host: "{{ hostvars[groups.resources.0].ansible_host | default(hostvars[groups.resources.0].inventory_hostname) }}" resources_list_of_dicts: "{{ hostvars[groups.resources.0].to_be_uploaded_resources_list }}" when: - inventory_hostname in groups.infrastructure - hostvars[groups.resources.0].to_be_uploaded_resources_list is defined - name: Store resources location in cfg file template: src: resources.cfg.j2 dest: "{{ resources_cfg_path }}" when: inventory_hostname in groups.infrastructure