- name: remove the test user user: name: ansibulluser state: absent - name: try to create a user user: name: ansibulluser state: present register: user_test0_0 - name: create the user again user: name: ansibulluser state: present register: user_test0_1 - debug: var: user_test0 verbosity: 2 - name: make a list of users script: userlist.sh {{ ansible_facts.distribution }} register: user_names - debug: var: user_names verbosity: 2 - name: validate results for testcase 0 assert: that: - user_test0_0 is changed - user_test0_1 is not changed - '"ansibulluser" in user_names.stdout_lines' - name: run existing user check tests user: name: "{{ user_names.stdout_lines | random }}" state: present create_home: no loop: "{{ range(1, 5+1) | list }}" register: user_test1 - debug: var: user_test1 verbosity: 2 - name: validate results for testcase 1 assert: that: - user_test1.results is defined - user_test1.results | length == 5 - name: validate changed results for testcase 1 assert: that: - "user_test1.results[0] is not changed" - "user_test1.results[1] is not changed" - "user_test1.results[2] is not changed" - "user_test1.results[3] is not changed" - "user_test1.results[4] is not changed" - "user_test1.results[0]['state'] == 'present'" - "user_test1.results[1]['state'] == 'present'" - "user_test1.results[2]['state'] == 'present'" - "user_test1.results[3]['state'] == 'present'" - "user_test1.results[4]['state'] == 'present'" - name: register user informations when: ansible_facts.system == 'Darwin' command: dscl . -read /Users/ansibulluser register: user_test2 - name: validate user defaults for MacOS when: ansible_facts.system == 'Darwin' assert: that: - "'RealName: ansibulluser' in user_test2.stdout_lines " - "'PrimaryGroupID: 20' in user_test2.stdout_lines " #https://github.com/ansible/ansible/issues/82490 - name: Create a new user with custom shell to test ~ expansion user: name: randomuserthomas shell: ~/custom_shell register: user_create_result - name: Create a new user with custom shell to test ~ expansion second time should show ok not changed user: name: randomuserthomas shell: ~/custom_shell register: user_creation_result - name: Assert that the user with a tilde in the shell path is created assert: that: - user_creation_result is not changed - user_create_result is changed - name: remove the randomuserthomas user to clean up user: name: randomuserthomas state: absent force: true