Ansible 2.1.0 RC1 has been released

Hi all, we’re happy to announce the RC1 release candidate for Ansible 2.0.1!

This release includes many new features and modules, including (but not limited to):

  • Official support for the networking modules, originally available in 2.0 as a tech preview.
  • Refactored and expanded support for Docker with new modules and many improvements to existing modules, as well as a new Kubernetes module.
  • Added new modules for Azure (see below for the full list)
  • Added the ability to specify includes as “static” (either through a configuration option or on a per-include basis). When includes are static, they are loaded at compile time and cannot contain dynamic features like loops.
  • Added a new strategy debug, which allows per-task debugging of playbooks.
  • Added a new option for tasks: loop_control. This currently only supports one option - loop_var, which allows a different loop variable from item to be used.
  • Added the ability to filter facts returned by the fact gathering setup step using the gather_subset option on the play or in the ansible.cfg configuration file. See http://docs.ansible.com/ansible/intro_configuration.html#gathering for details on the format of the option.
  • Added the ability to send per-item callbacks, rather than a batch update (this more closely resembles the behavior of Ansible 1.x).
  • Added facility for modules to send back ‘diff’ for display when ansible is called with --diff, updated several modules to return this info
  • Added ansible-console tool, a REPL shell that allows running adhoc tasks against a chosen inventory (based on https://github.com/dominis/ansible-shell)
  • Added two new variables, which are set when the rescue portion of a block is started:
  • ansible_failed_task, which contains the serialized version of the failed task.
  • ansible_failed_result, which contains the result of the failed task.
  • New meta action, meta: clear_host_errors which will clear any hosts which were marked as failed (but not unreachable hosts).
  • New meta action, meta: clear_facts which will remove existing facts for the current host from current memory and facts cache.
  • copy module can now transparently use a vaulted file as source, if vault passwords were provided it will decrypt and copy on the fly.
  • The way new-style python modules (which include all of the non-windows modules shipped with Ansible) are assembled before execution on the remote machine has been changed. The new way stays closer to how python imports modules which will make it easier to write modules which rely heavily on shared code.
  • Reduce the situations in which a module can end up as world readable. For details, see: https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user
  • Re-implemented the retry file feature, which had been left out of 2.0 (fix was backported to 2.0.1 originally).
  • Improved winrm argument validation and feature sniffing (for upcoming pywinrm NTLM support).
  • Improved winrm error handling: basic parsing of stderr from CLIXML stream.

Altogether, there are almost 90 new modules in this release, along with a new strategy (debug) and several new inventory scripts.

How do you get it?

First off: thanks for all the efforts!

Hi all, we're happy to announce the RC1 release candidate for Ansible 2.0.1!

[...]

* Added a new strategy `debug`, which allows per-task debugging of
playbooks.

Is that based on the pull request by Yagami Kishin?
Then it would be nice to thank all contributors in the announcement ...
but esp. this one because it gets heavily advertised.

Regards,
Benjamin

Is there any aws ami for ansible tower?

Yes, that is his debug strategy.

Tanzeem, please email support@ansible.com regarding Tower questions.

So I am trying to utilize ansible_failed_result and this works great for non-with_items tasks. However, what I have noticed is that the object that is returned from a with_items tasks does not have that full object of the task just the following:


ok: [localhost] => {
"ansible_failed_result": {
"changed": true,
"failed": true,
"msg": "One or more items failed"
}
}