- name: Create test user (become_method=su) become: True become_user: root become_method: su user: name: "{{ become_test_user }}" when: ansible_distribution != "MacOSX" - name: Create test user (become_method=su) become: True become_user: root become_method: su user: name: "{{ become_test_user }}" # explicitly set user shell since the default shell on OS X is /usr/bin/false shell: /bin/bash when: ansible_distribution == "MacOSX" - name: test becoming user (become_method=su) shell: whoami become: True become_user: "{{ become_test_user }}" become_method: su register: results - assert: that: - "results.stdout == '{{ become_test_user }}'" - name: tilde expansion honors become in file (become_method=su) become: True become_user: "{{ become_test_user }}" become_method: su file: path: "~/foo.txt" state: touch - name: check that the path in the user's home dir was created (become_method=su) become: True become_user: "{{ become_test_user }}" become_method: su stat: path: "~{{ become_test_user }}/foo.txt" register: results - assert: that: - "results.stat.exists == True" - "results.stat.path|dirname|basename == '{{ become_test_user }}'" - name: tilde expansion honors become in template (become_method=su) become: True become_user: "{{ become_test_user }}" become_method: su template: src: "bar.j2" dest: "~/bar.txt" - name: check that the path in the user's home dir was created (become_method=su) become: True become_user: "{{ become_test_user }}" become_method: su stat: path: "~{{ become_test_user }}/bar.txt" register: results - assert: that: - "results.stat.exists == True" - "results.stat.path|dirname|basename == '{{ become_test_user }}'" - name: tilde expansion honors become in copy (become_method=su) become: True become_user: "{{ become_test_user }}" become_method: su copy: src: baz.txt dest: "~/baz.txt" - name: check that the path in the user's home dir was created (become_method=su) become: True become_user: "{{ become_test_user }}" become_method: su stat: path: "~{{ become_test_user }}/baz.txt" register: results - assert: that: - "results.stat.exists == True" - "results.stat.path|dirname|basename == '{{ become_test_user }}'" - name: Remove test user and their home dir (become_method=su) become: True become_user: root become_method: su user: name: "{{ become_test_user }}" state: "absent" remove: "yes" force: "yes"