diff --git a/bin/ansible b/bin/ansible index 2117abd1d07..0b0b536679c 100755 --- a/bin/ansible +++ b/bin/ansible @@ -127,6 +127,11 @@ if __name__ == '__main__': (options, args) = cli.parse() try: (runner, results) = cli.run(options, args) + for result in results['contacted'].values(): + if 'failed' in result or result.get('rc', 0) != 0: + sys.exit(2) + if results['dark']: + sys.exit(2) except errors.AnsibleError, e: # Generic handler for ansible specific errors print "ERROR: %s" % str(e) diff --git a/bin/ansible-playbook b/bin/ansible-playbook index 2332e08567b..64d5ee66e50 100755 --- a/bin/ansible-playbook +++ b/bin/ansible-playbook @@ -140,6 +140,10 @@ def main(args): colorize('failed', t['failures'], 'red')) print "\n" + for h in hosts: + stats = pb.stats.summarize(h) + if stats['failures'] != 0 or stats['unreachable'] != 0: + return 2 except errors.AnsibleError, e: print >>sys.stderr, "ERROR: %s" % e