The output is a string "0" but your condition uses a bare 0 which is
interpreted as a Boolean false.

But why use a shell workaround, if there is package_facts:

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/package_facts_module.html

Ideally AWS would provide apt repositories but that's not the case (yet - I
see it's been requested, for instance
https://github.com/aws/efs-utils/issues/111)



On Fri, 10 Dec 2021 at 01:05, Lucas Possamai <drum.lu...@gmail.com> wrote:

> 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]
> ********************************************************************************
> changed: [localhost]
>
> TASK [Debugging]
> **************************************************************************************************************
> ok: [localhost] => {
>     "msg": [
>         "0"
>     ]
> }
>
> TASK [debug]
> ******************************************************************************************************************
> ok: [localhost] => {
>     "is_installed": {
>         "changed": true,
>         "cmd": "dpkg -l | grep efs-utils | wc -l",
>         "delta": "0:00:00.013971",
>         "end": "2021-12-09 23:58:31.128076",
>         "failed": false,
>         "msg": "",
>         "rc": 0,
>         "start": "2021-12-09 23:58:31.114105",
>         "stderr": "",
>         "stderr_lines": [],
>         "stdout": "0",
>         "stdout_lines": [
>             "0"
>         ]
>     }
> }
>
> TASK [Install efs-utils]
> ******************************************************************************************************
> skipping: [localhost]
>
>
> What am I missing here?
>
> Ansible version 2.11.6
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to ansible-project+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/CAE_gQfVO%3DCDER0KLREJ2zevRB45VmvbCkS21AtFAC5zotr4uNw%40mail.gmail.com
> <https://groups.google.com/d/msgid/ansible-project/CAE_gQfVO%3DCDER0KLREJ2zevRB45VmvbCkS21AtFAC5zotr4uNw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
-- 
Sent from a mobile device - please excuse the brevity, spelling and
punctuation.

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAL8fbwO1ey9TourUaD%3DME6qbpY3sPbtMm0XQDerUfqg3X38GUg%40mail.gmail.com.

Reply via email to