Ansible – check if file contains text

This is perhaps an unorthodox way to check if a file contains specific text, but it does seem to be the simplest and mostly commonly recommended on Ansible forums.

- name: "Search for mytext in /path/to/file_to_check"
  lineinfile:
    path: /path/to/file_to_check
    line: "mytext"
    state: present
  check_mode: yes
  register: myTextCheck

The key thing to note here is the check_mode which effectively performs a dry run for lineinfile without actually modifying the file. As such, if the myTextCheck variable is ‘changed’, then this means that the file does not contain mytext.

- name: Task to run if mytext DOES NOT EXIST in file_to_check
  shell: /dir/script_to_run.sh
  register: anyVar
  ignore_errors: true
  when: 'myTextCheck is changed'