Functional testing using assert
The check mode will only work when you want to check whether a task will change anything on the host or not. This will not help when you want to check whether the output of your module is what you expected. For example, let's say you wrote a module that will check if a port is up or not. In order to test this, you might need to check the output of your module and see whether it matches the desired output or not. To perform such tests, Ansible provides a way to directly compare the output of a module with the desired output.
Let's see how this works creating the file playbooks/assert_ls.yaml
with the following content:
- hosts: localhost tasks: - name: List files in /tmp command: ls /tmp register: list_files - name: Check if file testfile.txt exists assert: that: - "'testfile.txt' in list_files.stdout_lines"
In the preceding playbook, we're...