title: Ansible: Increment count in play recap for failed tasks when using ignore_errors
body: <p>I am trying to not only use ansible as a configuration tool, but being able to perform mass validation checks across a series of severs easily.  </p>
  
  <p>As such, I am grabbing a bunch of different pieces of information at the beginning of the playbook, and then performing checks against them.  </p>
  
  <p>Seeing as these are validation checks and not configurations, I want all of my failures at once, rather than getting one, the playbook failing, having to address it and then run it again, over and over to find my multiple failures.  </p>
  
  <p>I am able to continue running the playbook by putting an ignore_errors flag into it, but it does not increment the "failed" count at the end of the playbook, and I would rather not have users have to scroll up through all of the output to look for red text, or scrape the logs to see if there was an error, especially seeing as there is a counter right at the end that works as a perfect at a glance reference.</p>
  
  <p>I am using version Ansible 2.4.2.0, on Ubuntu version 14.04</p>
  
  <p>Here is my playbook:</p>
  
  <pre><code>- name: Validates Preship configuration
    hosts:
      - active
      - dr
    become_user: root
    become: true
    become_method: su
    roles:
      - preShipValidation
    ignore_errors: yes
  </code></pre>
  
  <p>And then after importing tasks into a main.yml file, and running a separate task to populate my host_vars, I run the following task:</p>
  
  <pre><code>- name: BIOS Version Check for Equus or Seneca 2000/2100
    assert:
      that:
        - '"2.0a" in dmidecode_bios_ver.stdout'
    when: '"2000" in appliance_model and
           "X10DRW" in motherboard_model'
  </code></pre>
  
  <p>Which when ran will get me the following output (edited for easier reading)</p>
  
  <pre><code>TASK [preShipValidation : BIOS Version Check for Equus or Seneca 2000/2100] ******************************************************************************************************************
  skipping: [server1] =&gt; {"changed": false, "skip_reason": "Conditional result was False"}
  skipping: [server2] =&gt; {"changed": false, "skip_reason": "Conditional result was False"}
  fatal: [server3]: FAILED! =&gt; {
      "assertion": "\"2.0a\" in dmidecode_bios_ver.stdout",
      "changed": false,
      "evaluated_to": false
  }
  ...ignoring
  ok: [server4] =&gt; {
      "changed": false,
      "msg": "All assertions passed"
  }
  
  PLAY RECAP ***********************************************************************************************************************************************************************************
  server1                  : ok=11   changed=4    unreachable=0    failed=0
  server2                  : ok=12   changed=4    unreachable=0    failed=0
  server3                  : ok=10   changed=4    unreachable=0    failed=0
  server4                  : ok=11   changed=4    unreachable=0    failed=0
  </code></pre>
  
  <p>Any ideas on how to get that failed count to show the errors it ignored?</p>