Ansible 2.5

Core Engine Freeze and Module Freeze: 22 January 2018

Core and Curated Module Freeze: 22 January 2018

Community Module Freeze: 7 February 2018

Release Candidate 1 will be 21 February, 2018

Target: March 2018

Service Release schedule: every 2-3 weeks

Release Manager

Matt Davis (IRC/GitHub: @nitzmahone)

Engine improvements

  • Assemble module improvements - assemble just skips when in check mode, it should be able to test if there is a difference and changed=true/false. - The same with diff, it should work as template modules does
  • Handle Password reset prompts cleaner
  • Tasks stats for rescues and ignores
  • Normalize temp dir usage across all subsystems
  • Add option to set playbook dir for adhoc, inventory and console to allow for ‘relative path loading’


  • Extend config to more plugin types and update plugins to support the new config


  • ansible-inventory option to output group variable assignment and data (–export)
  • Create inventory plugins for: - aws


  • Namespacing fact variables (via a config option) implemented in ansible/ansible PR #18445. Proposal found in ansible/proposals issue #17.
  • Make fact collectors and gather_subset specs finer grained
  • Eliminate unneeded deps between fact collectors
  • Allow fact collectors to indicate if they need information from another fact collector to be gathered first.

Static Loop Keyword

  • A simpler altenative to with_, loop: only takes a list
  • Remove complexity from loops, lookups are still available to users
  • Less confusing having a static directive vs a one that is dynamic depending on plugins loaded.


  • Vault secrets client inc new ‘keyring’ client

Runtime Check on Modules for Blacklisting

  • Filter on things like “supported_by” in module metadata
  • Provide users with an option of “warning, error or allow/ignore”
  • Configurable via ansible.cfg and environment variable


  • Implement gather_subset on Windows facts
  • Fix Windows async + become to allow them to work together
  • Implement Windows become flags for controlling various modes (done) - logontype - elevation behavior
  • Convert win_updates to action plugin for auto reboot and extra features (done)
  • Spike out changing the connection over to PSRP instead of WSMV (done- it’s possible)
  • Module updates
    • win_updates (done)
      • Fix win_updates to detect (or request) become
      • Add whitelist/blacklist features to win_updates
    • win_dsc further improvements (done)

General Cloud

  • Make multi-cloud provisioning easier
  • Diff mode will output provisioning task results of ansible-playbook runs
  • Terraform module


  • Focus on pull requests for various modules
  • Triage existing merges for modules
  • Module work
    • ec2_instance
    • ec2_vpc: Allow the addition of secondary IPv4 CIDRS to existing VPCs.
    • AWS Network Load Balancer support (NLB module, ASG support, etc)
    • rds_instance


  • Azure CLI auth (done)
  • Fix Azure module results to have “high-level” output instead of raw REST API dictionary (partial, more to come in 2.6)
  • Deprecate Azure automatic storage accounts in azure_rm_virtualmachine (breaks on Azure Stack, punted until AS supports managed disks)

Network Roadmap

  • Refactor common network shared code into package (done)
  • Convert various nxos modules to leverage declarative intent (done)
  • Refactor various modules to leverage the cliconf plugin (done)
  • Add various missing declarative modules for supported platforms and functions (done)
  • Implement a feature that handles platform differences and feature unavailability (done)
  • should provide control for deployment strategy
  • Create netconf connection plugin (done)
  • Create netconf fact module
  • Turn network_cli into a usable connection type (done)
  • Implements jsonrpc message passing for ansible-connection (done)
  • Improve logging for ansible-connection (done)
  • Improve stdout output for failures whilst using persistent connection (done)
  • Create IOS-XR NetConf Plugin and refactor iosxr modules to leverage netconf plugin (done)
  • Refactor junos modules to use netconf plugin (done)
  • Filters: Add a filter to convert XML response from a network device to JSON object (done)


  • Extend documentation to more plugins
  • Document vault-password-client scripts.
  • Network Documentation
    • New landing page (to replace intro_networking) (done)
    • Platform specific guides (done)
    • Walk through: Getting Started (done)
    • Networking and become (done)
    • Best practice (done)

Contributor Quality of Life

  • Finish PSScriptAnalyer integration with ansible-test (for enforcing Powershell style) (done)
  • Resolve issues requiring skipping of some integration tests on Python 3.