- name: Test temp dir on de escalation hosts: testhost become: yes tasks: - name: create test user user: name: tmptest state: present group: '{{ "staff" if ansible_facts.distribution == "MacOSX" else omit }}' - name: execute test case become_user: tmptest block: - name: Test case from issue 41340 blockinfile: create: yes block: | export foo=bar marker: "# {mark} Here there be a marker" dest: /tmp/testing.txt mode: 0644 always: - name: clean up file file: path=/tmp/testing.txt state=absent - name: clean up test user user: name=tmptest state=absent become_user: root - name: Test tempdir is removed hosts: testhost gather_facts: false vars: # These tests cannot be run with pipelining as it defeats the purpose of # ensuring remote_tmp is cleaned up. Pipelining is enabled in the test # inventory ansible_pipelining: false # Ensure that the remote_tmp_dir we create allows the unpriv connection user # to create the remote_tmp ansible_become: false tasks: - import_role: name: ../setup_remote_tmp_dir - vars: # Isolate the remote_tmp used by these tests ansible_remote_tmp: "{{ remote_tmp_dir }}/remote_tmp" block: - file: state: touch path: "{{ remote_tmp_dir }}/65393" - copy: src: "{{ remote_tmp_dir }}/65393" dest: "{{ remote_tmp_dir }}/65393.2" remote_src: true - find: path: "{{ ansible_remote_tmp }}" use_regex: yes patterns: 'AnsiballZ_.+\.py' recurse: true register: result - debug: var: result - assert: that: # Should only be AnsiballZ_find.py because find is actively running - result.files|length == 1 - result.files[0].path.endswith('/AnsiballZ_find.py')