ansible/test/integration/targets/remote_tmp/playbook.yml
Jordan Borean 8bdd04c147 Fix remote_tmp when become with non admin user (#42396)
* Fix tmpdir on non root become

 - also avoid exception if tmpdir and remote_tmp are None
 - give 'None' on deescalation so tempfile will fallback to it's default behaviour
   and use system dirs
 - fix issue with bad tempdir (not existing/not createable/not writeable)
   i.e nobody and ~/.ansible/tmp
 - added tests for blockfile case

* Revert "Temporarily revert c119d54"

This reverts commit 5c614a59a6.

* changes based on PR feedback and changelog fragment

* changes based on the review

* Fix tmpdir when makedirs failed so we just use the system tmp

* Let missing remote_tmp fail

If remote_tmp is missing then there's something more basic wrong in the
communication from the controller to the module-side.  It's better to
be alerted in this case than to silently ignore it.

jborean and I have independently checked what happens if the user sets
ansible_remote_tmp to empty string and !!null and both cases work fine.
(null is turned into a default value controller-side.  empty string
triggers the warning because it is probably not a directory that the
become user is able to use).
2018-07-06 10:49:19 -07:00

26 lines
706 B
YAML

- name: Test temp dir on de escalation
hosts: testhost
gather_facts: false
become: yes
tasks:
- name: create test user
user: name=tmptest state=present
- 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