I'm trying to only run a task if the previous task returned a 0 stdout.
- name: Check if efs-utils is already installed
ansible.builtin.shell: dpkg -l | grep efs-utils | wc -l
register: is_installed
ignore_errors: "{{ ansible_check_mode }}"
when: efs_id != "" and not ansible_check_mode
- name: Debugging
ansible.builtin.debug:
msg:
- "{{ is_installed.stdout }}"
- name: Install efs-utils
ansible.builtin.shell: cd /opt/efs-utils && ./build-deb.sh && sudo apt-get
-y install /opt/efs-utils/build/amazon-efs-utils*deb
when: is_installed.stdout == 0 and not ansible_check_mode
However, when executing the playbook, the "Install efs-utils" task is being
skipped.
Debug shows the "is_installed.stdout" output returning 0, as expected:
TASK [Check if efs-utils is already installed]