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’

Ansible-Config

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

Inventory

  • ansible-inventory option to output group variable assignment and data (–export)

  • Create inventory plugins for: - aws

Facts

  • 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 alternative 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

  • 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

Windows

  • 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

AWS

  • 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, and so on)

    • rds_instance

Azure

  • 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)

  • netconf-config.py 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)

Documentation

  • 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.