- set_fact: defaultfile: group: root owner: root mode: "0700" state: touch src: ~ content: ~ template: ~ template_vars: {} src: ~ - set_fact: file: "{{ defaultfile|combine(item.value|d({}), {'path': item.key} ) }}" - name: create file/folder (file) when: - not file.content - not file.template - not file.src file: path: "{{ file.path }}" group: "{{ file.group }}" owner: "{{ file.owner }}" mode: "{{ file.mode }}" src: "{{ file.src }}" state: "{{ file.state }}" - name: create file/folder (copy content) when: - file.content - not file.src copy: dest: "{{ file.path }}" group: "{{ file.group }}" owner: "{{ file.owner }}" mode: "{{ file.mode }}" content: "{{ file.content }}" - name: create file/folder (copy src) when: - file.src - file.state != "link" copy: dest: "{{ file.path }}" group: "{{ file.group }}" owner: "{{ file.owner }}" mode: "{{ file.mode }}" src: "{{ file.src }}" - name: create file/folder (symlink) when: - file.src - file.state == "link" file: path: "{{ file.path }}" group: "{{ file.group }}" owner: "{{ file.owner }}" mode: "{{ file.mode }}" state: "{{ file.state }}" src: "{{ file.src }}"