--- - name: "Finds a single user imputted into a prompt when playbook is run, then locks and expires the user" hosts: all gather_facts: yes vars_prompt: - name: username prompt: "User name to find" private: false tasks: - getent: database: passwd split: ':' register: user_info_list - name: "Show user names" debug: msg: "{{ getent_passwd | dict2items | map(attribute='key') | list }}" - name: "Set user_present to TRUE if username is present in list" set_fact: user_present: true when: username in getent_passwd | dict2items | map(attribute='key') | list - name: "Return FALSE if username is present in list" set_fact: user_present: false when: username not in getent_passwd | dict2items | map(attribute='key') | list - name: "Debug: output value of user_present" debug: msg: "user_present is {{ user_present }}" - name: "Debug: output info from username" debug: msg: "{{ getent_passwd | dict2items | selectattr('key', 'equalto', username) | list }}" when: user_present is true - name: "Lock and Expire user" user: name: "{{ username }}" password_lock: true expires: 1 when: user_present is true - name: "Debug: output info from username AFTER user is locked and expired" debug: msg: "{{ getent_passwd | dict2items | selectattr('key', 'equalto', username) | list }}" when: user_present is true