# 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

Topics

- Ansible 2.5

  - Release Manager

  - Engine improvements

  - Ansible-Config

  - Inventory

  - Facts

  - Static Loop Keyword

  - Vault

  - Runtime Check on Modules for Blacklisting

  - Windows

  - General Cloud

  - AWS

  - Azure

  - Network Roadmap

  - Documentation

  - Contributor Quality of Life

## 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 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

- 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, etc)

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