- block: - name: Create a local temporary directory shell: mktemp -d /tmp/ansible_test.XXXXXXXXX register: tempfile_result connection: local - set_fact: local_temp_dir: '{{ tempfile_result.stdout }}' # output_dir is hardcoded in test/runner/lib/executor.py and created there remote_dir: '{{ output_dir }}' - file: path={{local_temp_dir}} state=directory name: ensure temp dir exists - name: Create remote unprivileged remote user user: name: '{{ remote_unprivileged_user }}' register: user - file: path: "{{ user.home }}/.ssh" owner: '{{ remote_unprivileged_user }}' state: directory mode: 0700 - name: Duplicate authorized_keys copy: src: $HOME/.ssh/authorized_keys dest: '{{ user.home }}/.ssh/authorized_keys' owner: '{{ remote_unprivileged_user }}' mode: 0600 remote_src: yes - file: path: "{{ remote_dir }}" state: directory remote_user: '{{ remote_unprivileged_user }}' # execute tests tasks using an unprivileged user, this is useful to avoid # local/remote ambiguity when controller and managed hosts are identical. - import_tasks: tests.yml remote_user: '{{ remote_unprivileged_user }}' always: - name: Cleaning file: path: '{{ local_temp_dir }}' state: absent connection: local - name: Remote unprivileged remote user user: name: '{{ remote_unprivileged_user }}' state: absent remove: yes