Question:
I’m very new to Ansible
Is it possible to check if a string exists in a file using Ansible.
I want to check is a user has access to a server.
this can be done on the server using cat /etc/passwd | grep username
but I want Ansible to stop if the user is not there.
I have tried to use the lineinfile
but can’t seem to get it to return.
code
1 2 3 4 5 6 |
- name: find lineinfile: dest=/etc/passwd regexp=[user] state=present line="user" |
The code above adds user to the file if he is not there. All i want to do is check. I don’t want to modify the file in any way, is this possible
Thanks.
Answer:
I’d probably register and evaluate a variable.
The following simple playbook works for me:
1 2 3 4 5 6 7 8 9 10 11 |
- hosts: localhost tasks: - name: read the passwd file shell: cat /etc/passwd register: user_accts - name: a task that only happens if the user exists when: user_accts.stdout.find('hillsy') != -1 debug: msg="user hillsy exists" |