Nope, not a bug. The shell/command modules by default consider a nonzero 
return code a failure. Grep returns 1 if it didn't find anything (see 
"rc=1" in the response?). 

You can alter this behavior using a combination of register and failed_when 
to specify your own conditions for failure on the task(s) in question.

-Matt

On Thursday, November 17, 2016 at 8:14:59 AM UTC-8, 
[email protected] wrote:
>
> Hello,
> I encounter a bizarre behavior with these the shell module and the new 
> win_shell module.
>
> It appears that, if the execution of the shell command does not produce 
> anything in the standard output, the module considers that it is in failure.
>
> In my opinion, this should not be the case. Is this behavior an error or 
> is it voluntary?
>
> I can use "ignore_errors: yes" to continue the playbook but it is not very 
> clean.
>
> Here are some tasks to illustrate the problem :
>
>         # ----------------------------------
>         -   name: "Use Case 1"
>             shell: grep "log" /etc/fstab
>             ignore_errors: yes
>             register: shell_result
>             
>         -   debug: var=shell_result            
>
>         # ----------------------------------
>         -   name: "Use Case 2"
>             shell: grep "xxx" /etc/fstab
>             ignore_errors: yes
>             register: shell_result
>             
>         -   debug: var=shell_result            
>
>         # ----------------------------------
>         -   name: "Use Case 3"
>             shell: grep "log" /etc/fstab > 
> /tmp/test_ansible/use_case_3_result.txt
>             ignore_errors: yes
>             register: shell_result
>             
>         -   debug: var=shell_result            
>
>         # ----------------------------------
>         -   name: "Use Case 4"
>             shell: grep "xxx" /etc/fstab > 
> /tmp/test_ansible/use_case_4_result.txt
>             ignore_errors: yes
>             register: shell_result
>             
>         -   debug: var=shell_result            
>
>
> Here are the results :
>         
>
> TASK [Use Case 1] 
> **************************************************************
> changed: [lnildt01]
>
> TASK [debug] 
> *******************************************************************
> ok: [lnildt01] => {
>     "shell_result": {
>         "changed": true,
>         "cmd": "grep \"log\" /etc/fstab",
>         "delta": "0:00:00.003975",
>         "end": "2016-11-17 09:35:15.918729",
>         "rc": 0,
>         "start": "2016-11-17 09:35:15.914754",
>         "stderr": "",
>         "stdout": "/dev/mapper/rootvg-lv_logs /app/logs             
> \text4    defaults        1 2",
>         "stdout_lines": [
>             "/dev/mapper/rootvg-lv_logs /app/logs             \text4    
> defaults        1 2"
>         ],
>         "warnings": []
>     }
> }
>
> TASK [Use Case 2] 
> **************************************************************
> fatal: [lnildt01]: FAILED! => {"changed": true, "cmd": "grep \"xxx\" 
> /etc/fstab", "delta": "0:00:00.003907", "end": "2016-11-17 
> 09:35:16.234674", "failed": true, "rc": 1, "start": "2016-11-17 
> 09:35:16.230767", "stderr": "", "stdout": "", "stdout_lines": [], 
> "warnings": []}
> ...ignoring
>
> TASK [debug] 
> *******************************************************************
> ok: [lnildt01] => {
>     "shell_result": {
>         "changed": true,
>         "cmd": "grep \"xxx\" /etc/fstab",
>         "delta": "0:00:00.003907",
>         "end": "2016-11-17 09:35:16.234674",
>         "failed": true,
>         "rc": 1,
>         "start": "2016-11-17 09:35:16.230767",
>         "stderr": "",
>         "stdout": "",
>         "stdout_lines": [],
>         "warnings": []
>     }
> }
>
> TASK [Use Case 3] 
> **************************************************************
> changed: [lnildt01]
>
> TASK [debug] 
> *******************************************************************
> ok: [lnildt01] => {
>     "shell_result": {
>         "changed": true,
>         "cmd": "grep \"log\" /etc/fstab > 
> /tmp/test_ansible/use_case_3_result.txt",
>         "delta": "0:00:00.004247",
>         "end": "2016-11-17 09:35:16.547488",
>         "rc": 0,
>         "start": "2016-11-17 09:35:16.543241",
>         "stderr": "",
>         "stdout": "",
>         "stdout_lines": [],
>         "warnings": []
>     }
> }
>
> TASK [Use Case 4] 
> **************************************************************
> fatal: [lnildt01]: FAILED! => {"changed": true, "cmd": "grep \"xxx\" 
> /etc/fstab > /tmp/test_ansible/use_case_4_result.txt", "delta": 
> "0:00:00.004442", "end": "2016-11-17 09:35:16.859715", "failed": true, 
> "rc": 1, "start": "2016-11-17 09:35:16.855273", "stderr": "", "stdout": "", 
> "stdout_lines": [], "warnings": []}
> ...ignoring
> TASK [debug] 
> *******************************************************************
> ok: [lnildt01] => {
>     "shell_result": {
>         "changed": true,
>         "cmd": "grep \"xxx\" /etc/fstab > 
> /tmp/test_ansible/use_case_4_result.txt",
>         "delta": "0:00:00.004442",
>         "end": "2016-11-17 09:35:16.859715",
>         "failed": true,
>         "rc": 1,
>         "start": "2016-11-17 09:35:16.855273",
>         "stderr": "",
>         "stdout": "",
>         "stdout_lines": [],
>         "warnings": []
>     }
> }
>
> The tasks "Use Case 2" and "Use Case 4" failed while the shell command was 
> executed correctly.
>
> Moreover, in the use case 4, the file 
> /tmp/test_ansible/use_case_4_result.txt was created: the shell command has 
> therefore worked well.
>
> NB1: This behavior is identical with the win_shell module for windows 
> hosts.
> NB2 : I can't downgrade the version of Ansible to test.
>
> Regards,
>
> Fabrice Perko
>
>
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/c4d47018-5beb-47ae-a5cd-d976e3822559%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to