Compare commits
187 Commits
v2.11.2
...
v2.10.1rc2
| Author | SHA1 | Date | |
|---|---|---|---|
| 0e68601002 | |||
| 9a48ffd61b | |||
| 314834c6d3 | |||
| 1678577681 | |||
| dc97027453 | |||
| d3e0cb4320 | |||
| 393412dc64 | |||
| 7131c75d93 | |||
| 5688fef486 | |||
| b936539ae1 | |||
| ce7b95499f | |||
| d38a7ff577 | |||
| c39753d7ad | |||
| 0c32a4f793 | |||
| 0c6edb34f9 | |||
| a253c93fd1 | |||
| 714cd2ad2e | |||
| f41ff33ca6 | |||
| 00caeff928 | |||
| 6b639f147d | |||
| 4b1df6cc05 | |||
| e33fff922a | |||
| 092ec680e6 | |||
| e95b45c5ec | |||
| 7b3d2a00a0 | |||
| 7662568bd8 | |||
| 67b2b8caf1 | |||
| ca118613aa | |||
| 02f4fc1a14 | |||
| 90a8d07f31 | |||
| c04a751f0e | |||
| 3f41c76564 | |||
| 6d1cc0dede | |||
| ac248cf34a | |||
| 4cfe2cf8dc | |||
| 4dece71417 | |||
| 724b3648ea | |||
| 3be597419d | |||
| 1252323e34 | |||
| 5f40a4efa6 | |||
| 72e9974f10 | |||
| 26bb114ccb | |||
| 9a26fbe58e | |||
| 8775001671 | |||
| a007176d7e | |||
| 4442661611 | |||
| 13dff99f50 | |||
| e0a550efea | |||
| 1984a34c2b | |||
| aa51c6000a | |||
| a06730cdb0 | |||
| c96e955c76 | |||
| 1895b7ab5e | |||
| fa18566c3e | |||
| 3b9ee86381 | |||
| 8c4af4bc3b | |||
| a6ed955132 | |||
| ae9c1167e4 | |||
| 6e3271aa61 | |||
| 006a21eae2 | |||
| c968020d52 | |||
| b9a406f890 | |||
| 4b03d898f3 | |||
| a187613da8 | |||
| 72aa55d514 | |||
| be5aab177c | |||
| 3e7e3ee352 | |||
| 58517e52e2 | |||
| 224a0b4809 | |||
| b8eb35ef76 | |||
| 3900f82d00 | |||
| 9f4748cb2d | |||
| 719c40bfdf | |||
| b764d381f0 | |||
| abfedb06c3 | |||
| 5cb96087e6 | |||
| a8217f1bd4 | |||
| 8389f4df0b | |||
| a75b3601d9 | |||
| 4c459f341b | |||
| c39e536d84 | |||
| 6f70d40d51 | |||
| 293d6c59bb | |||
| bf479eb7f3 | |||
| 155041d8ee | |||
| be28e98cf2 | |||
| 4280efccc4 | |||
| 8d2b25d490 | |||
| 12784beb87 | |||
| f28fa88448 | |||
| 9b992c0b78 | |||
| cea2544943 | |||
| c528e648a6 | |||
| c53a68bf16 | |||
| e9c9c02e0a | |||
| 6dd05dfe67 | |||
| 3ee5b46ba7 | |||
| cc8d180801 | |||
| 7969b60552 | |||
| 180eea8089 | |||
| 7e4cffc5d2 | |||
| 8c2754e6d3 | |||
| 7cdba7c923 | |||
| 529dad9a39 | |||
| 4cbfb08da5 | |||
| 18dd73c147 | |||
| 61f8f8ce7f | |||
| 7eb5f53294 | |||
| 1eb2afac63 | |||
| 4170786cd9 | |||
| 32c818a1c8 | |||
| 75be854360 | |||
| 9cd47492be | |||
| 448f17e9a5 | |||
| ffd3757fc3 | |||
| 0d230b4f56 | |||
| 9b8a649f2e | |||
| a7f4c6a37f | |||
| d329985d4c | |||
| ed07821a59 | |||
| 524d4b08dc | |||
| 895fc1d659 | |||
| 652ac88931 | |||
| 46b1a999c6 | |||
| 3eba8b8792 | |||
| a5b46b6372 | |||
| 6b6ecaf742 | |||
| 9b7ed6b81b | |||
| 255dfca7f6 | |||
| 86b24498b7 | |||
| 33e5f1d661 | |||
| 963bdd9983 | |||
| 6cd015d7e2 | |||
| 15355ed059 | |||
| 827c47d9bc | |||
| 5ea6de4e7d | |||
| 94a81f7b44 | |||
| a5c0b11913 | |||
| 422e976649 | |||
| df3246b7d1 | |||
| 865ba1953b | |||
| 212d2024f4 | |||
| d0e37aeec1 | |||
| 7dfda4026e | |||
| e1c0688e43 | |||
| c936b8b638 | |||
| f9a737b9b2 | |||
| 1e03b54d23 | |||
| 367c9b7eda | |||
| 3afa0424b3 | |||
| 273159da4c | |||
| 95ec1618ef | |||
| b6f6067dfd | |||
| c2b69fd30e | |||
| ddc78622a4 | |||
| 957f0c27fc | |||
| a707466c0b | |||
| 8cd66ce95a | |||
| 3204d260dd | |||
| f28fabe6ef | |||
| ba645400bf | |||
| 73d9054b32 | |||
| 143827b0ad | |||
| e57afc774c | |||
| 7872d60413 | |||
| 374d4ecd98 | |||
| d07a84e233 | |||
| 0890d9fbb2 | |||
| 14997f0309 | |||
| 43ef13d206 | |||
| a1224760c4 | |||
| 4f8e1c0cee | |||
| ad61774acf | |||
| 0abb5e597e | |||
| e35e4b4ab0 | |||
| 70da336de9 | |||
| 73ee85145b | |||
| bcd7c860e2 | |||
| 222d35ebbd | |||
| 2a4f4dd526 | |||
| 82a3366701 | |||
| 0b7e3694c7 | |||
| a45d4fe80d | |||
| aa8f73f7e7 | |||
| 8002b4d4fc | |||
| cbfe2e642f | |||
| ed2de20bca |
@ -1,254 +0,0 @@
|
||||
trigger:
|
||||
batch: true
|
||||
branches:
|
||||
include:
|
||||
- devel
|
||||
- stable-*
|
||||
|
||||
pr:
|
||||
autoCancel: true
|
||||
branches:
|
||||
include:
|
||||
- devel
|
||||
- stable-*
|
||||
|
||||
schedules:
|
||||
- cron: 0 7 * * *
|
||||
displayName: Nightly
|
||||
always: true
|
||||
branches:
|
||||
include:
|
||||
- devel
|
||||
- stable-*
|
||||
|
||||
variables:
|
||||
- name: checkoutPath
|
||||
value: ansible
|
||||
- name: coverageBranches
|
||||
value: devel
|
||||
- name: pipelinesCoverage
|
||||
value: coverage
|
||||
- name: entryPoint
|
||||
value: test/utils/shippable/shippable.sh
|
||||
- name: fetchDepth
|
||||
value: 500
|
||||
|
||||
resources:
|
||||
containers:
|
||||
- container: default
|
||||
image: quay.io/ansible/azure-pipelines-test-container:1.9.0
|
||||
|
||||
pool: Standard
|
||||
|
||||
stages:
|
||||
- stage: Sanity
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
nameFormat: Test {0}
|
||||
testFormat: sanity/{0}
|
||||
targets:
|
||||
- test: 1
|
||||
- test: 2
|
||||
- test: 3
|
||||
- test: 4
|
||||
- test: 5
|
||||
- stage: Units
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
nameFormat: Python {0}
|
||||
testFormat: units/{0}
|
||||
targets:
|
||||
- test: 2.6
|
||||
- test: 2.7
|
||||
- test: 3.5
|
||||
- test: 3.6
|
||||
- test: 3.7
|
||||
- test: 3.8
|
||||
- test: 3.9
|
||||
- stage: Windows
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
nameFormat: Server {0}
|
||||
testFormat: windows/{0}/1
|
||||
targets:
|
||||
- test: 2012
|
||||
- test: 2012-R2
|
||||
- test: 2016
|
||||
- test: 2019
|
||||
- stage: Remote
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
targets:
|
||||
- name: macOS 11.1
|
||||
test: macos/11.1
|
||||
- name: RHEL 7.9
|
||||
test: rhel/7.9
|
||||
- name: RHEL 8.3 py36
|
||||
test: rhel/8.3@3.6
|
||||
- name: RHEL 8.3 py38
|
||||
test: rhel/8.3@3.8
|
||||
- name: FreeBSD 11.4
|
||||
test: freebsd/11.4
|
||||
- name: FreeBSD 12.2
|
||||
test: freebsd/12.2
|
||||
groups:
|
||||
- 1
|
||||
- 2
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
- stage: Docker
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
testFormat: linux/{0}
|
||||
targets:
|
||||
- name: Alpine 3
|
||||
test: alpine3
|
||||
- name: CentOS 6
|
||||
test: centos6
|
||||
- name: CentOS 7
|
||||
test: centos7
|
||||
- name: CentOS 8
|
||||
test: centos8
|
||||
- name: Fedora 32
|
||||
test: fedora32
|
||||
- name: Fedora 33
|
||||
test: fedora33
|
||||
- name: openSUSE 15 py2
|
||||
test: opensuse15py2
|
||||
- name: openSUSE 15 py3
|
||||
test: opensuse15
|
||||
- name: Ubuntu 18.04
|
||||
test: ubuntu1804
|
||||
- name: Ubuntu 20.04
|
||||
test: ubuntu2004
|
||||
groups:
|
||||
- 1
|
||||
- 2
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
- stage: Galaxy
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
nameFormat: Python {0}
|
||||
testFormat: galaxy/{0}/1
|
||||
targets:
|
||||
- test: 2.7
|
||||
- test: 3.6
|
||||
- stage: Generic
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
nameFormat: Python {0}
|
||||
testFormat: generic/{0}/1
|
||||
targets:
|
||||
- test: 2.7
|
||||
- test: 3.6
|
||||
- stage: Incidental_Remote
|
||||
displayName: Incidental Remote
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
testFormat: i/{0}
|
||||
targets:
|
||||
- name: OS X 10.11
|
||||
test: osx/10.11
|
||||
- name: RHEL 7.9
|
||||
test: rhel/7.9
|
||||
- name: RHEL 8.3 py36
|
||||
test: rhel/8.3@3.6
|
||||
- name: RHEL 8.3 py38
|
||||
test: rhel/8.3@3.8
|
||||
- name: FreeBSD 11.4
|
||||
test: freebsd/11.4
|
||||
- name: FreeBSD 12.2
|
||||
test: freebsd/12.2
|
||||
- stage: Incidental_Docker
|
||||
displayName: Incidental Docker
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
testFormat: i/linux/{0}
|
||||
targets:
|
||||
- name: CentOS 6
|
||||
test: centos6
|
||||
- name: CentOS 7
|
||||
test: centos7
|
||||
- name: CentOS 8
|
||||
test: centos8
|
||||
- name: Fedora 32
|
||||
test: fedora32
|
||||
- name: Fedora 33
|
||||
test: fedora33
|
||||
- name: openSUSE 15 py2
|
||||
test: opensuse15py2
|
||||
- name: openSUSE 15 py3
|
||||
test: opensuse15
|
||||
- name: Ubuntu 18.04
|
||||
test: ubuntu1804
|
||||
- name: Ubuntu 20.04
|
||||
test: ubuntu2004
|
||||
- stage: Incidental_Windows
|
||||
displayName: Incidental Windows
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
nameFormat: Server {0}
|
||||
testFormat: i/windows/{0}
|
||||
targets:
|
||||
- test: 2012
|
||||
- test: 2012-R2
|
||||
- test: 2016
|
||||
- test: 2019
|
||||
- stage: Incidental
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
parameters:
|
||||
testFormat: i/{0}/1
|
||||
targets:
|
||||
- name: IOS Python
|
||||
test: ios/csr1000v/
|
||||
- name: VyOS Python 2.7
|
||||
test: vyos/1.1.8/2.7
|
||||
- name: VyOS Python 3.6
|
||||
test: vyos/1.1.8/3.6
|
||||
- name: AWS Python 2.7
|
||||
test: aws/2.7
|
||||
- name: AWS Python 3.6
|
||||
test: aws/3.6
|
||||
- name: Cloud Python
|
||||
test: cloud/
|
||||
- stage: Summary
|
||||
condition: succeededOrFailed()
|
||||
dependsOn:
|
||||
- Sanity
|
||||
- Units
|
||||
- Windows
|
||||
- Remote
|
||||
- Docker
|
||||
- Galaxy
|
||||
- Generic
|
||||
- Incidental_Remote
|
||||
- Incidental_Docker
|
||||
- Incidental_Windows
|
||||
- Incidental
|
||||
jobs:
|
||||
- template: templates/coverage.yml
|
||||
@ -1,20 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Aggregate code coverage results for later processing.
|
||||
|
||||
set -o pipefail -eu
|
||||
|
||||
agent_temp_directory="$1"
|
||||
|
||||
PATH="${PWD}/bin:${PATH}"
|
||||
|
||||
mkdir "${agent_temp_directory}/coverage/"
|
||||
|
||||
options=(--venv --venv-system-site-packages --color -v)
|
||||
|
||||
ansible-test coverage combine --export "${agent_temp_directory}/coverage/" "${options[@]}"
|
||||
|
||||
if ansible-test coverage analyze targets generate --help >/dev/null 2>&1; then
|
||||
# Only analyze coverage if the installed version of ansible-test supports it.
|
||||
# Doing so allows this script to work unmodified for multiple Ansible versions.
|
||||
ansible-test coverage analyze targets generate "${agent_temp_directory}/coverage/coverage-analyze-targets.json" "${options[@]}"
|
||||
fi
|
||||
@ -1,60 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
Combine coverage data from multiple jobs, keeping the data only from the most recent attempt from each job.
|
||||
Coverage artifacts must be named using the format: "Coverage $(System.JobAttempt) {StableUniqueNameForEachJob}"
|
||||
The recommended coverage artifact name format is: Coverage $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)
|
||||
Keep in mind that Azure Pipelines does not enforce unique job display names (only names).
|
||||
It is up to pipeline authors to avoid name collisions when deviating from the recommended format.
|
||||
"""
|
||||
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
|
||||
def main():
|
||||
"""Main program entry point."""
|
||||
source_directory = sys.argv[1]
|
||||
|
||||
if '/ansible_collections/' in os.getcwd():
|
||||
output_path = "tests/output"
|
||||
else:
|
||||
output_path = "test/results"
|
||||
|
||||
destination_directory = os.path.join(output_path, 'coverage')
|
||||
|
||||
if not os.path.exists(destination_directory):
|
||||
os.makedirs(destination_directory)
|
||||
|
||||
jobs = {}
|
||||
count = 0
|
||||
|
||||
for name in os.listdir(source_directory):
|
||||
match = re.search('^Coverage (?P<attempt>[0-9]+) (?P<label>.+)$', name)
|
||||
label = match.group('label')
|
||||
attempt = int(match.group('attempt'))
|
||||
jobs[label] = max(attempt, jobs.get(label, 0))
|
||||
|
||||
for label, attempt in jobs.items():
|
||||
name = 'Coverage {attempt} {label}'.format(label=label, attempt=attempt)
|
||||
source = os.path.join(source_directory, name)
|
||||
source_files = os.listdir(source)
|
||||
|
||||
for source_file in source_files:
|
||||
source_path = os.path.join(source, source_file)
|
||||
destination_path = os.path.join(destination_directory, source_file + '.' + label)
|
||||
print('"%s" -> "%s"' % (source_path, destination_path))
|
||||
shutil.copyfile(source_path, destination_path)
|
||||
count += 1
|
||||
|
||||
print('Coverage file count: %d' % count)
|
||||
print('##vso[task.setVariable variable=coverageFileCount]%d' % count)
|
||||
print('##vso[task.setVariable variable=outputPath]%s' % output_path)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Check the test results and set variables for use in later steps.
|
||||
|
||||
set -o pipefail -eu
|
||||
|
||||
if [[ "$PWD" =~ /ansible_collections/ ]]; then
|
||||
output_path="tests/output"
|
||||
else
|
||||
output_path="test/results"
|
||||
fi
|
||||
|
||||
echo "##vso[task.setVariable variable=outputPath]${output_path}"
|
||||
|
||||
if compgen -G "${output_path}"'/junit/*.xml' > /dev/null; then
|
||||
echo "##vso[task.setVariable variable=haveTestResults]true"
|
||||
fi
|
||||
|
||||
if compgen -G "${output_path}"'/bot/ansible-test-*' > /dev/null; then
|
||||
echo "##vso[task.setVariable variable=haveBotResults]true"
|
||||
fi
|
||||
|
||||
if compgen -G "${output_path}"'/coverage/*' > /dev/null; then
|
||||
echo "##vso[task.setVariable variable=haveCoverageData]true"
|
||||
fi
|
||||
@ -1,27 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Upload code coverage reports to codecov.io.
|
||||
# Multiple coverage files from multiple languages are accepted and aggregated after upload.
|
||||
# Python coverage, as well as PowerShell and Python stubs can all be uploaded.
|
||||
|
||||
set -o pipefail -eu
|
||||
|
||||
output_path="$1"
|
||||
|
||||
curl --silent --show-error https://ansible-ci-files.s3.us-east-1.amazonaws.com/codecov/codecov.sh > codecov.sh
|
||||
|
||||
for file in "${output_path}"/reports/coverage*.xml; do
|
||||
name="${file}"
|
||||
name="${name##*/}" # remove path
|
||||
name="${name##coverage=}" # remove 'coverage=' prefix if present
|
||||
name="${name%.xml}" # remove '.xml' suffix
|
||||
|
||||
bash codecov.sh \
|
||||
-f "${file}" \
|
||||
-n "${name}" \
|
||||
-X coveragepy \
|
||||
-X gcov \
|
||||
-X fix \
|
||||
-X search \
|
||||
-X xcode \
|
||||
|| echo "Failed to upload code coverage report to codecov.io: ${file}"
|
||||
done
|
||||
@ -1,15 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Generate code coverage reports for uploading to Azure Pipelines and codecov.io.
|
||||
|
||||
set -o pipefail -eu
|
||||
|
||||
PATH="${PWD}/bin:${PATH}"
|
||||
|
||||
if ! ansible-test --help >/dev/null 2>&1; then
|
||||
# Install the devel version of ansible-test for generating code coverage reports.
|
||||
# This is only used by Ansible Collections, which are typically tested against multiple Ansible versions (in separate jobs).
|
||||
# Since a version of ansible-test is required that can work the output from multiple older releases, the devel version is used.
|
||||
pip install https://github.com/ansible/ansible/archive/devel.tar.gz --disable-pip-version-check
|
||||
fi
|
||||
|
||||
ansible-test coverage xml --stub --venv --venv-system-site-packages --color -v
|
||||
@ -1,34 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Configure the test environment and run the tests.
|
||||
|
||||
set -o pipefail -eu
|
||||
|
||||
entry_point="$1"
|
||||
test="$2"
|
||||
read -r -a coverage_branches <<< "$3" # space separated list of branches to run code coverage on for scheduled builds
|
||||
|
||||
export COMMIT_MESSAGE
|
||||
export COMPLETE
|
||||
export COVERAGE
|
||||
export IS_PULL_REQUEST
|
||||
|
||||
if [ "${SYSTEM_PULLREQUEST_TARGETBRANCH:-}" ]; then
|
||||
IS_PULL_REQUEST=true
|
||||
COMMIT_MESSAGE=$(git log --format=%B -n 1 HEAD^2)
|
||||
else
|
||||
IS_PULL_REQUEST=
|
||||
COMMIT_MESSAGE=$(git log --format=%B -n 1 HEAD)
|
||||
fi
|
||||
|
||||
COMPLETE=
|
||||
COVERAGE=
|
||||
|
||||
if [ "${BUILD_REASON}" = "Schedule" ]; then
|
||||
COMPLETE=yes
|
||||
|
||||
if printf '%s\n' "${coverage_branches[@]}" | grep -q "^${BUILD_SOURCEBRANCHNAME}$"; then
|
||||
COVERAGE=yes
|
||||
fi
|
||||
fi
|
||||
|
||||
"${entry_point}" "${test}" 2>&1 | "$(dirname "$0")/time-command.py"
|
||||
@ -1,25 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
"""Prepends a relative timestamp to each input line from stdin and writes it to stdout."""
|
||||
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
__metaclass__ = type
|
||||
|
||||
import sys
|
||||
import time
|
||||
|
||||
|
||||
def main():
|
||||
"""Main program entry point."""
|
||||
start = time.time()
|
||||
|
||||
sys.stdin.reconfigure(errors='surrogateescape')
|
||||
sys.stdout.reconfigure(errors='surrogateescape')
|
||||
|
||||
for line in sys.stdin:
|
||||
seconds = time.time() - start
|
||||
sys.stdout.write('%02d:%02d %s' % (seconds // 60, seconds % 60, line))
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@ -1,39 +0,0 @@
|
||||
# This template adds a job for processing code coverage data.
|
||||
# It will upload results to Azure Pipelines and codecov.io.
|
||||
# Use it from a job stage that completes after all other jobs have completed.
|
||||
# This can be done by placing it in a separate summary stage that runs after the test stage(s) have completed.
|
||||
|
||||
jobs:
|
||||
- job: Coverage
|
||||
displayName: Code Coverage
|
||||
container: default
|
||||
workspace:
|
||||
clean: all
|
||||
steps:
|
||||
- checkout: self
|
||||
fetchDepth: $(fetchDepth)
|
||||
path: $(checkoutPath)
|
||||
- task: DownloadPipelineArtifact@2
|
||||
displayName: Download Coverage Data
|
||||
inputs:
|
||||
path: coverage/
|
||||
patterns: "Coverage */*=coverage.combined"
|
||||
- bash: .azure-pipelines/scripts/combine-coverage.py coverage/
|
||||
displayName: Combine Coverage Data
|
||||
- bash: .azure-pipelines/scripts/report-coverage.sh
|
||||
displayName: Generate Coverage Report
|
||||
condition: gt(variables.coverageFileCount, 0)
|
||||
- task: PublishCodeCoverageResults@1
|
||||
inputs:
|
||||
codeCoverageTool: Cobertura
|
||||
# Azure Pipelines only accepts a single coverage data file.
|
||||
# That means only Python or PowerShell coverage can be uploaded, but not both.
|
||||
# Set the "pipelinesCoverage" variable to determine which type is uploaded.
|
||||
# Use "coverage" for Python and "coverage-powershell" for PowerShell.
|
||||
summaryFileLocation: "$(outputPath)/reports/$(pipelinesCoverage).xml"
|
||||
displayName: Publish to Azure Pipelines
|
||||
condition: gt(variables.coverageFileCount, 0)
|
||||
- bash: .azure-pipelines/scripts/publish-codecov.sh "$(outputPath)"
|
||||
displayName: Publish to codecov.io
|
||||
condition: gt(variables.coverageFileCount, 0)
|
||||
continueOnError: true
|
||||
@ -1,55 +0,0 @@
|
||||
# This template uses the provided targets and optional groups to generate a matrix which is then passed to the test template.
|
||||
# If this matrix template does not provide the required functionality, consider using the test template directly instead.
|
||||
|
||||
parameters:
|
||||
# A required list of dictionaries, one per test target.
|
||||
# Each item in the list must contain a "test" or "name" key.
|
||||
# Both may be provided. If one is omitted, the other will be used.
|
||||
- name: targets
|
||||
type: object
|
||||
|
||||
# An optional list of values which will be used to multiply the targets list into a matrix.
|
||||
# Values can be strings or numbers.
|
||||
- name: groups
|
||||
type: object
|
||||
default: []
|
||||
|
||||
# An optional format string used to generate the job name.
|
||||
# - {0} is the name of an item in the targets list.
|
||||
- name: nameFormat
|
||||
type: string
|
||||
default: "{0}"
|
||||
|
||||
# An optional format string used to generate the test name.
|
||||
# - {0} is the name of an item in the targets list.
|
||||
- name: testFormat
|
||||
type: string
|
||||
default: "{0}"
|
||||
|
||||
# An optional format string used to add the group to the job name.
|
||||
# {0} is the formatted name of an item in the targets list.
|
||||
# {{1}} is the group -- be sure to include the double "{{" and "}}".
|
||||
- name: nameGroupFormat
|
||||
type: string
|
||||
default: "{0} - {{1}}"
|
||||
|
||||
# An optional format string used to add the group to the test name.
|
||||
# {0} is the formatted test of an item in the targets list.
|
||||
# {{1}} is the group -- be sure to include the double "{{" and "}}".
|
||||
- name: testGroupFormat
|
||||
type: string
|
||||
default: "{0}/{{1}}"
|
||||
|
||||
jobs:
|
||||
- template: test.yml
|
||||
parameters:
|
||||
jobs:
|
||||
- ${{ if eq(length(parameters.groups), 0) }}:
|
||||
- ${{ each target in parameters.targets }}:
|
||||
- name: ${{ format(parameters.nameFormat, coalesce(target.name, target.test)) }}
|
||||
test: ${{ format(parameters.testFormat, coalesce(target.test, target.name)) }}
|
||||
- ${{ if not(eq(length(parameters.groups), 0)) }}:
|
||||
- ${{ each group in parameters.groups }}:
|
||||
- ${{ each target in parameters.targets }}:
|
||||
- name: ${{ format(format(parameters.nameGroupFormat, parameters.nameFormat), coalesce(target.name, target.test), group) }}
|
||||
test: ${{ format(format(parameters.testGroupFormat, parameters.testFormat), coalesce(target.test, target.name), group) }}
|
||||
@ -1,45 +0,0 @@
|
||||
# This template uses the provided list of jobs to create test one or more test jobs.
|
||||
# It can be used directly if needed, or through the matrix template.
|
||||
|
||||
parameters:
|
||||
# A required list of dictionaries, one per test job.
|
||||
# Each item in the list must contain a "job" and "name" key.
|
||||
- name: jobs
|
||||
type: object
|
||||
|
||||
jobs:
|
||||
- ${{ each job in parameters.jobs }}:
|
||||
- job: test_${{ replace(replace(replace(replace(job.test, '/', '_'), '.', '_'), '-', '_'), '@', '_') }}
|
||||
displayName: ${{ job.name }}
|
||||
container: default
|
||||
workspace:
|
||||
clean: all
|
||||
steps:
|
||||
- checkout: self
|
||||
fetchDepth: $(fetchDepth)
|
||||
path: $(checkoutPath)
|
||||
- bash: .azure-pipelines/scripts/run-tests.sh "$(entryPoint)" "${{ job.test }}" "$(coverageBranches)"
|
||||
displayName: Run Tests
|
||||
- bash: .azure-pipelines/scripts/process-results.sh
|
||||
condition: succeededOrFailed()
|
||||
displayName: Process Results
|
||||
- bash: .azure-pipelines/scripts/aggregate-coverage.sh "$(Agent.TempDirectory)"
|
||||
condition: eq(variables.haveCoverageData, 'true')
|
||||
displayName: Aggregate Coverage Data
|
||||
- task: PublishTestResults@2
|
||||
condition: eq(variables.haveTestResults, 'true')
|
||||
inputs:
|
||||
testResultsFiles: "$(outputPath)/junit/*.xml"
|
||||
displayName: Publish Test Results
|
||||
- task: PublishPipelineArtifact@1
|
||||
condition: eq(variables.haveBotResults, 'true')
|
||||
displayName: Publish Bot Results
|
||||
inputs:
|
||||
targetPath: "$(outputPath)/bot/"
|
||||
artifactName: "Bot $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)"
|
||||
- task: PublishPipelineArtifact@1
|
||||
condition: eq(variables.haveCoverageData, 'true')
|
||||
displayName: Publish Coverage Data
|
||||
inputs:
|
||||
targetPath: "$(Agent.TempDirectory)/coverage/"
|
||||
artifactName: "Coverage $(System.JobAttempt) $(System.StageDisplayName) $(System.JobDisplayName)"
|
||||
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -1 +1,2 @@
|
||||
.github/ export-ignore
|
||||
hacking/ export-ignore
|
||||
|
||||
30264
.github/BOTMETA.yml
vendored
30264
.github/BOTMETA.yml
vendored
File diff suppressed because it is too large
Load Diff
54
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
54
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
---
|
||||
name: 🐛 Bug report
|
||||
about: Create a report to help us improve
|
||||
---
|
||||
<!--- Verify first that your issue is not already reported on GitHub -->
|
||||
<!--- Also test if the latest release and devel branch are affected too -->
|
||||
<!--- Complete *all* sections as described, this form is processed automatically -->
|
||||
|
||||
##### SUMMARY
|
||||
<!--- Explain the problem briefly below -->
|
||||
|
||||
##### ISSUE TYPE
|
||||
- Bug Report
|
||||
|
||||
##### COMPONENT NAME
|
||||
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
|
||||
|
||||
##### ANSIBLE VERSION
|
||||
<!--- Paste verbatim output from "ansible --version" between quotes -->
|
||||
```paste below
|
||||
|
||||
```
|
||||
|
||||
##### CONFIGURATION
|
||||
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
|
||||
```paste below
|
||||
|
||||
```
|
||||
|
||||
##### OS / ENVIRONMENT
|
||||
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
|
||||
|
||||
|
||||
##### STEPS TO REPRODUCE
|
||||
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->
|
||||
|
||||
<!--- Paste example playbooks or commands between quotes below -->
|
||||
```yaml
|
||||
|
||||
```
|
||||
|
||||
<!--- HINT: You can paste gist.github.com links for larger files -->
|
||||
|
||||
##### EXPECTED RESULTS
|
||||
<!--- Describe what you expected to happen when running the steps above -->
|
||||
|
||||
|
||||
##### ACTUAL RESULTS
|
||||
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
|
||||
|
||||
<!--- Paste verbatim command output between quotes -->
|
||||
```paste below
|
||||
|
||||
```
|
||||
125
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
125
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -1,125 +0,0 @@
|
||||
---
|
||||
name: 🐛 Bug report
|
||||
description: Create a report to help us improve
|
||||
issue_body: false # default: true, adds a classic WSYWIG textarea, if on
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
⚠
|
||||
Verify first that your issue is not [already reported on GitHub][issue search].
|
||||
Also test if the latest release and devel branch are affected too.
|
||||
*Complete **all** sections as described, this form is processed automatically.*
|
||||
|
||||
[issue search]: https://github.com/ansible/ansible/search?q=is%3Aissue&type=issues
|
||||
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Summary
|
||||
description: Explain the problem briefly below.
|
||||
placeholder: >-
|
||||
When I try to do X with ansible-core from the devel branch on GitHub, Y
|
||||
breaks in a way Z under the env E. Here are all the details I know
|
||||
about this problem...
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Issue Type
|
||||
# FIXME: Once GitHub allows defining the default choice, update this
|
||||
options:
|
||||
- Bug Report
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Component Name
|
||||
description: >-
|
||||
Write the short name of the module, plugin, task or feature below,
|
||||
*use your best guess if unsure*.
|
||||
placeholder: dnf, apt, yum, pip, user etc.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Ansible Version
|
||||
description: >-
|
||||
Paste verbatim output from `ansible --version` between
|
||||
tripple backticks.
|
||||
value: |
|
||||
```console (paste below)
|
||||
$ ansible --version
|
||||
|
||||
```
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Configuration
|
||||
description: >-
|
||||
Paste verbatim output from `ansible-config dump --only-changed` between quotes.
|
||||
value: |
|
||||
```console (paste below)
|
||||
$ ansible-config dump --only-changed
|
||||
|
||||
```
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: OS / Environment
|
||||
description: >-
|
||||
Provide all relevant information below, e.g. target OS versions,
|
||||
network device firmware, etc.
|
||||
placeholder: RHEL 8, CentOS Stream etc.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to Reproduce
|
||||
description: |
|
||||
Describe exactly how to reproduce the problem, using a minimal test-case. It would *really* help us understand your problem if you could also pased any playbooks, configs and commands you used.
|
||||
|
||||
**HINT:** You can paste https://gist.github.com links for larger files.
|
||||
value: |
|
||||
<!--- Paste example playbooks or commands between quotes below -->
|
||||
```yaml (paste below)
|
||||
|
||||
```
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Expected Results
|
||||
description: >-
|
||||
Describe what you expected to happen when running the steps above.
|
||||
placeholder: >-
|
||||
I expected X to happen because I assumed Y and was shocked
|
||||
that it did not.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Actual Results
|
||||
description: |
|
||||
Describe what actually happened. If possible run with extra verbosity (`-vvvv`).
|
||||
|
||||
Paste verbatim command output between quotes.
|
||||
value: |
|
||||
```console (paste below)
|
||||
|
||||
```
|
||||
validations:
|
||||
required: true
|
||||
...
|
||||
2
.github/ISSUE_TEMPLATE/config.yml
vendored
2
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,5 +1,5 @@
|
||||
# Ref: https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
|
||||
blank_issues_enabled: false # default: true
|
||||
blank_issues_enabled: true # default
|
||||
contact_links:
|
||||
- name: 🔐 Security bug report 🔥
|
||||
url: https://docs.ansible.com/ansible/latest/community/reporting_bugs_and_features.html?utm_medium=github&utm_source=issue_template_chooser
|
||||
|
||||
38
.github/ISSUE_TEMPLATE/documentation_report.md
vendored
Normal file
38
.github/ISSUE_TEMPLATE/documentation_report.md
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
name: 📝 Documentation Report
|
||||
about: Ask us about docs
|
||||
---
|
||||
<!--- Verify first that your improvement is not already reported on GitHub -->
|
||||
<!--- Also test if the latest release and devel branch are affected too -->
|
||||
<!--- Complete *all* sections as described, this form is processed automatically -->
|
||||
|
||||
##### SUMMARY
|
||||
<!--- Explain the problem briefly below, add suggestions to wording or structure -->
|
||||
|
||||
<!--- HINT: Did you know the documentation has an "Edit on GitHub" link on every page ? -->
|
||||
|
||||
##### ISSUE TYPE
|
||||
- Documentation Report
|
||||
|
||||
##### COMPONENT NAME
|
||||
<!--- Write the short name of the rst file, module, plugin, task or feature below, use your best guess if unsure -->
|
||||
|
||||
##### ANSIBLE VERSION
|
||||
<!--- Paste verbatim output from "ansible --version" between quotes -->
|
||||
```paste below
|
||||
|
||||
```
|
||||
|
||||
##### CONFIGURATION
|
||||
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
|
||||
```paste below
|
||||
|
||||
```
|
||||
|
||||
##### OS / ENVIRONMENT
|
||||
<!--- Provide all relevant information below, e.g. OS version, browser, etc. -->
|
||||
|
||||
##### ADDITIONAL INFORMATION
|
||||
<!--- Describe how this improves the documentation, e.g. before/after situation or screenshots -->
|
||||
|
||||
<!--- HINT: You can paste gist.github.com links for larger files -->
|
||||
97
.github/ISSUE_TEMPLATE/documentation_report.yml
vendored
97
.github/ISSUE_TEMPLATE/documentation_report.yml
vendored
@ -1,97 +0,0 @@
|
||||
---
|
||||
name: 📝 Documentation Report
|
||||
description: Ask us about docs
|
||||
# NOTE: issue body is enabled to allow screenshots
|
||||
issue_body: true # default: true, adds a classic WSYWIG textarea, if on
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
⚠
|
||||
Verify first that your issue is not [already reported on GitHub][issue search].
|
||||
Also test if the latest release and devel branch are affected too.
|
||||
*Complete **all** sections as described, this form is processed automatically.*
|
||||
|
||||
[issue search]: https://github.com/ansible/ansible/search?q=is%3Aissue&type=issues
|
||||
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Summary
|
||||
description: |
|
||||
Explain the problem briefly below, add suggestions to wording or structure.
|
||||
|
||||
**HINT:** Did you know the documentation has an `Edit on GitHub` link on every page?
|
||||
placeholder: >-
|
||||
I was reading the ansible-core documentation of version X and I'm having
|
||||
problems understanding Y. It would be very helpful if that got
|
||||
rephrased as Z.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Issue Type
|
||||
# FIXME: Once GitHub allows defining the default choice, update this
|
||||
options:
|
||||
- Documentation Report
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Component Name
|
||||
description: >-
|
||||
Write the short name of the rst file, module, plugin, task or
|
||||
feature below, *use your best guess if unsure*.
|
||||
placeholder: docs/docsite/rst/dev_guide/debugging.rst
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Ansible Version
|
||||
description: >-
|
||||
Paste verbatim output from `ansible --version` between
|
||||
tripple backticks.
|
||||
value: |
|
||||
```console (paste below)
|
||||
$ ansible --version
|
||||
|
||||
```
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Configuration
|
||||
description: >-
|
||||
Paste verbatim output from `ansible-config dump --only-changed` between quotes.
|
||||
value: |
|
||||
```console (paste below)
|
||||
$ ansible-config dump --only-changed
|
||||
|
||||
```
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: OS / Environment
|
||||
description: >-
|
||||
Provide all relevant information below, e.g. OS version,
|
||||
browser, etc.
|
||||
placeholder: Fedora 33, Firefox etc.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
**Additional Information**
|
||||
|
||||
Describe how this improves the documentation, e.g. before/after situation or screenshots.
|
||||
|
||||
**HINT:** You can paste https://gist.github.com links for larger files.
|
||||
...
|
||||
25
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
25
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
name: ✨ Feature request
|
||||
about: Suggest an idea for this project
|
||||
---
|
||||
<!--- Verify first that your feature was not already discussed on GitHub -->
|
||||
<!--- Complete *all* sections as described, this form is processed automatically -->
|
||||
|
||||
##### SUMMARY
|
||||
<!--- Describe the new feature/improvement briefly below -->
|
||||
|
||||
##### ISSUE TYPE
|
||||
- Feature Idea
|
||||
|
||||
##### COMPONENT NAME
|
||||
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
|
||||
|
||||
##### ADDITIONAL INFORMATION
|
||||
<!--- Describe how the feature would be used, why it is needed and what it would solve -->
|
||||
|
||||
<!--- Paste example playbooks or commands between quotes below -->
|
||||
```yaml
|
||||
|
||||
```
|
||||
|
||||
<!--- HINT: You can also paste gist.github.com links for larger files -->
|
||||
62
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
62
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@ -1,62 +0,0 @@
|
||||
---
|
||||
name: ✨ Feature request
|
||||
description: Suggest an idea for this project
|
||||
issue_body: false # default: true, adds a classic WSYWIG textarea, if on
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
⚠
|
||||
Verify first that your issue is not [already reported on GitHub][issue search].
|
||||
Also test if the latest release and devel branch are affected too.
|
||||
*Complete **all** sections as described, this form is processed automatically.*
|
||||
|
||||
[issue search]: https://github.com/ansible/ansible/search?q=is%3Aissue&type=issues
|
||||
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Summary
|
||||
description: Describe the new feature/improvement briefly below.
|
||||
placeholder: >-
|
||||
I am trying to do X with ansible-core from the devel branch on GitHub and
|
||||
I think that implementing a feature Y would be very helpful for me and
|
||||
every other user of ansible-core because of Z.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Issue Type
|
||||
# FIXME: Once GitHub allows defining the default choice, update this
|
||||
options:
|
||||
- Feature Idea
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Component Name
|
||||
description: >-
|
||||
Write the short name of the module, plugin, task or feature below,
|
||||
*use your best guess if unsure*.
|
||||
placeholder: dnf, apt, yum, pip, user etc.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional Information
|
||||
description: |
|
||||
Describe how the feature would be used, why it is needed and what it would solve.
|
||||
|
||||
**HINT:** You can paste https://gist.github.com links for larger files.
|
||||
value: |
|
||||
<!--- Paste example playbooks or commands between quotes below -->
|
||||
```yaml (paste below)
|
||||
|
||||
```
|
||||
validations:
|
||||
required: true
|
||||
...
|
||||
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -8,7 +8,7 @@
|
||||
- Bugfix Pull Request
|
||||
- Docs Pull Request
|
||||
- Feature Pull Request
|
||||
- Test Pull Request
|
||||
- New Module Pull Request
|
||||
|
||||
##### COMPONENT NAME
|
||||
<!--- Write the short name of the module, plugin, task or feature below -->
|
||||
|
||||
1
.github/RELEASE_NAMES.yml
vendored
1
.github/RELEASE_NAMES.yml
vendored
@ -1,5 +1,4 @@
|
||||
---
|
||||
- 2.11.0 Hey Hey, What Can I Do
|
||||
- 2.10.0 When the Levee Breaks
|
||||
- 2.9.0 Immigrant Song
|
||||
- 2.8.0 How Many More Times
|
||||
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@ -32,15 +32,12 @@ docs/man/man3/*
|
||||
docs/docsite/_build
|
||||
docs/docsite/*.html
|
||||
docs/docsite/htmlout
|
||||
docs/docsite/rst/conf.py
|
||||
docs/docsite/rst/index.rst
|
||||
docs/docsite/rst/cli/ansible-*.rst
|
||||
docs/docsite/rst/cli/ansible.rst
|
||||
docs/docsite/rst/dev_guide/collections_galaxy_meta.rst
|
||||
docs/docsite/rst/dev_guide/testing/sanity/index.rst.new
|
||||
docs/docsite/rst/modules/*.rst
|
||||
docs/docsite/rst/collections/*.rst
|
||||
!docs/docsite/rst/collections/all_plugins.rst
|
||||
docs/docsite/rst/collections/*/*.rst
|
||||
docs/docsite/rst/playbooks_directives.rst
|
||||
docs/docsite/rst/plugins_by_category.rst
|
||||
@ -82,8 +79,6 @@ Vagrantfile
|
||||
/lib/ansible.egg-info/
|
||||
# First used in the `devel` branch during Ansible 2.10 development.
|
||||
/lib/ansible_base.egg-info/
|
||||
# First used in the `devel` branch during Ansible 2.11 development.
|
||||
/lib/ansible_core.egg-info/
|
||||
/shippable/
|
||||
/test/integration/cloud-config-*.*
|
||||
!/test/integration/cloud-config-*.*.template
|
||||
|
||||
@ -2,18 +2,15 @@ include README.rst
|
||||
include COPYING
|
||||
include SYMLINK_CACHE.json
|
||||
include requirements.txt
|
||||
include shippable.yml
|
||||
recursive-include docs *
|
||||
include docs/docsite/rst/collections/all_plugins.rst
|
||||
exclude docs/docsite/rst_warnings
|
||||
exclude docs/docsite/rst/conf.py
|
||||
exclude docs/docsite/rst/index.rst
|
||||
recursive-exclude docs/docsite/_build *
|
||||
recursive-exclude docs/docsite/_extensions *.pyc *.pyo
|
||||
include examples/hosts
|
||||
include examples/ansible.cfg
|
||||
include examples/scripts/ConfigureRemotingForAnsible.ps1
|
||||
include examples/scripts/upgrade_to_ps3.ps1
|
||||
include lib/ansible/keyword_desc.yml
|
||||
recursive-include lib/ansible/executor/powershell *.ps1
|
||||
recursive-include lib/ansible/module_utils/csharp *.cs
|
||||
recursive-include lib/ansible/module_utils/powershell *.psm1
|
||||
|
||||
29
Makefile
29
Makefile
@ -5,20 +5,16 @@
|
||||
# useful targets:
|
||||
# make clean ---------------- clean up
|
||||
# make webdocs -------------- produce ansible doc at docs/docsite/_build/html
|
||||
# make coredocs ------------- produce core doc at docs/docsite/_build/html
|
||||
# make sdist ---------------- produce a tarball
|
||||
# make deb-src -------------- produce a DEB source
|
||||
# make deb ------------------ produce a DEB
|
||||
# make docs ----------------- rebuild the manpages (results are checked in)
|
||||
# make gettext -------------- produce POT files for docs
|
||||
# make generate-po ---------- generate language specific po file
|
||||
# make needs-translation ---- generate list of file with unstranlated or fuzzy string for a specific language
|
||||
# make tests ---------------- run the tests (see https://docs.ansible.com/ansible/devel/dev_guide/testing_units.html for requirements)
|
||||
|
||||
########################################################
|
||||
# variable section
|
||||
|
||||
NAME = ansible-core
|
||||
NAME = ansible-base
|
||||
OS = $(shell uname -s)
|
||||
PREFIX ?= '/usr/local'
|
||||
SDIST_DIR ?= 'dist'
|
||||
@ -34,7 +30,7 @@ else
|
||||
ASCII2MAN = @echo "ERROR: rst2man from docutils command is not installed but is required to build $(MANPAGES)" && exit 1
|
||||
endif
|
||||
|
||||
PYTHON ?= python
|
||||
PYTHON=python
|
||||
GENERATE_CLI = hacking/build-ansible.py generate-man
|
||||
|
||||
# fetch version from project release.py as single source-of-truth
|
||||
@ -61,9 +57,6 @@ DATE := $(shell date --utc --date="$(GIT_DATE)" +%Y%m%d%H%M)
|
||||
CPUS ?= $(shell nproc)
|
||||
endif
|
||||
|
||||
# Intenationalisation and Localisation
|
||||
LANGUAGES ?=
|
||||
|
||||
# DEB build parameters
|
||||
DEBUILD_BIN ?= debuild
|
||||
DEBUILD_OPTS = --source-option="-I"
|
||||
@ -160,8 +153,6 @@ clean:
|
||||
rm -f test/units/.coverage*
|
||||
rm -rf test/results/*/*
|
||||
find test/ -type f -name '*.retry' -delete
|
||||
@echo "Cleaning up symlink cache"
|
||||
rm -f SYMLINK_CACHE.json
|
||||
@echo "Cleaning up Debian building stuff"
|
||||
rm -rf debian
|
||||
rm -rf deb-build
|
||||
@ -277,22 +268,6 @@ epub:
|
||||
webdocs:
|
||||
(cd docs/docsite/; CPUS=$(CPUS) $(MAKE) docs)
|
||||
|
||||
.PHONY: coredocs
|
||||
coredocs:
|
||||
(cd docs/docsite/; CPUS=$(CPUS) $(MAKE) coredocs)
|
||||
|
||||
.PHONY: gettext
|
||||
gettext:
|
||||
(cd docs/docsite/; CPUS=$(CPUS) $(MAKE) gettext)
|
||||
|
||||
.PHONY: generate-po
|
||||
generate-po:
|
||||
(cd docs/docsite/; CPUS=$(CPUS) LANGUAGES=$(LANGUAGES) $(MAKE) generate-po)
|
||||
|
||||
.PHONY: needs-translation
|
||||
needs-translation:
|
||||
(cd docs/docsite/; CPUS=$(CPUS) LANGUAGES=$(LANGUAGES) $(MAKE) needs-translation)
|
||||
|
||||
.PHONY: linkcheckdocs
|
||||
linkcheckdocs:
|
||||
(cd docs/docsite/; CPUS=$(CPUS) $(MAKE) linkcheckdocs)
|
||||
|
||||
26
README.rst
26
README.rst
@ -1,4 +1,4 @@
|
||||
|PyPI version| |Docs badge| |Chat badge| |Build Status| |Code Of Conduct| |Mailing Lists| |License| |CII Best Practices|
|
||||
|PyPI version| |Docs badge| |Chat badge| |Build Status| |Code Of Conduct| |Mailing Lists| |License|
|
||||
|
||||
*******
|
||||
Ansible
|
||||
@ -12,7 +12,7 @@ changes like zero-downtime rolling updates with load balancers easy. More inform
|
||||
Design Principles
|
||||
=================
|
||||
|
||||
* Have a dead-simple setup process with a minimal learning curve.
|
||||
* Have a dead simple setup process and a minimal learning curve.
|
||||
* Manage machines very quickly and in parallel.
|
||||
* Avoid custom-agents and additional open ports, be agentless by
|
||||
leveraging the existing SSH daemon.
|
||||
@ -28,7 +28,8 @@ Design Principles
|
||||
Use Ansible
|
||||
===========
|
||||
|
||||
You can install a released version of Ansible with ``pip`` or a package manager. See our
|
||||
You can install a released version of Ansible via ``pip``, a package manager, or
|
||||
our `release repository <https://releases.ansible.com/ansible/>`_. See our
|
||||
`installation guide <https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html>`_ for details on installing Ansible
|
||||
on a variety of platforms.
|
||||
|
||||
@ -52,7 +53,7 @@ Get Involved
|
||||
* Submit a proposed code update through a pull request to the ``devel`` branch.
|
||||
* Talk to us before making larger changes
|
||||
to avoid duplicate efforts. This not only helps everyone
|
||||
know what is going on, but it also helps save time and effort if we decide
|
||||
know what is going on, it also helps save time and effort if we decide
|
||||
some changes are needed.
|
||||
* For a list of email lists, IRC channels and Working Groups, see the
|
||||
`Communication page <https://docs.ansible.com/ansible/latest/community/communication.html>`_
|
||||
@ -63,7 +64,7 @@ Coding Guidelines
|
||||
We document our Coding Guidelines in the `Developer Guide <https://docs.ansible.com/ansible/devel/dev_guide/>`_. We particularly suggest you review:
|
||||
|
||||
* `Contributing your module to Ansible <https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_checklist.html>`_
|
||||
* `Conventions, tips, and pitfalls <https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_best_practices.html>`_
|
||||
* `Conventions, tips and pitfalls <https://docs.ansible.com/ansible/devel/dev_guide/developing_modules_best_practices.html>`_
|
||||
|
||||
Branch Info
|
||||
===========
|
||||
@ -71,7 +72,7 @@ Branch Info
|
||||
* The ``devel`` branch corresponds to the release actively under development.
|
||||
* The ``stable-2.X`` branches correspond to stable releases.
|
||||
* Create a branch based on ``devel`` and set up a `dev environment <https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html#common-environment-setup>`_ if you want to open a PR.
|
||||
* See the `Ansible release and maintenance <https://docs.ansible.com/ansible/devel/reference_appendices/release_and_maintenance.html>`_ page for information about active branches.
|
||||
* See the `Ansible release and maintenance <https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html>`_ page for information about active branches.
|
||||
|
||||
Roadmap
|
||||
=======
|
||||
@ -83,7 +84,7 @@ Authors
|
||||
=======
|
||||
|
||||
Ansible was created by `Michael DeHaan <https://github.com/mpdehaan>`_
|
||||
and has contributions from over 5000 users (and growing). Thanks everyone!
|
||||
and has contributions from over 4700 users (and growing). Thanks everyone!
|
||||
|
||||
`Ansible <https://www.ansible.com>`_ is sponsored by `Red Hat, Inc.
|
||||
<https://www.redhat.com>`_
|
||||
@ -95,12 +96,12 @@ GNU General Public License v3.0 or later
|
||||
|
||||
See `COPYING <COPYING>`_ to see the full text.
|
||||
|
||||
.. |PyPI version| image:: https://img.shields.io/pypi/v/ansible-core.svg
|
||||
:target: https://pypi.org/project/ansible-core
|
||||
.. |PyPI version| image:: https://img.shields.io/pypi/v/ansible.svg
|
||||
:target: https://pypi.org/project/ansible
|
||||
.. |Docs badge| image:: https://img.shields.io/badge/docs-latest-brightgreen.svg
|
||||
:target: https://docs.ansible.com/ansible/latest/
|
||||
.. |Build Status| image:: https://dev.azure.com/ansible/ansible/_apis/build/status/CI?branchName=devel
|
||||
:target: https://dev.azure.com/ansible/ansible/_build/latest?definitionId=20&branchName=devel
|
||||
.. |Build Status| image:: https://api.shippable.com/projects/573f79d02a8192902e20e34b/badge?branch=devel
|
||||
:target: https://app.shippable.com/projects/573f79d02a8192902e20e34b
|
||||
.. |Chat badge| image:: https://img.shields.io/badge/chat-IRC-brightgreen.svg
|
||||
:target: https://docs.ansible.com/ansible/latest/community/communication.html
|
||||
.. |Code Of Conduct| image:: https://img.shields.io/badge/code%20of%20conduct-Ansible-silver.svg
|
||||
@ -112,6 +113,3 @@ See `COPYING <COPYING>`_ to see the full text.
|
||||
.. |License| image:: https://img.shields.io/badge/license-GPL%20v3.0-brightgreen.svg
|
||||
:target: COPYING
|
||||
:alt: Repository License
|
||||
.. |CII Best Practices| image:: https://bestpractices.coreinfrastructure.org/projects/2372/badge
|
||||
:target: https://bestpractices.coreinfrastructure.org/projects/2372
|
||||
:alt: Ansible CII Best Practices certification
|
||||
|
||||
747
changelogs/CHANGELOG-v2.10.rst
Normal file
747
changelogs/CHANGELOG-v2.10.rst
Normal file
@ -0,0 +1,747 @@
|
||||
=======================================================
|
||||
Ansible Base 2.10 "When the Levee Breaks" Release Notes
|
||||
=======================================================
|
||||
|
||||
.. contents:: Topics
|
||||
|
||||
|
||||
v2.10.1rc2
|
||||
==========
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2020-09-01
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Security Fixes
|
||||
--------------
|
||||
|
||||
- The fix for CVE-2020-1736 has been reverted. Users are encouraged to specify a ``mode`` parameter in their file-based tasks when the files being manipulated contain sensitive data.
|
||||
|
||||
v2.10.1rc1
|
||||
==========
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2020-08-31
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- Fixed ansible-doc to not substitute for words followed by parenthesis. For instance, ``IBM(International Business Machines)`` will no longer be substituted with a link to a non-existent module. https://github.com/ansible/ansible/pull/71070
|
||||
- Updated network integration auth timeout to 90 secs.
|
||||
- ansible-doc will now format, ``L()``, ``R()``, and ``HORIZONTALLINE`` in plugin docs just as the website docs do. https://github.com/ansible/ansible/pull/71070
|
||||
- ansible-test - Remove ``pytest < 6.0.0`` constraint for managed installations on Python 3.x now that pytest 6 is supported.
|
||||
- ansible-test - the ACME test container was updated, it now supports external account creation and has a basic OCSP responder (https://github.com/ansible/ansible/pull/71097, https://github.com/ansible/acme-test-container/releases/tag/2.0.0).
|
||||
- galaxy - add documentation about galaxy parameters in examples/ansible.cfg (https://github.com/ansible/ansible/issues/68402).
|
||||
- iptables - add a note about ipv6-icmp in protocol parameter (https://github.com/ansible/ansible/issues/70905).
|
||||
- setup.py - Skip doing conflict checks for ``sdist`` and ``egg_info`` commands (https://github.com/ansible/ansible/pull/71310)
|
||||
- subelements - clarify the lookup plugin documentation for parameter handling (https://github.com/ansible/ansible/issues/38182).
|
||||
|
||||
Security Fixes
|
||||
--------------
|
||||
|
||||
- **security issue** - copy - Redact the value of the no_log 'content' parameter in the result's invocation.module_args in check mode. Previously when used with check mode and with '-vvv', the module would not censor the content if a change would be made to the destination path. (CVE-2020-14332)
|
||||
- dnf - Previously, regardless of the ``disable_gpg_check`` option, packages were not GPG validated. They are now. (CVE-2020-14365)
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- ANSIBLE_COLLECTIONS_PATHS - remove deprecation so that users of Ansible 2.9 and 2.10+ can use the same var when specifying a collection path without a warning.
|
||||
- Confirmed commit fails with TypeError in IOS XR netconf plugin (https://github.com/ansible-collections/cisco.iosxr/issues/74)
|
||||
- Ensure password passed in by -k is used on delegated hosts that do not have ansible_password set
|
||||
- Fix an exit code for a non-failing playbook (https://github.com/ansible/ansible/issues/71306)
|
||||
- Fix execution of the meta tasks 'clear_facts', 'clear_host_errors', 'end_play', 'end_host', and 'reset_connection' when the CLI flag '--flush-cache' is provided.
|
||||
- Fix statistics reporting when rescue block contains another block (issue https://github.com/ansible/ansible/issues/61253).
|
||||
- Fixed Ansible reporting validate not supported by netconf server when enabled in netconf - (https://github.com/ansible-collections/ansible.netcommon/issues/119).
|
||||
- Skip literal_eval for string filters results in native jinja. (https://github.com/ansible/ansible/issues/70831)
|
||||
- Strategy - Ensure we only process expected types from the results queue and produce warnings for any object we receive from the queue that doesn't match our expectations. (https://github.com/ansible/ansible/issues/70023)
|
||||
- TOML inventory - Ensure we register dump functions for ``AnsibleUnsafe`` to support dumping unsafe values. Note that the TOML format has no functionality to mark that the data is unsafe for re-consumption. (https://github.com/ansible/ansible/issues/71307)
|
||||
- ansible-galaxy download - fix bug when downloading a collection in a SCM subdirectory
|
||||
- ansible-test units - fixed collection location code to work under pytest >= 6.0.0
|
||||
- avoid clobbering existing facts inside loop when task also returns ansible_facts.
|
||||
- cron - cron file should not be empty after adding var (https://github.com/ansible/ansible/pull/71207)
|
||||
- fortimanager httpapi plugin - fix redirect to point to the ``fortinet.fortimanager`` collection (https://github.com/ansible/ansible/pull/71073).
|
||||
- gluster modules - fix redirect to point to the ``gluster.gluster`` collection (https://github.com/ansible/ansible/pull/71240).
|
||||
- linux network facts - get the correct value for broadcast address (https://github.com/ansible/ansible/issues/64384)
|
||||
- native jinja2 types - properly handle Undefined in nested data.
|
||||
- powershell - fix escaping of strings that broken modules like fetch when dealing with special chars - https://github.com/ansible/ansible/issues/62781
|
||||
- powershell - fix the CLIXML parser when it contains nested CLIXML objects - https://github.com/ansible/ansible/issues/69550
|
||||
- psrp - Use native PSRP mechanism when copying files to support custom endpoints
|
||||
- strftime filter - Input epoch is allowed to be a float (https://github.com/ansible/ansible/issues/71257)
|
||||
- systemd - fixed chroot usage on new versions of systemd, that broke because of upstream changes in systemctl output
|
||||
- systemd - made the systemd module work correctly when the SYSTEMD_OFFLINE environment variable is set
|
||||
- templating - fix error message for ``x in y`` when y is undefined (https://github.com/ansible/ansible/issues/70984)
|
||||
- unarchive - check ``fut_gid`` against ``run_gid`` in addition to supplemental groups (https://github.com/ansible/ansible/issues/49284)
|
||||
|
||||
v2.10.0
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2020-08-13
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Major Changes
|
||||
-------------
|
||||
|
||||
- Both ansible-doc and ansible-console's help command will error for modules and plugins whose return documentation cannot be parsed as YAML. All modules and plugins passing ``ansible-test sanity --test yamllint`` will not be affected by this.
|
||||
- Collections may declare a list of supported/tested Ansible versions for the collection. A warning is issued if a collection does not support the Ansible version that loads it (can also be configured as silent or a fatal error). Collections that do not declare supported Ansible versions do not issue a warning/error.
|
||||
- Plugin routing allows collections to declare deprecation, redirection targets, and removals for all plugin types.
|
||||
- Plugins that import module_utils and other ansible namespaces that have moved to collections should continue to work unmodified.
|
||||
- Routing data built into Ansible 2.10 ensures that 2.9 content should work unmodified on 2.10. Formerly included modules and plugins that were moved to collections are still accessible by their original unqualified names, so long as their destination collections are installed.
|
||||
- When deprecations are done in code, they to specify a ``collection_name`` so that deprecation warnings can mention which collection - or ansible-base - is deprecating a feature. This affects all ``Display.deprecated()`` or ``AnsibleModule.deprecate()`` or ``Ansible.Basic.Deprecate()`` calls, and ``removed_in_version``/``removed_at_date`` or ``deprecated_aliases`` in module argument specs.
|
||||
- ansible-test now uses a different ``default`` test container for Ansible Collections
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- 'Edit on GitHub' link for plugin, cli documentation fixed to navigate to correct plugin, cli source.
|
||||
- Add 'auth_url' field to galaxy server config stanzas in ansible.cfg The url should point to the token_endpoint of a Keycloak server.
|
||||
- Add --ask-vault-password and --vault-pass-file options to ansible cli commands
|
||||
- Add ``--pre`` flag to ``ansible-galaxy collection install`` to allow pulling in the most recent pre-release version of a collection (https://github.com/ansible/ansible/issues/64905)
|
||||
- Add a global toggle to control when vars plugins are executed (per task by default for backward compatibility or after importing inventory).
|
||||
- Add a new config parameter, WIN_ASYNC_STARTUP_TIMEOUT, which allows configuration of the named pipe connection timeout under Windows when launching async tasks.
|
||||
- Add a per-plugin stage option to override the global toggle to control the execution of individual vars plugins (per task, after inventory, or both).
|
||||
- Add an additional check for importing journal from systemd-python module (https://github.com/ansible/ansible/issues/60595).
|
||||
- Add an example for using var in with_sequence (https://github.com/ansible/ansible/issues/68836).
|
||||
- Add new magic variable ``ansible_collection`` that contains the collection name
|
||||
- Add new magic variable ``ansible_role_name`` that contains the FQCN of the role
|
||||
- Add standard Python 2/3 compatibility boilerplate to setup script, module_utils and docs_fragments which were missing them.
|
||||
- Added PopOS as a part of Debian OS distribution family (https://github.com/ansible/ansible/issues/69286).
|
||||
- Added hostname support for PopOS in hostname module.
|
||||
- Added openEuler OS in RedHat OS Family.
|
||||
- Added the ability to set ``DEFAULT_NO_TARGET_SYSLOG`` through the ``ansible_no_target_syslog`` variable on a task
|
||||
- Ansible CLI fails with warning if extra_vars parameter is used with filename without @ sign (https://github.com/ansible/ansible/issues/51857).
|
||||
- Ansible modules created with ``add_file_common_args=True`` added a number of undocumented arguments which were mostly there to ease implementing certain action plugins. The undocumented arguments ``src``, ``follow``, ``force``, ``content``, ``backup``, ``remote_src``, ``regexp``, ``delimiter``, and ``directory_mode`` are now no longer added. Modules relying on these options to be added need to specify them by themselves. Also, action plugins relying on these extra elements in ``FILE_COMMON_ARGUMENTS`` need to be adjusted.
|
||||
- Ansible now allows deprecation by date instead of deprecation by version. This is possible for plugins and modules (``meta/runtime.yml`` and ``deprecated.removed_at_date`` in ``DOCUMENTATION``, instead of ``deprecated.removed_in``), for plugin options (``deprecated.date`` instead of ``deprecated.version`` in ``DOCUMENTATION``), for module options (``removed_at_date`` instead of ``removed_in_version`` in argument spec), and for module option aliases (``deprecated_aliases.date`` instead of ``deprecated_aliases.version`` in argument spec).
|
||||
- Ansible should fail with error when non-existing limit file is provided in command line.
|
||||
- Ansible.Basic - Added the ability to specify multiple fragments to load in a generic way for modules that use a module_util with fragment options
|
||||
- Ansible.Basic.cs - Added support for ``deprecated_aliases`` to deprecated aliases in a standard way
|
||||
- Ansible.ModuleUtils.WebRequest - Move username and password aliases out of util to avoid option name collision
|
||||
- Change order of arguments in ansible cli to use --ask-vault-password and --vault-password-file by default
|
||||
- CollectionRequirement - Add a metadata property to update and retrieve the _metadata attribute.
|
||||
- Command module: Removed suggestions to use modules which have moved to collections and out of ansible-base
|
||||
- Enable Ansible Collections loader to discover and import collections from ``site-packages`` dir and ``PYTHONPATH``-added locations.
|
||||
- Enable testing the AIX platform as a remote OS in ansible-test
|
||||
- Flatten the directory hierarchy of modules
|
||||
- Ignore plesk-release file while parsing distribution release (https://github.com/ansible/ansible/issues/64101).
|
||||
- Openstack inventory script is migrated to ansible-openstack-collection, adjusted the link in documentation accordingly.
|
||||
- Openstack inventory script is moved to openstack.cloud from community.general.
|
||||
- PowerShell Add-Type - Add an easier way to reference extra types when compiling C# code on PowerShell Core
|
||||
- PowerShell Add-Type - Added the ``X86`` and ``AMD64`` preprocessor symbols for conditional compiling
|
||||
- Prevent losing useful error information by including both the loop and the conditional error messages (https://github.com/ansible/ansible/issues/66529)
|
||||
- Provides additional information about collection namespace name restrictions (https://github.com/ansible/ansible/issues/65151).
|
||||
- Raise error when no task file is provided to import_tasks (https://github.com/ansible/ansible/issues/54095).
|
||||
- Refactor test_distribution_version testcases.
|
||||
- Remove the deprecation message for the ``TRANSFORM_INVALID_GROUP_CHARS`` setting. (https://github.com/ansible/ansible/issues/61889)
|
||||
- Removed extras_require support from setup.py (and [azure] extra). Requirements will float with the collections, so it's not appropriate for ansible-base to host requirements for them any longer.
|
||||
- Simplify dict2items filter example in loop documentation (https://github.com/ansible/ansible/issues/65505).
|
||||
- Templating - Add globals to the jinja2 environment at ``Templar`` instantiation, instead of customizing the template object. Only customize the template object, to disable lookups. (https://github.com/ansible/ansible/pull/69278)
|
||||
- Templating - Add support to auto unroll generators produced by jinja2 filters, to prevent the need of explicit use of ``|list`` (https://github.com/ansible/ansible/pull/68014)
|
||||
- The plugin loader now keeps track of the collection where a plugin was resolved to, in particular whether the plugin was loaded from ansible-base's internal paths (``ansible.builtin``) or from user-supplied paths (no collection name).
|
||||
- The results queue and counter for results are now split for standard / handler results. This allows the governing strategy to be truly independent from the handler strategy, which basically follows the linear methodology.
|
||||
- Update required library message with correct grammer in basic.py.
|
||||
- Updated inventory script location for EC2, Openstack, and Cobbler after collection (https://github.com/ansible/ansible/issues/68897).
|
||||
- Updated inventory script location for infoblox, ec2 and other after collection migration (https://github.com/ansible/ansible/issues/69139).
|
||||
- Updates ``ansible_role_names``, ``ansible_play_role_names``, and ``ansible_dependent_role_names`` to include the FQCN
|
||||
- Use OrderedDict by default when importing mappings from YAML.
|
||||
- Windows - Add a check for the minimum PowerShell version so we can create a friendly error message on older hosts
|
||||
- Windows - add deprecation notice in the Windows setup module when running on Server 2008, 2008 R2, and Windows 7
|
||||
- `AnsibleModule.fail_json()` has always required that a message be passed in which informs the end user why the module failed. In the past this message had to be passed as the `msg` keyword argument but it can now be passed as the first positional argument instead.
|
||||
- ``AnsibleModule.load_file_common_arguments`` now allows to simply override ``path``.
|
||||
- add mechanism for storing warnings and deprecations globally and not attached to an ``AnsibleModule`` object (https://github.com/ansible/ansible/pull/58993)
|
||||
- added more ways to configure new uri options in 2.10.
|
||||
- ansible-doc - improve suboptions formatting (https://github.com/ansible/ansible/pull/69795).
|
||||
- ansible-doc - now indicates if an option is added by a doc fragment from another collection by prepending the collection name, or ``ansible.builtin`` for ansible-base, to the version number.
|
||||
- ansible-doc - return values will be properly formatted (https://github.com/ansible/ansible/pull/69796).
|
||||
- ansible-galaxy - Add ``download`` option for ``ansible-galaxy collection`` to download collections and their dependencies for an offline install
|
||||
- ansible-galaxy - Add a `verify` subcommand to `ansible-galaxy collection`. The collection found on the galaxy server is downloaded to a tempfile to compare the checksums of the files listed in the MANIFEST.json and the FILES.json with the contents of the installed collection.
|
||||
- ansible-galaxy - Add installation successful message
|
||||
- ansible-galaxy - Added the ability to display the progress wheel through the C.GALAXY_DISPLAY_PROGRESS config option. Also this now defaults to displaying the progress wheel if stdout has a tty.
|
||||
- ansible-galaxy - Added the ability to ignore further files and folders using a pattern with the ``build_ignore`` key in a collection's ``galaxy.yml`` (https://github.com/ansible/ansible/issues/59228).
|
||||
- ansible-galaxy - Allow installing collections from git repositories.
|
||||
- ansible-galaxy - Always ignore the ``tests/output`` directory when building a collection as it is used by ``ansible-test`` for test output (https://github.com/ansible/ansible/issues/59228).
|
||||
- ansible-galaxy - Change the output verbosity level of the download message from 3 to 0 (https://github.com/ansible/ansible/issues/70010)
|
||||
- ansible-galaxy - Display message if both collections and roles are specified in a requirements file but can't be installed together.
|
||||
- ansible-galaxy - Install both collections and roles with ``ansible-galaxy install -r requirements.yml`` in certain scenarios.
|
||||
- ansible-galaxy - Requirement entries for collections now support a 'type' key to indicate whether the collection is a galaxy artifact, file, url, or git repo.
|
||||
- ansible-galaxy - Support both 'galaxy.yml' and 'galaxy.yaml' files for collections.
|
||||
- ansible-galaxy - add ``--token`` argument which is the same as ``--api-key`` (https://github.com/ansible/ansible/issues/65955)
|
||||
- ansible-galaxy - add ``collection list`` command for listing installed collections (https://github.com/ansible/ansible/pull/65022)
|
||||
- ansible-galaxy - add ``validate_collection_path()`` utility function ()
|
||||
- ansible-galaxy - add collections path argument
|
||||
- ansible-galaxy - allow role to define dependency requirements that will be only installed by defining them in ``meta/requirements.yml`` (https://github.com/ansible/proposals/issues/57)
|
||||
- ansible-test - --docker flag now has an associated --docker-terminate flag which controls if and when the docker container is removed following tests
|
||||
- ansible-test - Add a test to prevent ``state=get``
|
||||
- ansible-test - Add a test to prevent ``state=list`` and ``state=info``
|
||||
- ansible-test - Add a verbosity option for displaying warnings.
|
||||
- ansible-test - Add support for Python 3.9.
|
||||
- ansible-test - Added CI provider support for Azure Pipelines.
|
||||
- ansible-test - Added a ``ansible-test coverage analyze targets filter`` command to filter aggregated coverage reports by path and/or target name.
|
||||
- ansible-test - Added a ``ansible-test coverage analyze targets`` command to analyze integration test code coverage by test target.
|
||||
- ansible-test - Added support for Ansible Core CI request signing for Shippable.
|
||||
- ansible-test - Added support for testing on Fedora 32.
|
||||
- ansible-test - General code cleanup.
|
||||
- ansible-test - Now includes testing support for RHEL 8.2
|
||||
- ansible-test - Provisioning of RHEL instances now includes installation of pinned versions of ``packaging`` and ``pyparsing`` to match the downstream vendored versions.
|
||||
- ansible-test - Refactor code to consolidate filesystem access and improve handling of encoding.
|
||||
- ansible-test - Refactored CI related logic into a basic provider abstraction.
|
||||
- ansible-test - Remove obsolete support for provisioning remote vCenter instances. The supporting services are no longer available.
|
||||
- ansible-test - Report the correct line number in the ``yamllint`` sanity test when reporting ``libyaml`` parse errors in module documentation.
|
||||
- ansible-test - Support writing compact JSON files instead of formatting and indenting the output.
|
||||
- ansible-test - Update Ubuntu 18.04 test container to version 1.13 which includes ``venv``
|
||||
- ansible-test - Update ``default-test-container`` to version 1.11, which includes Python 3.9.0a4.
|
||||
- ansible-test - Updated the default test containers to include Python 3.9.0b3.
|
||||
- ansible-test - Upgrade OpenSUSE containers to use Leap 15.1.
|
||||
- ansible-test - Upgrade distro test containers from 1.16.0 to 1.17.0
|
||||
- ansible-test - Upgrade from ansible-base-test-container 1.1 to 2.2
|
||||
- ansible-test - Upgrade from default-test-container 2.1 to 2.2
|
||||
- ansible-test - ``mutually_exclusive``, ``required_if``, ``required_by``, ``required_together`` and ``required_one_of`` in modules are now validated.
|
||||
- ansible-test - ``validate-modules`` now also accepts an ISO 8601 formatted date as ``deprecated.removed_at_date``, instead of requiring a version number in ``deprecated.removed_in``.
|
||||
- ansible-test - ``validate-modules`` now makes sure that module documentation deprecation removal version and/or date matches with removal version and/or date in meta/runtime.yml.
|
||||
- ansible-test - ``validate-modules`` now validates all version numbers in documentation and argument spec. Version numbers for collections are checked for being valid semantic versioning version number strings.
|
||||
- ansible-test - add ``validate-modules`` tests for ``removed_in_version`` and ``deprecated_aliases`` (https://github.com/ansible/ansible/pull/66920/).
|
||||
- ansible-test - add check for ``print()`` calls in modules and module_utils.
|
||||
- ansible-test - added a ``--no-pip-check`` option
|
||||
- ansible-test - added a ``--venv-system-site-packages`` option for use with the ``--venv`` option
|
||||
- ansible-test - added new ``changelog`` test, which runs if a `antsibull-changelog <https://pypi.org/project/antsibull-changelog/>`_ configuration or files in ``changelogs/fragments/`` are found (https://github.com/ansible/ansible/pull/69313).
|
||||
- ansible-test - allow delegation config to specify equivalents to the ``--no-pip-check``, ``--disable-httptester`` and `--no-temp-unicode`` options
|
||||
- ansible-test - allow sanity tests to check for optional errors by specifying ``--enable-optional-errors`` (https://github.com/ansible/ansible/pull/66920/).
|
||||
- ansible-test - also run the ``ansible-doc`` sanity test with ``--json`` to ensure that the documentation does not contain something that cannot be exported as JSON (https://github.com/ansible/ansible/issues/69238).
|
||||
- ansible-test - enable deprecated version testing for modules and ``module.deprecate()`` calls (https://github.com/ansible/ansible/pull/66920/).
|
||||
- ansible-test - extend alias validation.
|
||||
- ansible-test - fixed ``units`` command with ``--docker`` to (mostly) work under podman
|
||||
- ansible-test - improve module validation so that ``default``, ``sample`` and ``example`` contain JSON values and not arbitrary YAML values, like ``datetime`` objects or dictionaries with non-string keys.
|
||||
- ansible-test - module validation will now consider arguments added by ``add_file_common_arguments=True`` correctly.
|
||||
- ansible-test - switch from testing RHEL 8.0 and RHEL 8.1 Beta to RHEL 8.1
|
||||
- ansible-test - the argument spec of modules is now validated by a YAML schema.
|
||||
- ansible-test - the module validation code now checks whether ``elements`` documentation for options matches the argument_spec.
|
||||
- ansible-test - the module validation code now checks whether ``elements`` is defined when ``type=list``
|
||||
- ansible-test - the module validation code now checks whether ``requirement`` for options is documented correctly.
|
||||
- ansible-test add pyparsing constraint for Python 2.x to avoid compatibility issues with the upcoming pyparsing 3 release
|
||||
- ansible-test defaults to redacting sensitive values (disable with the ``--no-redact`` option)
|
||||
- ansible-test has been updated to use ``default-test-container:1.13`` which includes fewer Python requirements now that most modules and tests have been migrated to collections.
|
||||
- ansible-test no longer detects ``git`` submodule directories as files.
|
||||
- ansible-test no longer provides a ``--tox`` option. Use the ``--venv`` option instead. This only affects testing the Ansible source. The feature was never available for Ansible Collections or when running from an Ansible install.
|
||||
- ansible-test no longer tries to install sanity test dependencies on unsupported Python versions
|
||||
- ansible-test now checks for the minimum and maximum supported versions when importing ``coverage``
|
||||
- ansible-test now filters out unnecessary warnings and messages from pip when installing its own requirements
|
||||
- ansible-test now has a ``--list-files`` option to list files using the ``env`` command.
|
||||
- ansible-test now includes the ``pylint`` plugin ``mccabe`` in optional sanity tests enabled with ``--enable-optional-errors``
|
||||
- ansible-test now places the ansible source and collections content in separate directories when using the ``--docker`` or ``--remote`` options.
|
||||
- ansible-test now provides a more helpful error when loading coverage files created by ``coverage`` version 5 or later
|
||||
- ansible-test now supports provisioning of network resources when testing network collections
|
||||
- ansible-test now supports skip aliases in the format ``skip/{arch}/{platform}`` and ``skip/{arch}/{platform}/{version}`` where ``arch`` can be ``power``. These aliases are only effective for the ``--remote`` option.
|
||||
- ansible-test now supports skip aliases in the format ``skip/{platform}/{version}`` for the ``--remote`` option. This is preferred over the older ``skip/{platform}{version}`` format which included no ``/`` between the platform and version.
|
||||
- ansible-test now supports testing against RHEL 7.8 when using the ``--remote`` option.
|
||||
- ansible-test now supports the ``--remote power/centos/7`` platform option.
|
||||
- ansible-test now validates the schema of ansible_builtin_runtime.yml and a collections meta/runtime.yml file.
|
||||
- ansible-test provides clearer error messages when failing to detect the provider to use with the ``--remote`` option.
|
||||
- ansible-test provisioning of network devices for ``network-integration`` has been updated to use collections.
|
||||
- ansible_native_concat() - use ``to_text`` function rather than Jinja2's ``text_type`` which has been removed in Jinja2 master branch.
|
||||
- apt - Implemented an exponential backoff behaviour when retrying to update the cache with new params ``update_cache_retry_max_delay`` and ``update_cache_retries`` to control the behavior.
|
||||
- apt_repository - Implemented an exponential backoff behaviour when retrying to update the apt cache with new params ``update_cache_retry_max_delay`` and ``update_cache_retries`` to control the behavior.
|
||||
- blockinfile - Update module documentation to clarify insertbefore/insertafter usage.
|
||||
- callbacks - Allow modules to return `None` as before/after entries for diff. This should make it easier for modules to report the "not existing" state of the entity they touched.
|
||||
- combine filter - now accept a ``list_merge`` argument which modifies its behaviour when the hashes to merge contain arrays/lists.
|
||||
- conditionals - change the default of CONDITIONAL_BARE_VARS to False (https://github.com/ansible/ansible/issues/70682).
|
||||
- config - accept singular version of ``collections_path`` ini setting and ``ANSIBLE_COLLECTIONS_PATH`` environment variable setting
|
||||
- core filters - Adding ``path_join`` filter to the core filters list
|
||||
- debconf - add a note about no_log=True since module might expose sensitive information to logs (https://github.com/ansible/ansible/issues/32386).
|
||||
- default_callback - moving 'check_mode_markers' documentation in default_callback doc_fragment (https://github.com/ansible-collections/community.general/issues/565).
|
||||
- distro - Update bundled version of distro from 1.4.0 to 1.5.0
|
||||
- dnf - Properly handle idempotent transactions with package name wildcard globs (https://github.com/ansible/ansible/issues/62809)
|
||||
- dnf - Properly handle module AppStreams that don't define stream (https://github.com/ansible/ansible/issues/63683)
|
||||
- dnf param to pass allowerasing
|
||||
- downstream packagers may install packages under ansible._vendor, which will be added to head of sys.path at ansible package load
|
||||
- file - specifying ``src`` without ``state`` is now an error
|
||||
- get_bin_path() - change the interface to always raise ``ValueError`` if the command is not found (https://github.com/ansible/ansible/pull/56813)
|
||||
- get_url - Remove deprecated string format support for the headers option (https://github.com/ansible/ansible/issues/61891)
|
||||
- git - added an ``archive_prefix`` option to set a prefix to add to each file path in archive
|
||||
- host_group_vars plugin - Require whitelisting and whitelist by default.
|
||||
- new magic variable - ``ansible_config_file`` - full path of used Ansible config file
|
||||
- package_facts.py - Add support for Pacman package manager.
|
||||
- pipe lookup - update docs for Popen with shell=True usages (https://github.com/ansible/ansible/issues/70159).
|
||||
- plugin loader - Add MODULE_IGNORE_EXTS config option to skip over certain extensions when looking for script and binary modules.
|
||||
- powershell (shell plugin) - Fix `join_path` to support UNC paths (https://github.com/ansible/ansible/issues/66341)
|
||||
- regexp_replace filter - add multiline support for regex_replace filter (https://github.com/ansible/ansible/issues/61985)
|
||||
- rename ``_find_existing_collections()`` to ``find_existing_collections()`` to reflect its use across multiple files
|
||||
- reorganized code for the ``ansible-test coverage`` command for easier maintenance and feature additions
|
||||
- service_facts - Added undocumented 'indirect' and 'static' as service status (https://github.com/ansible/ansible/issues/69752).
|
||||
- ssh - connection plugin now supports a new variable ``sshpass_prompt`` which gets passed to ``sshpass`` allowing the user to set a custom substring to search for a password prompt (requires sshpass 1.06+)
|
||||
- systemd - default scope is now explicitly "system"
|
||||
- tests - Add new ``truthy`` and ``falsy`` jinja2 tests to evaluate the truthiness or falsiness of a value
|
||||
- to_nice_json filter - Removed now-useless exception handler
|
||||
- to_uuid - add a named parameter to let the user optionally set a custom namespace
|
||||
- update ansible-test default-test-container from version 1.13 to 1.14, which includes an update from Python 3.9.0a6 to Python 3.9.0b1
|
||||
- update ansible-test default-test-container from version 1.9.1 to 1.9.2
|
||||
- update ansible-test default-test-container from version 1.9.2 to 1.9.3
|
||||
- update ansible-test default-test-container from version 1.9.3 to 1.10.1
|
||||
- update ansible-test images to 1.16.0, which includes system updates and pins CentOS versions
|
||||
- uri/galaxy - Add new ``prepare_multipart`` helper function for creating a ``multipart/form-data`` body (https://github.com/ansible/ansible/pull/69376)
|
||||
- url_lookup_plugin - add parameters to match what is available in ``module_utils/urls.py``
|
||||
- user - allow groups, append parameters with local
|
||||
- user - usage of ``append: True`` without setting a list of groups. This is currently a no-op with a warning, and will change to an error in 2.14. (https://github.com/ansible/ansible/pull/65795)
|
||||
- validate-modules checks for deprecated in collections against meta/runtime.yml
|
||||
- validation - Sort missing parameters in exception message thrown by check_required_arguments
|
||||
- vars plugins - Support vars plugins in collections by adding the ability to whitelist plugins.
|
||||
- vars_prompt - throw error when encountering unsupported key
|
||||
- win_package - Added proxy support for retrieving packages from a URL - https://github.com/ansible/ansible/issues/43818
|
||||
- win_package - Added support for ``.appx``, ``.msix``, ``.appxbundle``, and ``.msixbundle`` package - https://github.com/ansible/ansible/issues/50765
|
||||
- win_package - Added support for ``.msp`` packages - https://github.com/ansible/ansible/issues/22789
|
||||
- win_package - Added support for specifying the HTTP method when getting files from a URL - https://github.com/ansible/ansible/issues/35377
|
||||
- win_package - Read uninstall strings from the ``QuietUninstallString`` if present to better support argumentless uninstalls of registry based packages.
|
||||
- win_package - Scan packages in the current user's registry hive - https://github.com/ansible/ansible/issues/45950
|
||||
- windows collections - Support relative module util imports in PowerShell modules and module_utils
|
||||
|
||||
Deprecated Features
|
||||
-------------------
|
||||
|
||||
- Using the DefaultCallback without the correspodning doc_fragment or copying the documentation.
|
||||
- hash_behaviour - Deprecate ``hash_behaviour`` for future removal.
|
||||
- script inventory plugin - The 'cache' option is deprecated and will be removed in 2.12. Its use has been removed from the plugin since it has never had any effect.
|
||||
|
||||
Removed Features (previously deprecated)
|
||||
----------------------------------------
|
||||
|
||||
- core - remove support for ``check_invalid_arguments`` in ``AnsibleModule``, ``AzureModule`` and ``UTMModule``.
|
||||
|
||||
Security Fixes
|
||||
--------------
|
||||
|
||||
- **security issue** - Convert CLI provided passwords to text initially, to prevent unsafe context being lost when converting from bytes->text during post processing of PlayContext. This prevents CLI provided passwords from being incorrectly templated (CVE-2019-14856)
|
||||
- **security issue** - Redact cloud plugin secrets in ansible-test when running integration tests using cloud plugins. Only present in 2.9.0b1.
|
||||
- **security issue** - TaskExecutor - Ensure we don't erase unsafe context in TaskExecutor.run on bytes. Only present in 2.9.0beta1 (https://github.com/ansible/ansible/issues/62237)
|
||||
- **security issue** - The ``subversion`` module provided the password via the svn command line option ``--password`` and can be retrieved from the host's /proc/<pid>/cmdline file. Update the module to use the secure ``--password-from-stdin`` option instead, and add a warning in the module and in the documentation if svn version is too old to support it. (CVE-2020-1739)
|
||||
- **security issue** - Update ``AnsibleUnsafeText`` and ``AnsibleUnsafeBytes`` to maintain unsafe context by overriding ``.encode`` and ``.decode``. This prevents future issues with ``to_text``, ``to_bytes``, or ``to_native`` removing the unsafe wrapper when converting between string types (CVE-2019-14856)
|
||||
- **security issue** - properly hide parameters marked with ``no_log`` in suboptions when invalid parameters are passed to the module (CVE-2019-14858)
|
||||
- **security issue** atomic_move - change default permissions when creating temporary files so they are not world readable (https://github.com/ansible/ansible/issues/67794) (CVE-2020-1736)
|
||||
- **security issue** win_unzip - normalize paths in archive to ensure extracted files do not escape from the target directory (CVE-2020-1737)
|
||||
- **security_issue** - create temporary vault file with strict permissions when editing and prevent race condition (CVE-2020-1740)
|
||||
- Ensure we get an error when creating a remote tmp if it already exists. CVE-2020-1733
|
||||
- In fetch action, avoid using slurp return to set up dest, also ensure no dir traversal CVE-2020-1735.
|
||||
- Sanitize no_log values from any response keys that might be returned from the uri module (CVE-2020-14330).
|
||||
- ansible-galaxy - Error when install finds a tar with a file that will be extracted outside the collection install directory - CVE-2020-10691
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- ActionBase - Add new ``cleanup`` method that is explicitly run by the ``TaskExecutor`` to ensure that the shell plugins ``tmpdir`` is always removed. This change means that individual action plugins need not be responsible for removing the temporary directory, which ensures that we don't have code paths that accidentally leave behind the temporary directory.
|
||||
- Add example setting for ``collections_paths`` parameter to ``examples/ansible.cfg``
|
||||
- Add missing gcp modules to gcp module defaults group
|
||||
- Added support for Flatcar Container Linux in distribution and hostname modules. (https://github.com/ansible/ansible/pull/69627)
|
||||
- Added support for OSMC distro in hostname module (https://github.com/ansible/ansible/issues/66189).
|
||||
- Address compat with rpmfluff-0.6 for integration tests
|
||||
- Address the deprecation of the use of stdlib distutils in packaging. It's a short-term hotfix for the problem (https://github.com/ansible/ansible/issues/70456, https://github.com/pypa/setuptools/issues/2230, https://github.com/pypa/setuptools/commit/bd110264)
|
||||
- Allow TypeErrors on Undefined variables in filters to be handled or deferred when processing for loops.
|
||||
- Allow tasks to notify a fqcn handler name (https://github.com/ansible/ansible/issues/68181)
|
||||
- An invalid value is hard to track down if you don't know where it came from, return field name instead.
|
||||
- Ansible output now uses stdout to determine column width instead of stdin
|
||||
- Ansible.Basic - Fix issue when setting a ``no_log`` parameter to an empty string - https://github.com/ansible/ansible/issues/62613
|
||||
- Ansible.ModuleUtils.WebRequest - actually set no proxy when ``use_proxy: no`` is set on a Windows module - https://github.com/ansible/ansible/issues/68528
|
||||
- AnsibleDumper - Add a representer for AnsibleUnsafeBytes (https://github.com/ansible/ansible/issues/62562).
|
||||
- AnsibleModule.run_command() - set ``close_fds`` to ``False`` on Python 2 if ``pass_fds`` are passed to ``run_command()``. Since ``subprocess.Popen()`` on Python 2 does not have the ``pass_fds`` option, there is no way to exclude a specific list of file descriptors from being closed.
|
||||
- Avoid bare select() for running commands to avoid too large file descriptor numbers failing tasks
|
||||
- Avoid running subfunctions that are passed to show_vars function when it will be a noop.
|
||||
- By passing the module_tmpdir as a parameter in the write_ssh_wrapper function instead of initalizing module_tmpdir via get_module_path()
|
||||
- CLI - the `ANSIBLE_PLAYBOOK_DIR` envvar or `playbook_dir` config can now substitute for the --playbook-dir arg on CLIs that support it (https://github.com/ansible/ansible/issues/59464)
|
||||
- Check NoneType for raw_params before proceeding in include_vars (https://github.com/ansible/ansible/issues/64939).
|
||||
- Collections - Allow a collection role to call a stand alone role, without needing to explicitly add ``ansible.legacy`` to the collection search order within the collection role. (https://github.com/ansible/ansible/issues/69101)
|
||||
- Correctly process raw_params in add_hosts.
|
||||
- Create an ``import_module`` compat util, for use across the codebase, to allow collection loading to work properly on Python26
|
||||
- DUPLICATE_YAML_DICT_KEY - Fix error output when configuration option DUPLICATE_YAML_DICT_KEY is set to error (https://github.com/ansible/ansible/issues/65366)
|
||||
- Do not keep empty blocks in PlayIterator after skipping tasks with tags.
|
||||
- Ensure DataLoader temp files are removed at appropriate times and that we observe the LOCAL_TMP setting.
|
||||
- Ensure that ``--version`` works with non-ascii ansible project paths (https://github.com/ansible/ansible/issues/66617)
|
||||
- Ensure that keywords defined as booleans are correctly interpreting their input, before patch any random string would be interpreted as False
|
||||
- Ensure we don't allow ansible_facts subkey of ansible_facts to override top level, also fix 'deprefixing' to prevent key transforms.
|
||||
- Fact Delegation - Add ability to indicate which facts must always be delegated. Primarily for ``discovered_interpreter_python`` right now, but extensible later. (https://github.com/ansible/ansible/issues/61002)
|
||||
- Fix ``delegate_facts: true`` when ``ansible_python_interpreter`` is not set. (https://github.com/ansible/ansible/issues/70168)
|
||||
- Fix a bug when a host was not removed from a play after ``meta: end_host`` and as a result the host was still present in ``ansible_play_hosts`` and ``ansible_play_batch`` variables.
|
||||
- Fix an issue with the ``fileglob`` plugin where passing a subdirectory of non-existent directory would cause it to fail - https://github.com/ansible/ansible/issues/69450
|
||||
- Fix case sensitivity for ``lookup()`` (https://github.com/ansible/ansible/issues/66464)
|
||||
- Fix collection install error that happened if a dependency specified dependencies to be null (https://github.com/ansible/ansible/issues/67574).
|
||||
- Fix https://github.com/ansible/galaxy-dev/issues/96 Add support for automation-hub authentication to ansible-galaxy
|
||||
- Fix incorrect "Could not match supplied host pattern" warning (https://github.com/ansible/ansible/issues/66764)
|
||||
- Fix issue git module cannot use custom `key_file` or `ssh_opts` as non-root user on system with noexec `/tmp` (https://github.com/ansible/ansible/issues/30064).
|
||||
- Fix issue git module ignores remote_tmp (https://github.com/ansible/ansible/issues/33947).
|
||||
- Fix issue where the collection loader tracebacks if ``collections_paths = ./`` is set in the config
|
||||
- Fix issue with callbacks ``set_options`` method that was not called with collections
|
||||
- Fix label lookup in the default callback for includes (https://github.com/ansible/ansible/issues/65904)
|
||||
- Fix regression when ``ansible_failed_task`` and ``ansible_failed_result`` are not defined in the rescue block (https://github.com/ansible/ansible/issues/64789)
|
||||
- Fix string parsing of inline vault strings for plugin config variable sources
|
||||
- Fix traceback when printing ``HostVars`` on native Jinja2 (https://github.com/ansible/ansible/issues/65365)
|
||||
- Fix warning for default permission change when no mode is specified. Follow up to https://github.com/ansible/ansible/issues/67794. (CVE-2020-1736)
|
||||
- Fixed a bug with the copy action plugin where mode=preserve was being passed on symlink files and causing a traceback (https://github.com/ansible/ansible/issues/68471).
|
||||
- Fixed the equality check for IncludedFiles to ensure they are not accidently merged when process_include_results runs.
|
||||
- Fixes ansible-test traceback when plugin author is not a string or a list of strings (https://github.com/ansible/ansible/pull/70507)
|
||||
- Fixes in network action plugins load from collections using module prefix (https://github.com/ansible/ansible/issues/65071)
|
||||
- Force collection names to be static so that a warning is generated because templating currently does not work (see https://github.com/ansible/ansible/issues/68704).
|
||||
- Handle empty extra vars in ansible cli (https://github.com/ansible/ansible/issues/61497).
|
||||
- Handle empty roles and empty collections in requirements.yml in ansible-galaxy install command (https://github.com/ansible/ansible/issues/68186).
|
||||
- Handle exception encountered while parsing the argument description in module when invoked via ansible-doc command (https://github.com/ansible/ansible/issues/60587).
|
||||
- Handle exception when /etc/shadow file is missing or not found, while operating user operation in user module (https://github.com/ansible/ansible/issues/63490).
|
||||
- HostVarsVars - Template the __repr__ value (https://github.com/ansible/ansible/issues/64128).
|
||||
- JSON Encoder - Ensure we treat single vault encrypted values as strings (https://github.com/ansible/ansible/issues/70784)
|
||||
- Make netconf plugin configurable to set ncclient device handler name in netconf plugin (https://github.com/ansible/ansible/pull/65718)
|
||||
- Make sure if a collection is supplied as a string that we transform it into a list.
|
||||
- Misc typo fixes in various documentation pages.
|
||||
- Module arguments in suboptions which were marked as deprecated with ``removed_in_version`` did not result in a warning.
|
||||
- On HTTP status code 304, return status_code
|
||||
- Plugin Metadata is supposed to have default values. When the metadata was missing entirely, we were properly setting the defaults. Fixed the metadata parsing so that the defaults are also set when we were missing just a few fields.
|
||||
- Prevent a race condition when running handlers using a combination of the free strategy and include_role.
|
||||
- Prevent rewriting nested Block's data in filter_tagged_tasks
|
||||
- Prevent templating unused variables for {% include %} (https://github.com/ansible/ansible/issues/68699)
|
||||
- Properly handle unicode in ``safe_eval``. (https://github.com/ansible/ansible/issues/66943)
|
||||
- Python module_utils finder - refactor logic to eliminate many corner cases, remove recursion, fix base module_utils redirections
|
||||
- Remove a temp directory created by wait_for_connection action plugin (https://github.com/ansible/ansible/issues/62407).
|
||||
- Remove the unnecessary warning about aptitude not being installed (https://github.com/ansible/ansible/issues/56832).
|
||||
- Remove unused Python imports in ``ansible-inventory``.
|
||||
- Restore the ability for changed_when/failed_when to function with group_by (#70844).
|
||||
- Role Installation - Ensure that a role containing files with non-ascii characters can be installed (https://github.com/ansible/ansible/issues/69133)
|
||||
- RoleRequirement - include stderr in the error message if a scm command fails (https://github.com/ansible/ansible/issues/41336)
|
||||
- SSH plugin - Improve error message when ssh client is not found on the host
|
||||
- Skipping of become for ``network_cli`` connections now works when ``network_cli`` is sourced from a collection.
|
||||
- Stop adding the connection variables to the output results
|
||||
- Strictly check string datatype for 'tasks_from', 'vars_from', 'defaults_from', and 'handlers_from' in include_role (https://github.com/ansible/ansible/issues/68515).
|
||||
- Strip no log values from module response keys (https://github.com/ansible/ansible/issues/68400)
|
||||
- TaskExecutor - Handle unexpected errors as failed while post validating loops (https://github.com/ansible/ansible/issues/70050).
|
||||
- TaskQueueManager - Explicitly set the mutliprocessing start method to ``fork`` to avoid issues with the default on macOS now being ``spawn``.
|
||||
- Template connection variables before using them (https://github.com/ansible/ansible/issues/70598).
|
||||
- Templating - Ansible was caching results of Jinja2 expressions in some cases where these expressions could have dynamic results, like password generation (https://github.com/ansible/ansible/issues/34144).
|
||||
- Terminal plugins - add "\e[m" to the list of ANSI sequences stripped from device output
|
||||
- The `ansible_become` value was not being treated as a boolean value when set in an INI format inventory file (fixes bug https://github.com/ansible/ansible/issues/70476).
|
||||
- The ansible-galaxy publish command was using an incorrect URL for v3 servers. The configuration for v3 servers includes part of the path fragment that was added in the new test.
|
||||
- The machine-readable changelog ``changelogs/changelog.yaml`` is now contained in the release.
|
||||
- Update ActionBase._low_level_execute_command to honor executable (https://github.com/ansible/ansible/issues/68054)
|
||||
- Update the warning message for ``CONDITIONAL_BARE_VARS`` to list the original conditional not the value of the original conditional (https://github.com/ansible/ansible/issues/67735)
|
||||
- Use ``sys.exit`` instead of ``exit`` in ``ansible-inventory``.
|
||||
- Use fqcr from command module invocation using shell module. Fixes https://github.com/ansible/ansible/issues/69788
|
||||
- Use hostnamectl command to get current hostname for host while using systemd strategy (https://github.com/ansible/ansible/issues/59438).
|
||||
- Using --start-at-task would fail when it attempted to skip over tasks with no name.
|
||||
- Validate include args in handlers.
|
||||
- Vault - Allow single vault encrypted values to be used directly as module parameters. (https://github.com/ansible/ansible/issues/68275)
|
||||
- Vault - Make the single vaulted value ``AnsibleVaultEncryptedUnicode`` class work more like a string by replicating the behavior of ``collections.UserString`` from Python. These changes don't allow it to be considered a string, but most common python string actions will now work as expected. (https://github.com/ansible/ansible/pull/67823)
|
||||
- ``AnsibleUnsafe``/``AnsibleContext``/``Templar`` - Do not treat ``AnsibleUndefined`` as being "unsafe" (https://github.com/ansible/ansible/issues/65198)
|
||||
- account for empty strings in when splitting the host pattern (https://github.com/ansible/ansible/issues/61964)
|
||||
- action plugins - change all action/module delegations to use FQ names while allowing overrides (https://github.com/ansible/ansible/issues/69788)
|
||||
- add constraints file for ``anisble_runner`` test since an update to ``psutil`` is now causing test failures
|
||||
- add magic/connection vars updates from delegated host info.
|
||||
- add parameter name to warning message when values are converted to strings (https://github.com/ansible/ansible/pull/57145)
|
||||
- add_host action now correctly shows idempotency/changed status
|
||||
- added 'unimplemented' prefix to file based caching
|
||||
- added new option for default callback to compat variable to avoid old 3rd party plugins from erroring out.
|
||||
- adhoc CLI - when playbook-dir is specified and inside a collection, use default collection logic to resolve modules/actions
|
||||
- allow external collections to be created in the 'ansible' collection namespace (https://github.com/ansible/ansible/issues/59988)
|
||||
- also strip spaces around config values in pathlist as we do in list types
|
||||
- ansiballz - remove '' and '.' from sys.path to fix a permissions issue on OpenBSD with pipelining (#69320)
|
||||
- ansible command now correctly sends v2_playbook_on_start to callbacks
|
||||
- ansible-connection persists even after playbook run is completed (https://github.com/ansible/ansible/pull/61591)
|
||||
- ansible-doc - Allow and give precedence to `removed_at_date` for deprecated modules.
|
||||
- ansible-doc - collection name for plugin top-level deprecation was not inserted when deprecating by version (https://github.com/ansible/ansible/pull/70344).
|
||||
- ansible-doc - improve error message in text formatter when ``description`` is missing for a (sub-)option or a return value or its ``contains`` (https://github.com/ansible/ansible/pull/70046).
|
||||
- ansible-doc - improve man page formatting to avoid problems when YAML anchors are used (https://github.com/ansible/ansible/pull/70045).
|
||||
- ansible-doc - include the collection name in the text output (https://github.com/ansible/ansible/pull/70401).
|
||||
- ansible-doc now properly handles removed modules/plugins
|
||||
- ansible-galaxy - Default collection install path to first path in COLLECTIONS_PATHS (https://github.com/ansible/ansible/pull/62870)
|
||||
- ansible-galaxy - Display proper error when invalid token is used for Galaxy servers
|
||||
- ansible-galaxy - Ensure we preserve the new URL when appending ``/api`` for the case where the GET succeeds on galaxy.ansible.com
|
||||
- ansible-galaxy - Expand the ``User-Agent`` to include more information and add it to more calls to Galaxy endpoints.
|
||||
- ansible-galaxy - Fix ``collection install`` when installing from a URL or a file - https://github.com/ansible/ansible/issues/65109
|
||||
- ansible-galaxy - Fix ``multipart/form-data`` body to include extra CRLF (https://github.com/ansible/ansible/pull/67942)
|
||||
- ansible-galaxy - Fix issue when compared installed dependencies with a collection having no ``MANIFEST.json`` or an empty version string in the json
|
||||
- ansible-galaxy - Fix pagination issue when retrieving role versions for install - https://github.com/ansible/ansible/issues/64355
|
||||
- ansible-galaxy - Fix up pagination searcher for collection versions on Automation Hub
|
||||
- ansible-galaxy - Fix url building to not truncate the URL (https://github.com/ansible/ansible/issues/61624)
|
||||
- ansible-galaxy - Handle the different task resource urls in API responses from publishing collection artifacts to galaxy servers using v2 and v3 APIs.
|
||||
- ansible-galaxy - Preserve symlinks when building and installing a collection
|
||||
- ansible-galaxy - Remove uneeded verbose messages when accessing local token file
|
||||
- ansible-galaxy - Return the HTTP code reason if no error msg was returned by the server - https://github.com/ansible/ansible/issues/64850
|
||||
- ansible-galaxy - Send SHA256 hashes when publishing a collection
|
||||
- ansible-galaxy - Set ``User-Agent`` to Ansible version when interacting with Galaxy or Automation Hub
|
||||
- ansible-galaxy - Treat the ``GALAXY_SERVER_LIST`` config entry that is defined but with no values as an empty list
|
||||
- ansible-galaxy - Utilize ``Templar`` for templating skeleton files, so that they have access to Ansible filters/tests/lookups (https://github.com/ansible/ansible/issues/69104)
|
||||
- ansible-galaxy - fix a bug where listing a specific role if it was not in the first path failed to find the role
|
||||
- ansible-galaxy - fix regression that prenented roles from being listed
|
||||
- ansible-galaxy - hide warning during collection installation if other installed collections do not contain a ``MANIFEST.json`` (https://github.com/ansible/ansible/issues/67490)
|
||||
- ansible-galaxy - properly list roles when the role name also happens to be in the role path (https://github.com/ansible/ansible/issues/67365)
|
||||
- ansible-galaxy - properly show the role description when running offline (https://github.com/ansible/ansible/issues/60167)
|
||||
- ansible-galaxy cli - fixed ``--version`` argument
|
||||
- ansible-galaxy collection - Preserve executable bit on build and preserve mode on install from what tar member is set to - https://github.com/ansible/ansible/issues/68415
|
||||
- ansible-galaxy collection download - fix downloading tar.gz files and collections in git repositories (https://github.com/ansible/ansible/issues/70429)
|
||||
- ansible-galaxy collection install - fix fallback mechanism if the AH server did not have the collection requested - https://github.com/ansible/ansible/issues/70940
|
||||
- ansible-galaxy role - Fix issue where ``--server`` was not being used for certain ``ansible-galaxy role`` actions - https://github.com/ansible/ansible/issues/61609
|
||||
- ansible-galaxy- On giving an invalid subcommand to ansible-galaxy, the help would be shown only for role subcommand (collection subcommand help is not shown). With this change, the entire help for ansible-galaxy (same as ansible-galaxy --help) is displayed along with the help for role subcommand. (https://github.com/ansible/ansible/issues/69009)
|
||||
- ansible-inventory - Fix long standing bug not loading vars plugins for group vars relative to the playbook dir when the '--playbook-dir' and '--export' flags are used together.
|
||||
- ansible-inventory - Fix regression loading vars plugins. (https://github.com/ansible/ansible/issues/65064)
|
||||
- ansible-inventory - Properly hide arguments that should not be shown (https://github.com/ansible/ansible/issues/61604)
|
||||
- ansible-inventory - Restore functionality to allow ``--graph`` to be limited by a host pattern
|
||||
- ansible-test - Add ``pytest < 6.0.0`` constraint for managed installations on Python 3.x to avoid issues with relative imports.
|
||||
- ansible-test - Change detection now properly resolves relative imports instead of treating them as absolute imports.
|
||||
- ansible-test - Code cleanup.
|
||||
- ansible-test - Disabled the ``duplicate-code`` and ``cyclic-import`` checks for the ``pylint`` sanity test due to inconsistent results.
|
||||
- ansible-test - Do not try to validate PowerShell modules ``setup.ps1``, ``slurp.ps1``, and ``async_status.ps1``
|
||||
- ansible-test - Do not warn on missing PowerShell or C# util that are in other collections
|
||||
- ansible-test - Fix PowerShell module util analysis to properly detect the names of a util when running in a collection
|
||||
- ansible-test - Fix regression introduced in https://github.com/ansible/ansible/pull/67063 which caused module_utils analysis to fail on Python 2.x.
|
||||
- ansible-test - Fix traceback in validate-modules test when argument_spec is None.
|
||||
- ansible-test - Make sure import sanity test virtual environments also remove ``pkg-resources`` if it is not removed by uninstalling ``setuptools``.
|
||||
- ansible-test - Remove out-of-date constraint on installing paramiko versions 2.5.0 or later in tests.
|
||||
- ansible-test - The ``ansible-doc`` sanity test now works for ``netconf`` plugins.
|
||||
- ansible-test - The ``import`` sanity test now correctly blocks access to python modules, not just packages, in the ``ansible`` package.
|
||||
- ansible-test - The ``import`` sanity test now correctly provides an empty ``ansible`` package.
|
||||
- ansible-test - The shebang sanity test now correctly identifies modules in subdirectories in collections.
|
||||
- ansible-test - Updated Python constraints for installing ``coverage`` to resolve issues on multiple Python versions when using the ``--coverage`` option.
|
||||
- ansible-test - Updated requirements to limit ``boto3`` and ``botocore`` versions on Python 2.6 to supported versions.
|
||||
- ansible-test - Use ``sys.exit`` instead of ``exit``.
|
||||
- ansible-test - Use ``virtualenv`` versions before 20 on provisioned macOS instances to remain compatible with an older pip install.
|
||||
- ansible-test - avoid use of deprecated junit_xml method
|
||||
- ansible-test - bump version of ACME test container. The new version includes updated dependencies.
|
||||
- ansible-test - during module validation, handle add_file_common_args only for top-level arguments.
|
||||
- ansible-test - during module validation, improve alias handling.
|
||||
- ansible-test - for local change detection, allow to specify branch to compare to with ``--base-branch`` for all types of tests (https://github.com/ansible/ansible/pull/69508).
|
||||
- ansible-test - improve ``deprecate()`` call checker.
|
||||
- ansible-test - integration and unit test change detection now works for filter, lookup and test plugins
|
||||
- ansible-test can now install argparse with ``--requirements`` or delegation when the pip version in use is older than version 7.1
|
||||
- ansible-test change detection - Run only sanity tests on ``docs/`` and ``changelogs/`` in collections, to avoid triggering full CI runs of integration and unit tests when files in these directories change.
|
||||
- ansible-test coverage - Fix the ``--all`` argument when generating coverage reports - https://github.com/ansible/ansible/issues/62096
|
||||
- ansible-test import sanity test now consistently reports errors against the file being tested.
|
||||
- ansible-test import sanity test now consistently reports warnings as errors.
|
||||
- ansible-test import sanity test now properly handles relative imports.
|
||||
- ansible-test import sanity test now properly invokes Ansible modules as scripts.
|
||||
- ansible-test is now able to find its ``egg-info`` directory when it contains the Ansible version number
|
||||
- ansible-test no longer errors reporting coverage when no Python coverage exists. This fixes issues reporting on PowerShell only coverage from collections.
|
||||
- ansible-test no longer fails when downloading test results for a collection without a ``tests`` directory when using the ``--docker`` option.
|
||||
- ansible-test no longer optimizes setting ``PATH`` by prepending the directory containing the selected Python interpreter when it is named ``python``. This avoids unintentionally making other programs available on ``PATH``, including an already installed version of Ansible.
|
||||
- ansible-test no longer tracebacks during change analysis due to processing an empty python file
|
||||
- ansible-test no longer tries to install ``coverage`` 5.0+ since those versions are unsupported
|
||||
- ansible-test no longer tries to install ``setuptools`` 45+ on Python 2.x since those versions are unsupported
|
||||
- ansible-test now always uses the ``--python`` option for ``virtualenv`` to select the correct interpreter when creating environments with the ``--venv`` option
|
||||
- ansible-test now correctly collects code coverage on the last task in a play. This should resolve issues with missing code coverage, empty coverage files and corrupted coverage files resulting from early worker termination.
|
||||
- ansible-test now correctly enumerates submodules when a collection resides below the repository root
|
||||
- ansible-test now correctly excludes the test results temporary directory when copying files from the remote test system to the local system
|
||||
- ansible-test now correctly includes inventory files ignored by git when running tests with the ``--docker`` option
|
||||
- ansible-test now correctly installs the requirements specified by the collection's unit and integration tests instead of the requirements specified for Ansible's own unit and integration tests
|
||||
- ansible-test now correctly recognizes imports in collections when using the ``--changed`` option.
|
||||
- ansible-test now correctly rewrites coverage paths for PowerShell files when testing collections
|
||||
- ansible-test now creates its integration test temporary directory within the collection so ansible-playbook can properly detect the default collection
|
||||
- ansible-test now enables color ``ls`` on a remote host only if the host supports the feature
|
||||
- ansible-test now ignores empty ``*.py`` files when analyzing module_utils imports for change detection
|
||||
- ansible-test now ignores version control within subdirectories of collections. Previously this condition was an error.
|
||||
- ansible-test now ignores warnings when comparing pip versions before and after integration tests run
|
||||
- ansible-test now installs sanity test requirements specific to each test instead of installing requirements for all sanity tests
|
||||
- ansible-test now installs the correct version of ``cryptography`` with ``--requirements`` or delegation when setuptools is older than version 18.5
|
||||
- ansible-test now limits Jinja2 installs to version 2.10 and earlier on Python 2.6
|
||||
- ansible-test now limits ``pathspec`` to versions prior to 0.6.0 on Python 2.6 to avoid installation errors
|
||||
- ansible-test now limits installation of ``hcloud`` to Python 2.7 and 3.5 - 3.8 since other versions are unsupported
|
||||
- ansible-test now limits the version of ``setuptools`` on Python 2.6 to versions older than 37
|
||||
- ansible-test now loads the collection loader plugin early enough for ansible_collections imports to work in unit test conftest.py modules
|
||||
- ansible-test now preserves existing SSH authorized keys when provisioning a remote host
|
||||
- ansible-test now properly activates the vcenter plugin for vcenter tests when docker is available
|
||||
- ansible-test now properly activates virtual environments created using the --venv option
|
||||
- ansible-test now properly creates a virtual environment using ``venv`` when running in a ``virtualenv`` created virtual environment
|
||||
- ansible-test now properly excludes the ``tests/output/`` directory from code coverage
|
||||
- ansible-test now properly handles creation of Python execv wrappers when the selected interpreter is a script
|
||||
- ansible-test now properly handles enumeration of git submodules. Enumeration is now done with ``git submodule status --recursive`` without specifying ``.`` for the path, since that could cause the command to fail. Instead, relative paths outside the current directory are filtered out of the results. Errors from ``git`` commands will now once again be reported as errors instead of warnings.
|
||||
- ansible-test now properly handles warnings for removed modules/plugins
|
||||
- ansible-test now properly ignores the ``tests/output//`` directory when not using git
|
||||
- ansible-test now properly installs requirements for multiple Python versions when running sanity tests
|
||||
- ansible-test now properly recognizes modules and module_utils in collections when using the ``blacklist`` plugin for the ``pylint`` sanity test
|
||||
- ansible-test now properly registers its own code in a virtual environment when running from an install
|
||||
- ansible-test now properly reports import errors for collections when running the import sanity test
|
||||
- ansible-test now properly searches for ``pythonX.Y`` instead of ``python`` when looking for the real python that created a ``virtualenv``
|
||||
- ansible-test now properly sets PYTHONPATH for tests when running from an Ansible installation
|
||||
- ansible-test now properly sets ``ANSIBLE_PLAYBOOK_DIR`` for integration tests so unqualified collection references work for adhoc ``ansible`` usage
|
||||
- ansible-test now properly uses a fresh copy of environment variables for each command invocation to avoid mixing vars between commands
|
||||
- ansible-test now shows sanity test doc links when installed (previously the links were only visible when running from source)
|
||||
- ansible-test now shows the correct source path instead of ``%s`` for collection role based test targets when the ``-v`` option is used
|
||||
- ansible-test now supports submodules using older ``git`` versions which require querying status from the top level directory of the repo.
|
||||
- ansible-test now updates SSH keys it generates with newer versions of ssh-keygen to function with Paramiko
|
||||
- ansible-test now upgrades ``pip`` with `--requirements`` or delegation as needed when the pip version in use is older than version 7.1
|
||||
- ansible-test now uses GNU tar format instead of the Python default when creating payloads for remote systems
|
||||
- ansible-test now uses ``pycodestyle`` frozen at version 2.6.0 for consistent test results.
|
||||
- ansible-test now uses modules from the ``ansible.windows`` collection for setup and teardown of ``windows-integration`` tests and code coverage
|
||||
- ansible-test once again properly collects code coverage for ``ansible-connection``
|
||||
- ansible-test validate-modules - Fix arg spec collector for PowerShell to find utils in both a collection and base.
|
||||
- ansible-test validate-modules - ``version_added`` on module level was not validated for modules in collections (https://github.com/ansible/ansible/pull/70869).
|
||||
- ansible-test validate-modules - return correct error codes ``option-invalid-version-added`` resp. ``return-invalid-version-added`` instead of the wrong error ``deprecation-either-date-or-version`` when an invalid value of ``version_added`` is specified for an option or a return value (https://github.com/ansible/ansible/pull/70869).
|
||||
- ansible-test validate-modules sanity test code ``missing-module-utils-import-c#-requirements`` is now ``missing-module-utils-import-csharp-requirements`` (fixes ignore bug).
|
||||
- ansible-test validate-modules sanity test code ``multiple-c#-utils-per-requires`` is now ``multiple-csharp-utils-per-requires`` (fixes ignore bug).
|
||||
- ansible-test validate-modules sanity test now checks for AnsibleModule initialization instead of module_utils imports, which did not work in many cases.
|
||||
- ansible-test validate-modules sanity test now properly handles collections imports using the Ansible collection loader.
|
||||
- ansible-test validate-modules sanity test now properly handles relative imports.
|
||||
- ansible-test validate-modules sanity test now properly handles sys.exit in modules.
|
||||
- ansible-test validate-modules sanity test now properly invokes Ansible modules as scripts.
|
||||
- ansible-test windows coverage - Ensure coverage reports are UTF-8 encoded without a BOM
|
||||
- ansible-test windows coverage - Output temp files as UTF-8 with BOM to standardise against non coverage runs
|
||||
- ansible-vault - Fix ``encrypt_string`` output in a tty when using ``--sdtin-name`` option (https://github.com/ansible/ansible/issues/65121)
|
||||
- ansible-vault create - Fix exception on no arguments given
|
||||
- api - time.clock is removed in Python 3.8, add backward compatible code (https://github.com/ansible/ansible/issues/70649).
|
||||
- apt - Fixed the issue the cache being updated while auto-installing its dependencies even when ``update_cache`` is set to false.
|
||||
- apt - include exception message from apt python library in error output
|
||||
- assemble - fix decrypt argument in the module (https://github.com/ansible/ansible/issues/65450).
|
||||
- assemble module - fix documentation - the remote_src property specified a default value of no but it's actually yes.
|
||||
- avoid fatal traceback when a bad FQCN for a callback is supplied in the whitelist (#69401).
|
||||
- basic - use PollSelector implementation when DefaultSelector fails (https://github.com/ansible/ansible/issues/70238).
|
||||
- become - Fix various plugins that still used play_context to get the become password instead of through the plugin - https://github.com/ansible/ansible/issues/62367
|
||||
- blockinfile - fix regression that results in incorrect block in file when the block to be inserted does not end in a line separator (https://github.com/ansible/ansible/pull/69734)
|
||||
- blockinfile - preserve line endings on update (https://github.com/ansible/ansible/issues/64966)
|
||||
- clean_facts - use correct variable to avoid unnecessary handling of ``AttributeError``
|
||||
- code - removes some Python compatibility code for dealing with socket timeouts in ``wait_for``
|
||||
- collection loader - ensure Jinja function cache is fully-populated before lookup
|
||||
- collection loader - fixed relative imports on Python 2.7, ensure pluginloader caches use full name to prevent names from being clobbered (https://github.com/ansible/ansible/pull/60317)
|
||||
- collection metadata - ensure collection loader uses libyaml/CSafeLoader to parse collection metadata if available
|
||||
- collection_loader - sort Windows modules below other plugin types so the correct builtin plugin inside a role is selected (https://github.com/ansible/ansible/issues/65298)
|
||||
- collections - Handle errors better for filters and tests in collections, where a non-existent collection is specified, or importing the plugin results in an exception (https://github.com/ansible/ansible/issues/66721)
|
||||
- combine filter - ``[dict1, [dict2]] | combine`` now raise an error; previously ``combine`` had an undocumented behaviour where it was flattening the list before combining it (https://github.com/ansible/ansible/pull/57894#discussion_r339517518).
|
||||
- config - encoding failures on config values should be non-fatal (https://github.com/ansible/ansible/issues/63310)
|
||||
- copy - Fix copy modes when using remote_src=yes and src is a directory with trailing slash.
|
||||
- copy - Fixed copy module not working in case that remote_src is enabled and dest ends in a / (https://github.com/ansible/ansible/pull/47238)
|
||||
- copy - recursive copy with ``remote_src=yes`` now recurses beyond first level. (Fixes https://github.com/ansible/ansible/issues/58284)
|
||||
- core - remove unneeded Python version checks.
|
||||
- core - replace a compatibility import of pycompat24.literal_eval with ast.literal_eval.
|
||||
- core filters - fix ``extract()`` filter when key does not exist in container (https://github.com/ansible/ansible/issues/64957)
|
||||
- cron - encode and decode crontab files in UTF-8 explicitly to allow non-ascii chars in cron filepath and job (https://github.com/ansible/ansible/issues/69492)
|
||||
- cron and cronvar - use get_bin_path utility to locate the default crontab executable instead of the hardcoded /usr/bin/crontab. (https://github.com/ansible/ansible/pull/59765)
|
||||
- cron cronvar - only run ``get_bin_path()`` once
|
||||
- cronvar - use correct binary name (https://github.com/ansible/ansible/issues/63274)
|
||||
- deal with cases in which just a file is pased and not a path with directories, now fileglob correctly searches in 'files/' subdirs.
|
||||
- debug - fixed an issue introduced in Ansible 2.4 where a loop of debug tasks would lose the "changed" status on each item.
|
||||
- discovery will NOT update incorrect host anymore when in delegate_to task.
|
||||
- display - Improve method of removing extra new line after warnings so it does not break Tower/Runner (https://github.com/ansible/ansible/pull/68517)
|
||||
- display - remove extra new line after warnings (https://github.com/ansible/ansible/pull/65199)
|
||||
- display - remove leading space when displaying WARNING messages
|
||||
- display logging - Fix issue where 3rd party modules will print tracebacks when attempting to log information when ``ANSIBLE_LOG_PATH`` is set - https://github.com/ansible/ansible/issues/65249
|
||||
- display logging - Fixed up the logging formatter to use the proper prefixes for ``u=user`` and ``p=process``
|
||||
- display logging - Re-added the ``name`` attribute to the log formatter so that the source of the log can be seen
|
||||
- dnf - Fix idempotence of `state: installed` (https://github.com/ansible/ansible/issues/64963)
|
||||
- dnf - Unified error messages when trying to install a nonexistent package with newer dnf (4.2.18) vs older dnf (4.2.9)
|
||||
- dnf - Unified error messages when trying to remove a wildcard name that is not currently installed, with newer dnf (4.2.18) vs older dnf (4.2.9)
|
||||
- dnf - enable logging using setup_loggers() API in dnf-4.2.17-6 or later
|
||||
- dnf - remove custom ``fetch_rpm_from_url`` method in favor of more general ``ansible.module_utils.urls.fetch_file``.
|
||||
- dnf module - Ensure the modules exit_json['msg'] response is always string, not sometimes a tuple.
|
||||
- ensure delegated vars can resolve hostvars object and access vars from hostvars[inventory_hostname].
|
||||
- ensure we pass on interpreter discovery values to delegated host.
|
||||
- env lookup plugin - Fix handling of environment variables values containing utf-8 characters. (https://github.com/ansible/ansible/issues/65298)
|
||||
- fact gathering - Display warnings and deprecation messages that are created during the fact gathering phase
|
||||
- facts - account for Slackware OS with ``+`` in the name (https://github.com/ansible/ansible/issues/38760)
|
||||
- facts - fix detection of virtualization type when dmi product name is KVM Server
|
||||
- facts - fix incorrect UTC timestamp in ``iso8601_micro`` and ``iso8601``
|
||||
- facts - introduce fact "ansible_processor_nproc" which reflects the number of vcpus available to processes (falls back to the number of vcpus available to the scheduler)
|
||||
- file - Removed unreachable code in module
|
||||
- file - change ``_diff_peek`` in argument spec to be the correct type, which is ``bool`` (https://github.com/ansible/ansible/issues/59433)
|
||||
- file - return ``'state': 'absent'`` when a file does not exist (https://github.com/ansible/ansible/issues/66171)
|
||||
- find - clarify description of ``contains`` (https://github.com/ansible/ansible/issues/61983)
|
||||
- fix issue in which symlinked collection cannot be listed, though the docs/plugins can be loaded if referenced directly.
|
||||
- fix issue with inventory_hostname and delegated host vars mixing on connection settings.
|
||||
- fix wrong command line length calculation in ``ansible-console`` when long command inputted
|
||||
- for those running uids for invalid users (containers), fallback to uid=<uid> when logging fixes #68007
|
||||
- free strategy - Include failed hosts when filtering notified hosts for handlers. The strategy base should determine whether or not to run handlers on those hosts depending on whether forcing handlers is enabled (https://github.com/ansible/ansible/issues/65254).
|
||||
- galaxy - Fix an AttributeError on ansible-galaxy install with an empty requirements.yml (https://github.com/ansible/ansible/issues/66725).
|
||||
- get_url - Don't treat no checksum as a checksum match (https://github.com/ansible/ansible/issues/61978)
|
||||
- get_url pass incorrect If-Modified-Since header (https://github.com/ansible/ansible/issues/67417)
|
||||
- git - when force=True, apply --force flag to git fetches as well
|
||||
- group - The group module was not correctly detecting whether a local group is existing or not with local set to yes if the same group exists in a non local group repository e.g. LDAP. (https://github.com/ansible/ansible/issues/58619)
|
||||
- group_by now should correctly refect changed status.
|
||||
- hostname - Fixed an issue where the hostname on the cloudlinux 6 server could not be set.
|
||||
- hostname - make module work on Manjaro Linux (https://github.com/ansible/ansible/issues/61382)
|
||||
- hurd - Address FIXMEs. Extract functionality and exit early.
|
||||
- if the ``type`` for a module parameter in the argument spec is callable, do not pass ``kwargs`` to avoid errors (https://github.com/ansible/ansible/issues/70017)
|
||||
- include_vars - fix stack trace when passing ``dirs`` in an ad-hoc command (https://github.com/ansible/ansible/issues/62633)
|
||||
- interpreter discovery will now use correct vars (from delegated host) when in delegate_to task.
|
||||
- junit callback - avoid use of deprecated junit_xml method
|
||||
- lineinfile - add example of using alternative backrefs syntax (https://github.com/ansible/ansible/issues/42794)
|
||||
- lineinfile - don't attempt mkdirs when path doesn't contain directory path
|
||||
- lineinfile - fix bug that caused multiple line insertions (https://github.com/ansible/ansible/issues/58923).
|
||||
- lineinfile - fix not subscriptable error in exception handling around file creation
|
||||
- lineinfile - properly handle inserting a line when backrefs are enabled and the line already exists in the file (https://github.com/ansible/ansible/issues/63756)
|
||||
- lineinfile - use ``module.tmpdir`` to allow configuration of the remote temp directory (https://github.com/ansible/ansible/issues/68218)
|
||||
- lineinfile - use correct index value when inserting a line at the end of a file (https://github.com/ansible/ansible/issues/63684)
|
||||
- loops - Do not indiscriminately mark loop items as unsafe, only apply unsafe to ``with_`` style loops. The items from ``loop`` should not be explicitly wrapped in unsafe. The underlying templating mechanism should dictate this. (https://github.com/ansible/ansible/issues/64379)
|
||||
- make ``no_log=False`` on a module option silence the ``no_log`` warning (https://github.com/ansible/ansible/issues/49465 https://github.com/ansible/ansible/issues/64656)
|
||||
- match docs for ssh and ensure pipelining is configurable per connection plugin.
|
||||
- module executor - Address issue where changes to Ansiballz module code, change the behavior of module execution as it pertains to ``__file__`` and ``sys.modules`` (https://github.com/ansible/ansible/issues/64664)
|
||||
- module_defaults - support candidate action names for relocated content
|
||||
- module_defaults - support short group names for content relocated to collections
|
||||
- now correclty merge and not just overwrite facts when gathering using multiple modules.
|
||||
- objects - Remove FIXME comment because no fix is needed.
|
||||
- optimize 'smart' detection from being run over and over and preferably do it at config time.
|
||||
- package_facts - fix value of ``vital`` attribute which is returned when ``pkg`` manager is used
|
||||
- package_facts - use module warnings rather than a custom implementation for reporting warnings
|
||||
- packaging_yum - replace legacy file handling with a file manager.
|
||||
- paramiko - catch and handle exception to prevent stack trace when running in FIPS mode
|
||||
- paramiko_ssh - Removed redundant conditional statement in ``_parse_proxy_command`` that always evaluated to True.
|
||||
- paramiko_ssh - improve authentication error message so it is less confusing
|
||||
- paramiko_ssh - optimized file handling by using a context manager.
|
||||
- pause - handle exception when there is no stdout (https://github.com/ansible/ansible/pull/47851)
|
||||
- pip - The virtualenv_command option can now include arguments without requiring the full path to the binary. (https://github.com/ansible/ansible/issues/52275)
|
||||
- pip - check_mode with ``state: present`` now returns the correct state for pre-release versioned packages
|
||||
- playbooks - detect and propagate failures in ``always`` blocks after ``rescue`` (https://github.com/ansible/ansible/issues/70000)
|
||||
- plugins - Allow ensure_type to decrypt the value for string types (and implicit string types) when value is an inline vault.
|
||||
- psexec - Fix issue where the Kerberos package was not detected as being available.
|
||||
- psexec - Fix issue where the ``interactive`` option was not being passed down to the library.
|
||||
- reboot - Add support for the runit init system, used on Void Linux, that does not support the normal Linux syntax.
|
||||
- reboot, win_reboot - add ``boot_time_command`` parameter to override the default command used to determine whether or not a system was rebooted (https://github.com/ansible/ansible/issues/58868)
|
||||
- remove update/restore of vars from play_context as it is now redundant.
|
||||
- replace use of deprecated functions from ``ansible.module_utils.basic``.
|
||||
- reset logging level to INFO due to CVE-2019-14846.
|
||||
- roles - Ensure that ``allow_duplicates: true`` enables to run single role multiple times (https://github.com/ansible/ansible/issues/64902)
|
||||
- runas - Fix the ``runas`` ``become_pass`` variable fallback from ``ansible_runas_runas`` to ``ansible_runas_pass``
|
||||
- service_facts - Now correctly parses systemd list-unit-files for systemd >=245
|
||||
- setup - properly detect yum package manager for IBM i.
|
||||
- setup - service_mgr - detect systemd even if it isn't running, such as during a container build
|
||||
- shell - fix quoting of mkdir command in creation of remote_tmp in order to allow spaces and other special characters (https://github.com/ansible/ansible/issues/69577).
|
||||
- shell cmd - Properly escape double quotes in the command argument
|
||||
- splunk httpapi plugin - switch from splunk.enterprise_security to splunk.es in runtime.yml to reflect upstream change of Collection Name
|
||||
- ssh connection plugin - use ``get_option()`` rather than ``_play_context`` to ensure ``ANSBILE_SSH_ARGS`` are applied properly (https://github.com/ansible/ansible/issues/70437)
|
||||
- synchronize - allow data to be passed between two managed nodes when using the docker connection plugin (https://github.com/ansible/ansible/pull/65698)
|
||||
- synchronize - fix password authentication on Python 2 (https://github.com/ansible/ansible/issues/56629)
|
||||
- sysctl - Remove FIXME comments to avoid confusion
|
||||
- systemd - don't require systemd to be running to enable/disable or mask/unmask units
|
||||
- systemd - the module should fail in check_mode when service not found on host (https://github.com/ansible/ansible/pull/68136).
|
||||
- sysvinit - Add missing parameter ``module`` in call to ``daemonize()``.
|
||||
- template lookup - ensure changes to the templar in the lookup, do not affect the templar context outside of the lookup (https://github.com/ansible/ansible/issues/60106)
|
||||
- template lookup - fix regression when templating hostvars (https://github.com/ansible/ansible/issues/63940)
|
||||
- the default parsing will now show existing JSON errors and not just YAML (last attempted), also we avoid YAML parsing when we know we only want JSON issue
|
||||
- throttle: the linear strategy didn't always stuck with the throttle limit
|
||||
- unarchive - Remove incorrect and unused function arguments.
|
||||
- unsafe_proxy - Ensure that data within a tuple is marked as unsafe (https://github.com/ansible/ansible/issues/65722)
|
||||
- update ``user`` module to support silencing ``no_log`` warnings in the future (see: https://github.com/ansible/ansible/pull/64733)
|
||||
- uri - Don't return the body even if it failed (https://github.com/ansible/ansible/issues/21003)
|
||||
- user - allow 13 asterisk characters in password field without warning
|
||||
- user - don't create home directory and missing parents when create_home == false (https://github.com/ansible/ansible/pull/70600).
|
||||
- user - fix comprasion on macOS so module does not improperly report a change (https://github.com/ansible/ansible/issues/62969)
|
||||
- user - fix stack trace on AIX when attempting to parse shadow file that does not exist (https://github.com/ansible/ansible/issues/62510)
|
||||
- user - on systems using busybox, honor the ``on_changed`` parameter to prevent unnecessary password changing (https://github.com/ansible/ansible/issues/65711)
|
||||
- user - update docs to reflect proper way to remove account from all groups
|
||||
- validate-modules - Fix hang when inspecting module with a delegate args spec type
|
||||
- virtual facts - detect generic container environment based on non-empty "container" env var
|
||||
- wait_for_connection - with pipelining enabled, interpreter discovery would fail if the first connection attempt was not successful
|
||||
- win setup - Fix redirection path for the windows setup module
|
||||
- win_exec_wrapper - Be more defensive when it comes to getting unhandled exceptions
|
||||
- win_package - Handle quoted and unquoted strings in the registry ``UninstallString`` value - https://github.com/ansible/ansible/issues/40973
|
||||
- win_uri win_get_url - Fix the behaviour of ``follow_redirects: safe`` to actual redirect on ``GET`` and ``HEAD`` requests - https://github.com/ansible/ansible/issues/65556
|
||||
- windows async - use full path when calling PowerShell to reduce reliance on environment vars being correct - https://github.com/ansible/ansible/issues/70655
|
||||
- windows environment - Support env vars that contain the unicode variant of single quotes - https://github.com/ansible-collections/ansible.windows/issues/45
|
||||
- winrm - preserve winrm forensic data on put_file failures
|
||||
- yum - fix bug that caused ``enablerepo`` to not be honored when used with disablerepo all wildcard/glob (https://github.com/ansible/ansible/issues/66549)
|
||||
- yum - fixed the handling of releasever parameter
|
||||
- yum - performance bugfix, the YumBase object was being instantiated multiple times unnecessarily, which lead to considerable overhead when operating against large sets of packages.
|
||||
- yum - yum tasks can no longer end up running non-yum modules
|
||||
- yum/dnf - check type of elements in a name
|
||||
|
||||
New Plugins
|
||||
-----------
|
||||
|
||||
Lookup
|
||||
~~~~~~
|
||||
|
||||
- unvault - read vaulted file(s) contents
|
||||
@ -1,705 +0,0 @@
|
||||
========================================================
|
||||
ansible-core 2.11 "Hey Hey, What Can I Do" Release Notes
|
||||
========================================================
|
||||
|
||||
.. contents:: Topics
|
||||
|
||||
|
||||
v2.11.2
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2021-06-22
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Security Fixes
|
||||
--------------
|
||||
|
||||
- templating engine fix for not preserving usnafe status when trying to preserve newlines. CVE-2021-3583
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- AnsibleModule.set_mode_if_different - don't check file existence when check_mode is activated (https://github.com/ansible/ansible/issues/61185).
|
||||
- Apply ``display_failed_stderr`` callback option on loop item results. (https://github.com/ansible/ansible/issues/74864)
|
||||
- Avoid task executor from ending early as vars can come from delegated to host.
|
||||
- ansible-pull - update documentation for ``--directory`` option to clarify path must be absolute.
|
||||
- config, ensure 'quoted' lists from ini or env do not take the quotes literally as part of the list item.
|
||||
- gather_facts, package, service - fix using module_defaults for the modules in addition to the action plugins. (https://github.com/ansible/ansible/issues/72918)
|
||||
- psrp - Always cleanup the last run pipeline if a second pipeline is invoked to avoid violating any resource limits.
|
||||
- psrp - Fix error when resetting a connection that was initialised but not connected - (https://github.com/ansible/ansible/issues/74092).
|
||||
- psrp - Try to clean up any server-side resources when resetting a connection.
|
||||
- roles - make sure argspec validation task is tagged with ``always`` (https://github.com/ansible/ansible/pull/74994).
|
||||
- slurp - Fix error messages for unreadable files and directories (https://github.com/ansible/ansible/issues/67340).
|
||||
- slurp - handle error when ``path`` is a directory and not a file (https://github.com/ansible/ansible/pull/74930).
|
||||
- ssh connection - fix interaction between transfer settings options.
|
||||
- subversion - fix stack trace when getting information about the repository (https://github.com/ansible/ansible/issues/36498)
|
||||
- version test - improve error message when an empty version is provided
|
||||
|
||||
v2.11.1
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2021-05-24
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- ansible adhoc, clarified the help to some options, also added some comments to code.
|
||||
- command - update the user warning message to point out command name (https://github.com/ansible/ansible/pull/74475).
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Add RockyLinux to fact gathering (https://github.com/ansible/ansible/pull/74530).
|
||||
- Improve resilience of ``ansible-galaxy collection`` by increasing the page size to make fewer requests overall and retrying queries with a jittered exponential backoff when rate limiting HTTP codes (520 and 429) occur. (https://github.com/ansible/ansible/issues/74191)
|
||||
- Prevent ``ansible_failed_task`` from further templating (https://github.com/ansible/ansible/issues/74036)
|
||||
- Remove 'default' from ssh plugin as we want to rely on default from ssh itself or ssh/config.
|
||||
- The error message about the failure to import a ``gpg`` key by the ``apt_key`` module was incorrect (https://github.com/ansible/ansible/issues/74423).
|
||||
- ansible-test - Avoid publishing the port used by the ``pypi-test-container`` since it is only accessed by other containers. This avoids issues when trying to run tests in parallel on a single host.
|
||||
- ansible-test - Fix docker container IP address detection. The ``bridge`` network is no longer assumed to be the default.
|
||||
- ansible-test - Use documented API to retrieve build information from Azure Pipelines.
|
||||
- ansible.builtin.cron - Keep non-empty crontabs, when removing cron jobs (https://github.com/ansible/ansible/pull/74497).
|
||||
- ansible.utils.encrypt now handles missing or unusable 'crypt' library.
|
||||
- ansible_test - add constraint for ``MarkupSafe`` (https://github.com/ansible/ansible/pull/74666)
|
||||
- apt_key - Binary GnuPG keys downloaded via URLs were corrupted so GnuPG could not import them (https://github.com/ansible/ansible/issues/74424).
|
||||
- become - fix a regression on Solaris where chmod can return 5 which we interpret as auth failure and stop trying become tmpdir permission fallbacks
|
||||
- become - work around setfacl not existing on modern Solaris (and possibly failing on some filesystems even when it does exist)
|
||||
- callback default, now uses task delegate_to instead of delegate vars to display delegate to host
|
||||
- callbacks, restores missing delegate_vars
|
||||
- correct doc links for become on warnings over world readable settings.
|
||||
- correctly use world readable setting since old constant is not 'settable' anymore.
|
||||
- facts - detect homebrew installed at /opt/homebrew/bin/brew
|
||||
- filter plugins - patch new versions of Jinja2 to prevent warnings/errors on renamed filter decorators (https://github.com/ansible/ansible/issues/74667)
|
||||
- get_url - Fixed checksum validation for binary files (leading asterisk) in checksum files (https://github.com/ansible/ansible/pull/74502).
|
||||
- hostname - Add Rocky Linux support
|
||||
- ini lookup - handle errors for duplicate keys and missing sections (https://github.com/ansible/ansible/issues/74601)
|
||||
- interpreter discovery - Debian 8 and lower will avoid unsupported Python3 version in interpreter discovery
|
||||
- pause - ensure control characters are always set to an appropriate value (https://github.com/ansible/ansible/issues/73264)
|
||||
- playbook loaded from collection subdir now does not ignore subdirs.
|
||||
- plugin config now allows list type options to have multiple valid choices (#74225).
|
||||
- replace - better handling of file operation exceptions (https://github.com/ansible/ansible/pull/74686).
|
||||
- roles - allow for role arg specs in new meta file (https://github.com/ansible/ansible/issues/74525).
|
||||
- service - compare version without LooseVersion API (https://github.com/ansible/ansible/issues/74488).
|
||||
|
||||
v2.11.0
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2021-04-26
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Major Changes
|
||||
-------------
|
||||
|
||||
- A collection can be reinstalled with new version requirements without using the ``--force`` flag. The collection's dependencies will also be updated if necessary with the new requirements. Use ``--upgrade`` to force transitive dependency updates.
|
||||
- AnsibleModule - use ``ArgumentSpecValidator`` class for validating argument spec and remove private methods related to argument spec validation. Any modules using private methods should now use the ``ArgumentSpecValidator`` class or the appropriate validation function.
|
||||
- Declared ``resolvelib >= 0.5.3, < 0.6.0`` a direct dependency of
|
||||
ansible-core. Refs:
|
||||
- https://github.com/sarugaku/resolvelib
|
||||
- https://pypi.org/p/resolvelib
|
||||
- https://pradyunsg.me/blog/2020/03/27/pip-resolver-testing
|
||||
- It became possible to install Ansible Collections from local folders and namespaces folder similar to SCM structure with multiple collections.
|
||||
- It became possible to upgrade Ansible collections from Galaxy servers using the ``--upgrade`` option with ``ansible-galaxy collection install``.
|
||||
- Support for role argument specification validation at role execution time. When a role contains an argument spec, an implicit validation task is inserted at the start of role execution.
|
||||
- add ``ArgumentSpecValidator`` class for validating parameters against an argument spec outside of ``AnsibleModule`` (https://github.com/ansible/ansible/pull/73335)
|
||||
- ansible-test - Tests run with the ``centos6`` and ``default`` test containers now use a PyPI proxy container to access PyPI when Python 2.6 is used. This allows tests running under Python 2.6 to continue functioning even though PyPI is discontinuing support for non-SNI capable clients.
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- Add ``--format`` CLI option to ``ansible-galaxy collection list`` which allows for ``human`` (default), ``yaml``, or ``json``. (https://github.com/ansible/ansible/pull/73474)
|
||||
- Add an example for using var in with_sequence (https://github.com/ansible/ansible/issues/68836).
|
||||
- Add new rolespec_validate option to the import/include_role modules do allow disabling of the implicit role arg validation task on a per-role basis.
|
||||
- Add option to pass extra vars to ansible-inventory
|
||||
- Add path of collection location in Ansible CLI version info.
|
||||
- Add standard Python 2/3 compatibility boilerplate to setup script, module_utils and docs_fragments which were missing them.
|
||||
- Add support for `argument_specs` data in role metadata.
|
||||
- Add support for datetime.date object type in module result (https://github.com/ansible/ansible/issues/70583).
|
||||
- Add which conditional is being evaluated at each step when debugging.
|
||||
- Add yum/dnf version comparison documentation for package install
|
||||
- Added NO_COLOR environment var to ansible color configuration, allowing it to integrate with existing convention.
|
||||
- Added name of aliases in user error (https://github.com/ansible/ansible/issues/58752).
|
||||
- Added support for GSSAPI/Kerberos authentication with ``urls.py`` that is used by ``uri`` and ``get_url``.
|
||||
- Added support for specify custom credentials for GSSAPI authentication.
|
||||
- Allow an attribute to be passed to the min and max filters with Jinja 2.10+
|
||||
- Allow for the skipped filter to be used on a registered looped task results. (https://github.com/ansible/ansible/issues/16949)
|
||||
- Allow inventory plugins access to extra vars by default
|
||||
- Allow unsafe_writes to be set on target via env var, for those targets that need a blanket setting.
|
||||
- Also added extra vars cli option to console CLI.
|
||||
- AnsiballZ - Improve performance of ``ModuleDepFinder`` by using faster lookups and reducing the object types that are walked while looking for ``import`` statements. (https://github.com/ansible/ansible/pull/70475)
|
||||
- CLI - Specify jinja version in ``--version`` output
|
||||
- CLI - Specify whether PyYAML includes libyaml support in version output
|
||||
- CLI version displays clarified as core version
|
||||
- Callbacks - Migrate more places in the ``TaskExecutor`` to sending callbacks directly over the queue, instead of sending them as ``TaskResult`` and short circuiting in the Strategy to send the callback. This enables closer to real time callbacks of retries and loop results (https://github.com/ansible/ansible/issues/73899)
|
||||
- Collection routing: Cisco NSO content from community.network migrated to cisco.nso (https://github.com/ansible/ansible/pull/73046).
|
||||
- Collection routing: DellEMC content from community.general migrated to dellemc.openmanage (https://github.com/ansible/ansible/pull/73046).
|
||||
- Collection routing: FortiOS content from community.network migrated to community.fortios (https://github.com/ansible/ansible/pull/73046).
|
||||
- Collection routing: Google content from community.general migrated to community.google (https://github.com/ansible/ansible/pull/73046).
|
||||
- Collection routing: Hashi Vault content from community.general migrated to community.hashi_vault (https://github.com/ansible/ansible/pull/73046).
|
||||
- Collection routing: Hetzner Robot content from community.general migrated to community.hrobot (https://github.com/ansible/ansible/pull/73046).
|
||||
- Collection routing: KubeVirt content from community.general migrated to community.kubevirt (https://github.com/ansible/ansible/pull/73046).
|
||||
- Collection routing: OC content from community.general migrated to community.okd (https://github.com/ansible/ansible/pull/73046).
|
||||
- Collection routing: PostgreSQL content from community.general migrated to community.postgresql (https://github.com/ansible/ansible/pull/73046).
|
||||
- Collection routing: RouterOS content from community.network migrated to community.routeros (https://github.com/ansible/ansible/pull/73046).
|
||||
- Collection routing: docker content from community.general migrated to community.docker (https://github.com/ansible/ansible/pull/73046).
|
||||
- Controller - Add warning for Ansible 2.11 when running a Python version older than Python 3.8 to inform users that 2.12 will only support Python 3.8 and newer on the controller. Starting with Ansible 2.11, the project will only be packaged for Python 3.8 and newer.
|
||||
- Discourage the use of 'hexdigits' in password lookup, as it distorts expected entropy.
|
||||
- Enable extra vars for inventory plugin options
|
||||
- Errors - Ensure that errors passed with ``orig_exc`` include the context of that exception (https://github.com/ansible/ansible/issues/68605)
|
||||
- Filters - Add new ``split`` filter for splitting strings
|
||||
- Fixed ansible-doc to not substitute for words followed by parenthesis. For instance, ``IBM(International Business Machines)`` will no longer be substituted with a link to a non-existent module. https://github.com/ansible/ansible/pull/71070
|
||||
- Force the template module to use non-native Jinja2 (https://github.com/ansible/ansible/issues/46169)
|
||||
- Internal config entries will not be documented, to mark an entry as internal it must start with `_`.
|
||||
- Interpreter Discovery - Add Python 3.8 and Python 3.9 to the fallback list
|
||||
- Minor code cleanup in plugin loader.
|
||||
- Module API - libselinux-python is no longer required for basic module API selinux operations (affects core modules assemble, blockinfile, copy, cron, file, get_url, lineinfile, setup, replace, unarchive, uri, user, yum_repository)
|
||||
- Module API - new module_respawn API allows modules that need to run under a specific Python interpreter to respawn in place under that interpreter
|
||||
- Module iptables multiport destination support added (https://github.com/ansible/ansible/pull/72928)
|
||||
- Module iptables set/ipset support added (https://github.com/ansible/ansible/pull/72984)
|
||||
- New 'timeout' feature added to adhoc and console CLIs, corresponding to the recent 'timeout' task keyword.
|
||||
- New virtualization facts, ``virtualization_tech_guest`` and ``virtualization_tech_host`` now allow for conveying when a system is a host or guest of multiple virtualization technologies.
|
||||
- Now 'choices' keyword in config definitions also restricts valid values for the entry.
|
||||
- Refactored ``ansible-galaxy collection [download|install|list|verify]`` CLI subcommands with the public interface kept intact.
|
||||
- Restructured _fixup_perms2() in ansible.plugins.action to make it more linear
|
||||
- Shadow prompt input to ansible-vault encrypt-string unless the ``--show-input`` flag is set
|
||||
- Switch to hashlib.sha256() for ansible-test to allow for FIPs mode.
|
||||
- TOML inventory plugin is no longer in preview status
|
||||
- Templar - reduce the complexity of ``Templar._lookup`` (https://github.com/ansible/ansible/pull/73277)
|
||||
- The ``csvfile`` lookup plugin now uses ``parse_kv()`` internally. As a result, multi-word search keys can now be passed.
|
||||
- The ``csvfile`` lookup plugin's documentation has been fixed; it erroneously said that the delimiter could be ``t`` which was never true. We now accept ``\t``, however, and the error in the documentation has been fixed to note that.
|
||||
- The constructed inventory plugin has new option to force using vars plugins on previouslly processed inventory sources.
|
||||
- The find module is now more specific about the reasons it skips candidate files.
|
||||
- The logging functionality in module_utils.basic now returns a nicer error when it falls back to syslog but ends up getting a TypeError thrown back.
|
||||
- The new dependency resolver prefers ``MANIFEST.json`` over ``galaxy.yml`` if it exists in the target directory.
|
||||
- The plugin loader now keeps track of the collection where a plugin was resolved to, in particular whether the plugin was loaded from ansible-core's internal paths (``ansible.builtin``) or from user-supplied paths (no collection name).
|
||||
- Toggle allowing usage of extra_vars in compose
|
||||
- When connecting as an unprivileged user, and becoming an unprivileged user, we now fall back to also trying ``chmod +a`` which works on macOS and makes use of ACLs.
|
||||
- allow tree callback plugin to be configurable, for use with playbooks.
|
||||
- ansible-doc - In Windows setup steps, ``ExecutionPolicy`` should be restored to default value ``RemoteSigned`` (https://github.com/ansible/ansible/pull/72993).
|
||||
- ansible-doc - provide ``has_action`` field in JSON output for modules. That information is currently only available in the text view (https://github.com/ansible/ansible/pull/72359).
|
||||
- ansible-doc has new option to show keyword documentation.
|
||||
- ansible-doc will now format, ``L()``, ``R()``, and ``HORIZONTALLINE`` in plugin docs just as the website docs do. https://github.com/ansible/ansible/pull/71070
|
||||
- ansible-galaxy - Add installation successful message
|
||||
- ansible-galaxy - Added caching mechanisms when retrieving collection info to speed up installs and downloads
|
||||
- ansible-galaxy - Change the output verbosity level of the download message from 3 to 0 (https://github.com/ansible/ansible/issues/70010)
|
||||
- ansible-galaxy - Ensure ``get_collection_versions`` returns an empty list when a collection does not exist for consistency across API versions.
|
||||
- ansible-galaxy - find any collection dependencies in the globally configured Galaxy servers and not just the server the parent collection is from.
|
||||
- ansible-galaxy CLI - ``collection verify`` command now exits with a non-zero exit code on verification failure
|
||||
- ansible-galaxy CLI - ``collection verify`` command now supports a ``--offline`` option for local-only verification
|
||||
- ansible-test - A warning is no longer emitted when a ``pip*`` or ``python*`` binary is found without a matching couterpart.
|
||||
- ansible-test - Add ``macos/10.15`` as a supported value for the ``--remote`` option.
|
||||
- ansible-test - Add a ``--docker-network`` option to choose the network for running containers when using the ``--docker`` option.
|
||||
- ansible-test - Add constraint for ``decorator`` for Python versions prior to 3.5.
|
||||
- ansible-test - Add support for running tests on Fedora 33 (https://github.com/ansible/ansible/pull/72861).
|
||||
- ansible-test - Added Ubuntu 20.04 LTS image to the default completion list
|
||||
- ansible-test - Added a ``--export`` option to the ``ansible-test coverage combine`` command to facilitate multi-stage aggregation of coverage in CI pipelines.
|
||||
- ansible-test - Added the ``-remote rhel/7.9`` option to run tests on RHEL 7.9
|
||||
- ansible-test - Allow custom ``--remote-stage`` options for development and testing.
|
||||
- ansible-test - CentOS 8 container is now 8.2.2004 (https://github.com/ansible/distro-test-containers/pull/45).
|
||||
- ansible-test - Changed the internal name of the custom plugin used to identify use of unwanted imports and functions.
|
||||
- ansible-test - Cleaned up code to resolve warnings and errors reported by PyCharm.
|
||||
- ansible-test - Code cleanup in the ``import`` sanity test.
|
||||
- ansible-test - Code cleanup in the internal logic for code coverage collection of PowerShell modules.
|
||||
- ansible-test - Collections can now specify pip constraints for unit and integration test requirements using ``tests/unit/constraints.txt`` and ``tests/integration/constraints.txt`` respectively.
|
||||
- ansible-test - Containers used with the ``--remote`` option have been updated to version 1.29.0 to include the latest Ansible requirements.
|
||||
- ansible-test - Files used to track remote instances no longer have a region suffix.
|
||||
- ansible-test - Fix ``ansible-test coverage`` reporting sub-commands (``report``, ``html``, ``xml``) on Python 2.6.
|
||||
- ansible-test - Fix container hostname/IP discovery for the ``acme`` test plugin.
|
||||
- ansible-test - FreeBSD 11.4 and 12.2 provisioning can now be used with the ``--python 3.8`` option.
|
||||
- ansible-test - FreeBSD instances provisioned with ``--remote`` now make ``libyaml`` available for use with PyYAML installation.
|
||||
- ansible-test - Generation of an ``egg-info`` directory, if needed, is now done after installing test dependencies and before running tests. When running from an installed version of ``ansible-test`` a temporary directory is used to avoid permissions issues. Previously it was done before installing test dependencies and adjacent to the installed directory.
|
||||
- ansible-test - Implemented CloudStack test container selection by ENV variable `ANSIBLE_CLOUDSTACK_CONTAINER` with a default to `quay.io/ansible/cloudstack-test-container:1.4.0`.
|
||||
- ansible-test - Improved handling of minimum Python version requirements for sanity tests. Supported versions are now included in warning messages displayed when tests are skipped.
|
||||
- ansible-test - More sanity test requirements have been pinned to specific versions to provide consistent test results.
|
||||
- ansible-test - Most sanity test specific ``pip`` constraints are now used only when running sanity tests. This should reduce conflicts with ``pip`` requirements and constraints when testing collections.
|
||||
- ansible-test - Most sanity tests are now skipped on Python 3.5 and earlier with a warning. Previously this was done for Python 2.7 and earlier.
|
||||
- ansible-test - Now supports freebsd/11.4 remote (https://github.com/ansible/ansible/issues/48782).
|
||||
- ansible-test - Now supports freebsd/12.2 remote (https://github.com/ansible/ansible/issues/72366).
|
||||
- ansible-test - OpenSuse container now uses Leap 15.2 (https://github.com/ansible/distro-test-containers/pull/48).
|
||||
- ansible-test - Pin the ``virtualenv`` version used for ``--remote`` pip installs to the latest version supported by Python 2.x, which is version 16.7.10.
|
||||
- ansible-test - Provisioning of RHEL instances now includes installation of pinned versions of ``packaging`` and ``pyparsing`` to match the downstream vendored versions.
|
||||
- ansible-test - RHEL 8.2+ provisioning can now be used with the ``--python 3.8`` option, taking advantage of the Python 3.8 AppStream.
|
||||
- ansible-test - Raise the number of bytes scanned by ansible-test to determine if a file is binary to 4096.
|
||||
- ansible-test - Refactor code for installing ``cryptography`` to allow re-use in the future.
|
||||
- ansible-test - Refactor code to remove unused logic for obsolete support of multiple provisioning endpoints.
|
||||
- ansible-test - Remove ``pytest < 6.0.0`` constraint for managed installations on Python 3.x now that pytest 6 is supported.
|
||||
- ansible-test - Remove em dash from the Pytest configuration file in order to be readable on systems where preferred encoding is ASCII. (https://github.com/ansible/ansible/issues/71739)
|
||||
- ansible-test - Remove outdated ``--docker`` completion entries: fedora30, fedora31, ubuntu1604
|
||||
- ansible-test - Remove outdated ``--remote`` completion entries: freebsd/11.1, freebsd/12.1, osx/10.11, macos/10.15, rhel/7.6, rhel/7.8, rhel/8.1, rhel/8.2
|
||||
- ansible-test - Remove outdated ``--windows`` completion entries: 2008, 2008-R2
|
||||
- ansible-test - Remove the discontinued ``us-east-2`` choice from the ``--remote-aws-region`` option.
|
||||
- ansible-test - Remove unused ``--remote`` completion entry: power/centos/7
|
||||
- ansible-test - Removed ``pip`` constraints related to integration tests that have been moved to collections. This should reduce conflicts with ``pip`` requirements and constraints when testing collections.
|
||||
- ansible-test - Removed the obsolete ``--remote-aws-region`` provisioning option.
|
||||
- ansible-test - Removed the obsolete ``tower`` test plugin for testing Tower modules.
|
||||
- ansible-test - Removed unused provisioning code and cleaned up remote provider management logic.
|
||||
- ansible-test - Rename internal functions to match associated constant names that were previously updated.
|
||||
- ansible-test - Reorganize internal ``pylint`` configuration files for easier comparison and maintenance.
|
||||
- ansible-test - Report the correct line number in the ``yamllint`` sanity test when reporting ``libyaml`` parse errors in module documentation.
|
||||
- ansible-test - Request remote resources by provider name for all provider types.
|
||||
- ansible-test - Show a warning when the obsolete ``--remote-aws-region`` option is used.
|
||||
- ansible-test - Silence ``pip`` warnings about Python 3.5 being EOL when installing requirements.
|
||||
- ansible-test - Support custom remote endpoints with the ``--remote-endpoint`` option.
|
||||
- ansible-test - The ``--remote`` option no longer pre-installs the ``virtualenv`` module on Python 3.x instances. The Python built-in ``venv`` module should be used instead.
|
||||
- ansible-test - The ``default`` container for both collections and core have been updated to versions 2.11.0 and 1.9.0 respectively.
|
||||
- ansible-test - The ``pylint`` sanity test is now skipped with a warning on Python 3.9 due to unresolved upstream regressions.
|
||||
- ansible-test - The ``pylint`` sanity test is now supported on Python 3.8.
|
||||
- ansible-test - The ``rstcheck`` sanity test is no longer used for collections, but continues to be used for ansible-core.
|
||||
- ansible-test - The generated ``resource_prefix`` variable now meets the host name syntax requirements specified in RFC 1123 and RFC 952. The value used for local tests now places the random number before the hostname component, rather than after. If the resulting value is too long, it will be truncated.
|
||||
- ansible-test - Ubuntu containers as well as ``default-test-container`` and ``ansible-base-test-container`` are now slightly smaller due to apt cleanup (https://github.com/ansible/distro-test-containers/pull/46).
|
||||
- ansible-test - Update ``pylint`` and its dependencies to the latest available versions to support Python 3.9.
|
||||
- ansible-test - Update built-in service endpoints for the ``--remote`` option.
|
||||
- ansible-test - Update distribution test containers from version 2.0.1 to 2.0.2.
|
||||
- ansible-test - Update the Ansible Core and Ansible Collection default test containers to 3.2.0 and 3.2.2 respectively.
|
||||
- ansible-test - Updated the default test containers to version 3.1.0.
|
||||
- ansible-test - Upgrade ansible-runner version used in compatibility tests, remove some tasks that were only needed with older versions, and skip in python2 because ansible-runner is soon dropping it.
|
||||
- ansible-test - Use new endpoint for Parallels based instances with the ``--remote`` option.
|
||||
- ansible-test - ``default-test-container`` and ``ansible-base-test-container`` now use Python 3.9.0 instead of 3.9.0rc1.
|
||||
- ansible-test - add https endpoint for ansible-test
|
||||
- ansible-test - add macOS 11.1 as a remote target (https://github.com/ansible/ansible/pull/72622)
|
||||
- ansible-test - add the collection plugin directories ``plugin_utils`` and ``sub_plugins`` to list of plugin types. This ensures such plugins are tested for the ``import`` sanity test (https://github.com/ansible/ansible/pull/73599).
|
||||
- ansible-test - centos6 end of life - container image updated to point to vault base repository (https://github.com/ansible/distro-test-containers/pull/54)
|
||||
- ansible-test - centos6 image now has multiple fallback yum repositories for CentOS Vault.
|
||||
- ansible-test - default container now uses default-test-container 2.7.0 and ansible-base-test-container 1.6.0. This brings in Python 3.9.0rc1 for testing.
|
||||
- ansible-test - now makes a better attempt to support podman when calling ``docker images`` and asking for JSON format.
|
||||
- ansible-test - python-cryptography is now bounded at <3.2, as 3.2 drops support for OpenSSL 1.0.2 upon which some of our CI infrastructure still depends.
|
||||
- ansible-test - remote macOS instances no longer install ``virtualenv`` during provisioning
|
||||
- ansible-test - the ACME test container was updated, it now supports external account creation and has a basic OCSP responder (https://github.com/ansible/ansible/pull/71097, https://github.com/ansible/acme-test-container/releases/tag/2.0.0).
|
||||
- ansible-test - the ``import`` sanity test now also tries to import all non-module and non-module_utils Python files in ``lib/ansible/`` resp. ``plugins/`` (https://github.com/ansible/ansible/pull/72497).
|
||||
- ansible-test - virtualenv helper scripts now prefer ``venv`` on Python 3 over ``virtualenv``
|
||||
- ansible-test Now supports RHEL 8.3
|
||||
- ansible-test pylint - ensure that removal collection version numbers conform to the semantic versioning specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679).
|
||||
- ansible-test pylint sanity test - stop ignoring ``used-before-assignment`` errors (https://github.com/ansible/ansible/pull/73639).
|
||||
- ansible-test runtime-metadata - compare deprecation and tombstone versions to the current version to ensure that they are correct (https://github.com/ansible/ansible/pull/72625).
|
||||
- ansible-test runtime-metadata - ensure that removal collection version numbers conform to the semantic versioning specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679).
|
||||
- ansible-test runtime-metadata - ensure that the tombstone removal date is not in the future (https://github.com/ansible/ansible/pull/72625).
|
||||
- ansible-test runtime-metadata - validate removal version numbers, and check removal dates more strictly (https://github.com/ansible/ansible/pull/71679).
|
||||
- ansible-test validate-modules - ensure that removal collection version numbers and version_added collection version numbers conform to the semantic versioning specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679).
|
||||
- ansible-test validate-modules - no longer assume that ``default`` for ``type=bool`` options is ``false``, as the default is ``none`` and for some modules, ``none`` and ``false`` mean different things (https://github.com/ansible/ansible/issues/69561).
|
||||
- ansible-test validate-modules - option names that seem to indicate they contain secret information that should be marked ``no_log=True`` are now flagged in the validate-modules sanity test. False positives can be marked by explicitly setting ``no_log=False`` for these options in the argument spec. Please note that many false positives are expected; the assumption is that it is by far better to have false positives than false negatives (https://github.com/ansible/ansible/pull/73508).
|
||||
- ansible-test validate-modules - validate removal version numbers (https://github.com/ansible/ansible/pull/71679).
|
||||
- ansible.utils.encrypt now returns `AnsibleError` instead of crypt.crypt's `OSError` on Python 3.9
|
||||
- apt - module now works under any supported Python interpreter
|
||||
- apt_repository - module now works under any supported Python interpreter
|
||||
- callback plugins - ``meta`` tasks now get sent to ``v2_playbook_on_task_start``. Explicit tasks are always sent. Plugins can opt in to receiving implicit ones.
|
||||
- callbacks - Add feature allowing forks to send callback events (https://github.com/ansible/ansible/issues/14681)
|
||||
- conditionals - change the default of CONDITIONAL_BARE_VARS to False (https://github.com/ansible/ansible/issues/70682).
|
||||
- config - more types are now automatically coerced to string when ``type: str`` is used and the value is parsed as a different type
|
||||
- constructed - Add a toggle to allow the separator to be omitted if no prefix has been provided.
|
||||
- constructed inventory plugin - Sanitize group names created from the ``groups`` option silently.
|
||||
- create ``get_type_validator`` standalone function and move that functionality out of ``AnsibleModule`` (https://github.com/ansible/ansible/pull/72667)
|
||||
- create ``get_unsupported_parameters`` validation function (https://github.com/ansible/ansible/pull/72447/files)
|
||||
- debconf - add a note about no_log=True since module might expose sensitive information to logs (https://github.com/ansible/ansible/issues/32386).
|
||||
- default callback - add ``show_task_path_on_failure`` option to display file and line number of tasks only on failed tasks when running at normal verbosity level (https://github.com/ansible/ansible/issues/64625)
|
||||
- default callback - task name is now shown for ``include_tasks`` when using the ``free`` strategy (https://github.com/ansible/ansible/issues/71277).
|
||||
- default callback - task name is now shown for ``include_tasks`` when using the ``linear`` strategy with ``ANSIBLE_DISPLAY_SKIPPED_HOSTS=0``.
|
||||
- default_callback - moving 'check_mode_markers' documentation in default_callback doc_fragment (https://github.com/ansible-collections/community.general/issues/565).
|
||||
- distribution - add facts about Amazon Linux Distribution facts (https://github.com/ansible/ansible/issues/73742).
|
||||
- distribution - add support for DragonFly distribution (https://github.com/ansible/ansible/issues/43739).
|
||||
- distribution - added distribution fact and hostname support for Parrot OS (https://github.com/ansible/ansible/pull/69158).
|
||||
- distribution - handle NetBSD OS Family (https://github.com/ansible/ansible/issues/43739).
|
||||
- distribution facts - ``distribution_release`` is now ``"Stream"`` on CentOS Stream (https://github.com/ansible/ansible/issues/73027).
|
||||
- dnf - Add nobest option (https://github.com/ansible/ansible/issues/69983)
|
||||
- dnf - When ``state: absent``, package names are now matched similarly to how the ``dnf`` CLI matches them (https://github.com/ansible/ansible/issues/72809).
|
||||
- dnf - module now works under any supported Python interpreter
|
||||
- dnf - now shows specific package changes (installations/removals) under ``results`` in check_mode. (https://github.com/ansible/ansible/issues/66132)
|
||||
- facts - ``/dev/kvm`` is now consulted in Linux virtualization facts, and the host is considered a KVM host if this file exists and none of the pre-existing checks matched.
|
||||
- facts - add new fact ``date_time['tz_dst']``, which returns the daylight saving timezone (https://github.com/ansible/ansible/issues/69004).
|
||||
- facts - add uptime to openbsd
|
||||
- find module - Now has a ``read_whole_file`` boolean parameter which allows for reading the whole file and doing an ``re.search()`` regex evaluation on it when searching using the ``contains`` option. This allows (for example) for ensuring the very end of the file matches a pattern.
|
||||
- galaxy - add documentation about galaxy parameters in examples/ansible.cfg (https://github.com/ansible/ansible/issues/68402).
|
||||
- galaxy - handle token as dict while loading from yaml file (https://github.com/ansible/ansible/issues/70887).
|
||||
- get_url - allow checksum urls to point to file:// resources, moving scheme test to function
|
||||
- get_url - handle same SHA sum for checksum file (https://github.com/ansible/ansible/issues/71420).
|
||||
- git - add ``single_branch`` parameter (https://github.com/ansible/ansible/pull/28465)
|
||||
- hash filter - fail when unsupported hash type is passed as an argument (https://github.com/ansible/ansible/issues/70258)
|
||||
- inventory cache - do not show a warning when the cache file does not (yet) exist.
|
||||
- iptables - add a note about ipv6-icmp in protocol parameter (https://github.com/ansible/ansible/issues/70905).
|
||||
- iptables - fixed get_chain_policy API (https://github.com/ansible/ansible/issues/68612).
|
||||
- iptables - reorder comment postition to be at the end (https://github.com/ansible/ansible/issues/71444).
|
||||
- lineinfile - add search_string parameter for non-regexp searching (https://github.com/ansible/ansible/issues/70470)
|
||||
- linux facts - Add additional check to ensure 'container' virtual fact gets added to guest_tech when appropriate (https://github.com/ansible/ansible/pull/71385)
|
||||
- meta - now include a ``skip_reason`` when skipped (https://github.com/ansible/ansible/pull/71355).
|
||||
- module payload builder - module_utils imports in any nested block (eg, ``try``, ``if``) are treated as optional during module payload builds; this allows modules to implement runtime fallback behavior for module_utils that do not exist in older versions of Ansible.
|
||||
- module_utils - ``get_file_attributes()`` now takes an optional ``include_version`` boolean parameter. When ``True`` (default), the file's version/generation number is included in the result (but requires ``lsattr -v`` to work on the target platform).
|
||||
- now !unsafe works on all types of data, not just strings, even recursively for mappings and sequences.
|
||||
- package_facts - module support for apt and rpm now works under any supported Python interpreter
|
||||
- pipe lookup - update docs for Popen with shell=True usages (https://github.com/ansible/ansible/issues/70159).
|
||||
- plugin examples - Allow non-YAML examples, so that examples for plugins like the INI and TOML inventory plugins can be directly represented (https://github.com/ansible/ansible/pull/71184)
|
||||
- plugin option validation - now the option type ``dict``/``dictionary`` is also validated by the config manager (https://github.com/ansible/ansible/pull/71928).
|
||||
- reboot - add ``reboot_command`` parameter to allow specifying the command used to reboot the system (https://github.com/ansible/ansible/issues/51359)
|
||||
- remove ``excommunicate`` debug command from AnsiballZ
|
||||
- selinux - return selinux_getpolicytype facts correctly.
|
||||
- service_facts - return service state information on AIX.
|
||||
- service_facts - return service state information on OpenBSD.
|
||||
- setup - allow list of filters (https://github.com/ansible/ansible/pull/68551).
|
||||
- setup - fix distribution facts for Older Amazon Linux with ``/etc/os-release`` (https://github.com/ansible/ansible/issues/73946).
|
||||
- setup.py - Declare that Python 3.9 is now supported (https://github.com/ansible/ansible/pull/72861).
|
||||
- setup.py - Skip doing conflict checks for ``sdist`` and ``egg_info`` commands (https://github.com/ansible/ansible/pull/71310)
|
||||
- subelements - clarify the lookup plugin documentation for parameter handling (https://github.com/ansible/ansible/issues/38182).
|
||||
- subversion - ``validate_certs`` option, which, when true, will avoid passing ``--trust-server-cert`` to ``svn`` commands (https://github.com/ansible/ansible/issues/22599).
|
||||
- unarchive - Add support for .tar.zst (zstd compression) (https://github.com/ansible/ansible/pull/73265).
|
||||
- unarchive - add ``RETURN`` documentation (https://github.com/ansible/ansible/issues/67445).
|
||||
- unarchive - add ``include`` parameter to allow extracting specific files from an archive (https://github.com/ansible/ansible/pull/40522)
|
||||
- update sphinx to 2.1.2 and rstcheck to 3.3.1 for building documentation.
|
||||
- uri - add ``ca_path`` argument to allow specification of a CA certificate (https://github.com/ansible/ansible/pull/71979).
|
||||
- user - add new parameters ``password_expire_max`` and ``password_expire_min`` for controlling password expiration (https://github.com/ansible/ansible/issues/68775)
|
||||
- varnames lookup plugin - Fixed grammar error in exception message when the plugin is given a non-string term.
|
||||
- vault - Provide better error for single value encrypted values to indicate the file, line, and column of the errant vault (https://github.com/ansible/ansible/issues/72276)
|
||||
- version test - Add semantic version functionality
|
||||
- virtual facts - containerd cgroup is now recognized as container tech (https://github.com/ansible/ansible/issues/66304).
|
||||
- virtualization facts - Detect ``vdsmd`` in addition to ``vdsm`` when trying to detect RHEV hosts. (https://github.com/ansible/ansible/issues/66147)
|
||||
- winrm - Added ``ansible_winrm_kinit_args`` that can be used to control the args that are sent to the ``kinit`` call for Kerberos authentication.
|
||||
- yum - module now works under any supported Python interpreter
|
||||
- yum_repository - added boolean option module_hotfixes which allows to enable functionality for dnf.
|
||||
|
||||
Breaking Changes / Porting Guide
|
||||
--------------------------------
|
||||
|
||||
- Made SCM collections be reinstalled regardless of ``--force`` being present.
|
||||
- NetBSD virtualization facts (specifically ``ansible_virtualization_type``) now returns a more accurate value by checking the value of the ``machdep.hypervisor`` ``sysctl`` key. This change is breaking because in some cases previously, we would erroneously report ``xen`` even when the target is not running on Xen. This prevents that behavior in most cases. (https://github.com/ansible/ansible/issues/69352)
|
||||
- Replaced the in-tree dependency resolver with an external implementation that pip >= 20.3 uses now by default — ``resolvelib``. (https://github.com/ansible/ansible/issues/71784)
|
||||
- The ``meta`` module now supports tags for user-defined tasks. Internal ``meta`` tasks continue to always run. (https://github.com/ansible/ansible/issues/64558)
|
||||
- ansible-galaxy login command has been removed (see https://github.com/ansible/ansible/issues/71560)
|
||||
|
||||
Deprecated Features
|
||||
-------------------
|
||||
|
||||
- Starting in 2.14, shell and command modules will no longer have the option to warn and suggest modules in lieu of commands. The ``warn`` parameter to these modules is now deprecated and defaults to ``False``. Similarly, the ``COMMAND_WARNINGS`` configuration option is also deprecated and defaults to ``False``. These will be removed and their presence will become an error in 2.14.
|
||||
- apt_key - the paramater ``key`` does not have any effect, has been deprecated and will be removed in ansible-core version 2.14 (https://github.com/ansible/ansible/pull/70319).
|
||||
- psrp - Set the minimum version of ``pypsrp`` to ``0.4.0``.
|
||||
|
||||
Removed Features (previously deprecated)
|
||||
----------------------------------------
|
||||
|
||||
- Removed `SharedPluginLoaderObj` class from ansible.plugins.strategy. It was deprecated in favor of using the standard plugin loader.
|
||||
- Removed `_get_item()` alias from callback plugin base class which had been deprecated in favor of `_get_item_label()`.
|
||||
- The "user" parameter was previously deprecated and is now removed in favor of "scope"
|
||||
- The deprecated ``ansible.constants.BECOME_METHODS`` has been removed.
|
||||
- The deprecated ``ansible.constants.get_config()`` has been removed.
|
||||
- The deprecated ``ansible.constants.mk_boolean()`` has been removed.
|
||||
- `with_*` loops are no longer optimized for modules whose `name` parameters can take lists (mostly package managers). Use `name` instead of looping over individual names with `with_items` and friends.
|
||||
|
||||
Security Fixes
|
||||
--------------
|
||||
|
||||
- **security issue** - Mask default and fallback values for ``no_log`` module options (CVE-2021-20228)
|
||||
- **security issue** - copy - Redact the value of the no_log 'content' parameter in the result's invocation.module_args in check mode. Previously when used with check mode and with '-vvv', the module would not censor the content if a change would be made to the destination path. (CVE-2020-14332)
|
||||
- Sanitize no_log values from any response keys that might be returned from the uri module (CVE-2020-14330).
|
||||
- dnf - Previously, regardless of the ``disable_gpg_check`` option, packages were not GPG validated. They are now. (CVE-2020-14365)
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- A handler defined within a role will now search handlers subdir for included tasks (issue https://github.com/ansible/ansible/issues/71222).
|
||||
- ALLOW_WORLD_READABLE_TMP, switched to 'moved' message as 'deprecation' is misleading since config settings still work w/o needing change.
|
||||
- ANSIBLE_COLLECTIONS_PATHS - remove deprecation so that users of Ansible 2.9 and 2.10+ can use the same var when specifying a collection path without a warning.
|
||||
- Added unsafe_writes test.
|
||||
- Address compat with rpmfluff-0.6 for integration tests
|
||||
- Address the deprecation of the use of stdlib distutils in packaging. It's a short-term hotfix for the problem (https://github.com/ansible/ansible/issues/70456, https://github.com/pypa/setuptools/issues/2230, https://github.com/pypa/setuptools/commit/bd110264)
|
||||
- Adjust various hard-coded action names to also include their ``ansible.builtin.`` and ``ansible.legacy.`` prefixed version (https://github.com/ansible/ansible/issues/71817, https://github.com/ansible/ansible/issues/71818, https://github.com/ansible/ansible/pull/71824).
|
||||
- Allow TypeErrors on Undefined variables in filters to be handled or deferred when processing for loops.
|
||||
- Allow `~` to be present in file names in galaxy roles (https://github.com/ansible/ansible/issues/72966)
|
||||
- Always mention the name of the deprecated or tombstoned plugin in routing deprecation/tombstone messages (https://github.com/ansible/ansible/pull/73059).
|
||||
- Ansible output now uses stdout to determine column width instead of stdin
|
||||
- AnsibleModule - added arg ``ignore_invalid_cwd`` to ``AnsibleModule.run_command()``, to control its behaviour when ``cwd`` is invalid. (https://github.com/ansible/ansible/pull/72390)
|
||||
- Apply ``_wrap_native_text`` only for builtin filters specified in STRING_TYPE_FILTERS.
|
||||
- Automatically remove async cache files for polled async tasks that have completed (issue https://github.com/ansible/ansible/issues/73206).
|
||||
- Be smarter about collection paths ending with ansible_collections, emulating a-galaxy behaviour. Issue 72628
|
||||
- CLI - Restore git information in version output when running from source
|
||||
- Collection callbacks were ignoring options and rules for stdout and adhoc cases.
|
||||
- Collections - Ensure ``action_loader.get`` is called with ``collection_list`` to properly find collections when ``collections:`` search is specified (https://github.com/ansible/ansible/issues/72170)
|
||||
- Command module now returns stdout & stderr if executable is missing or an unknown error occurs
|
||||
- ConfigManager - Normalize ConfigParser between Python2 and Python3 to for handling comments (https://github.com/ansible/ansible/issues/73709)
|
||||
- Continue execution when 'flatten' filter when it hits a None/null value as part of the list.
|
||||
- Correct the inventory source error parse handling, specifically make the config INVENTORY_ANY_UNPARSED_IS_FAILED work as expected.
|
||||
- Correctly set template_path and template_fullpath for usage in template lookup and action plugins.
|
||||
- Deal with failures when sorting JSON and you have incompatible key types.
|
||||
- Display - Use wcswidth to calculate printable width of a text string (https://github.com/ansible/ansible/issues/63105)
|
||||
- Enabled unsafe_writes for get_url which was ignoring the paramter.
|
||||
- Ensure Ansible's unique filter preserves order (https://github.com/ansible/ansible/issues/63417)
|
||||
- Ensure if a traceback halts ``strategy.run`` that we still attempt to clean up (https://github.com/ansible/ansible/issues/23958)
|
||||
- Ensure password passed in by -k is used on delegated hosts that do not have ansible_password set
|
||||
- Ensure the correct options are used when ssh executables are used that don't match ssh executable names.
|
||||
- Facts collection - get serial number of NVMe device without sg_inq (https://github.com/ansible/ansible/issues/66663).
|
||||
- Fix --list-tasks format `role_name : task_name` when task name contains the role name. (https://github.com/ansible/ansible/issues/72505)
|
||||
- Fix ``RecursionError`` when templating large vars structures (https://github.com/ansible/ansible/issues/71920)
|
||||
- Fix ``delegate_facts: true`` when ``ansible_python_interpreter`` is not set. (https://github.com/ansible/ansible/issues/70168)
|
||||
- Fix adding unrelated candidate names to the plugin loader redirect list.
|
||||
- Fix an exit code for a non-failing playbook (https://github.com/ansible/ansible/issues/71306)
|
||||
- Fix ansible-galaxy collection list to show collections in site-packages (https://github.com/ansible/ansible/issues/70147)
|
||||
- Fix bytestring vs string comparison in module_utils.basic.is_special_selinux_path() so that special-cased filesystems which don't support SELinux context attributes still allow files to be manipulated on them. (https://github.com/ansible/ansible/issues/70244)
|
||||
- Fix execution of the meta tasks 'clear_facts', 'clear_host_errors', 'end_play', 'end_host', and 'reset_connection' when the CLI flag '--flush-cache' is provided.
|
||||
- Fix fileglob bug where it could return different results for different order of parameters (https://github.com/ansible/ansible/issues/72873).
|
||||
- Fix incorrect msg in the results dict in loops
|
||||
- Fix incorrect re-run of roles with tags (https://github.com/ansible/ansible/issues/69848)
|
||||
- Fix incorrect variable scoping when using ``import with context`` in Jinja2 templates. (https://github.com/ansible/ansible/issues/72615)
|
||||
- Fix jsonfile cache plugin option '_uri' to be a type path instead of a string. (https://github.com/ansible/ansible/issues/38002)
|
||||
- Fix notifying handlers via `role_name : handler_name` when handler name contains the role name. (https://github.com/ansible/ansible/issues/70582)
|
||||
- Fix parsing of values when using empty string as a key (https://github.com/ansible/ansible/issues/57132)
|
||||
- Fix statistics reporting when rescue block contains another block (issue https://github.com/ansible/ansible/issues/61253).
|
||||
- Fix to previous deprecation change (#70504) which caused command warning deprecation to show in all cases, even when not specified by the user.
|
||||
- Fixed TypeError instancemethod expecting at least 2 arguments for apt_repository(issue https://github.com/ansible/ansible/issues/69308, PR https://github.com/ansible/ansible/pull/69463)
|
||||
- Fixed issue when `netstat` is either missing or doesn't have execution permissions leading to incorrect command being executed.
|
||||
- Fixes ``ansible-galaxy role info`` to support multiple roles on the command line (https://github.com/ansible/ansible/pull/70148)
|
||||
- Fixes ansible-test traceback when plugin author is not a string or a list of strings (https://github.com/ansible/ansible/pull/70507)
|
||||
- Handle more varnames that can create conflicts, expand a function in general, handle jinja2 globals in particular (https://github.com/ansible/ansible/issues/41955).
|
||||
- INTERPRETER_PYTHON_DISTRO_MAP - prefer ``/usr/libexec/platform-python`` on ``oraclelinux 8`` when other pythons are present.
|
||||
- Improve Ansible config deprecations to show the source of the deprecation (ansible-core). Also remove space before a comma in config deprecations (https://github.com/ansible/ansible/pull/72697).
|
||||
- Improved/fixed regular expressions in ``validate-modules/validate_modules/schema.py`` and ``utils/collection_loader/_collection_finder.py`` (https://github.com/ansible/ansible/pull/73577).
|
||||
- Includes - Explicitly get the include task, and not assume it is the parent (https://github.com/ansible/ansible/issues/65710)
|
||||
- InventoryManager - Fix unhandled exception when given limit file was actually a directory.
|
||||
- InventoryManager - Fix unhandled exception when inventory directory was empty or contained empty subdirectories (https://github.com/ansible/ansible/issues/73658).
|
||||
- JSON Encoder - Ensure we treat single vault encrypted values as strings (https://github.com/ansible/ansible/issues/70784)
|
||||
- Lookup user by UID in password database if login name is not found (https://github.com/ansible/ansible/issues/17029)
|
||||
- OpenBSD module_utils - update sysctl variable name
|
||||
- Pass expression in angle-bracket notation as filename argument to a ``compile()`` built-in function, so that Python debuggers do not try to parse it as filename.
|
||||
- Pass the connection's timeout to connection plugins instead of the task's timeout.
|
||||
- Provide more information in AnsibleUndefinedVariable (https://github.com/ansible/ansible/issues/55152)
|
||||
- Python module_utils finder - refactor logic to eliminate many corner cases, remove recursion, fix base module_utils redirections
|
||||
- Remove an embedded function from RoleMixin and add tests for it (https://github.com/ansible/ansible/pull/72754).
|
||||
- Remove the warning displayed when validating the arg spec of a role with dependencies and add it to the documentation.
|
||||
- Restore the ability for changed_when/failed_when to function with group_by (#70844).
|
||||
- Restored unsafe_writes functionality which was being skipped.
|
||||
- Restructured pipelining settings to be at the connection plugins leaving base config as global and for backwards compatiblity.
|
||||
- SSH plugin - Improve error message when ssh client is not found on the host
|
||||
- Setup virtualization_facts - add RHV and oVirt type. This change will fully work for VMs in clusters at cluster level 4.4 or newer (https://github.com/ansible/ansible/pull/72876).
|
||||
- Skip invalid collection names when listing in ansible-doc instead of throwing exception. Issue#72257
|
||||
- Skip literal_eval for string filters results in native jinja. (https://github.com/ansible/ansible/issues/70831)
|
||||
- Stop adding the connection variables to the output results
|
||||
- Strategy - When building the task in the Strategy from the Worker, ensure it is properly marked as finalized and squashed. Addresses an issue with ``ansible_failed_task``. (https://github.com/ansible/ansible/issues/57399)
|
||||
- Suppress warning when user directory used in --playbook-dir option with ansible-inventory command (https://github.com/ansible/ansible/issues/65262).
|
||||
- TOML inventory - Ensure we register dump functions for ``AnsibleUnsafe`` to support dumping unsafe values. Note that the TOML format has no functionality to mark that the data is unsafe for re-consumption. (https://github.com/ansible/ansible/issues/71307)
|
||||
- Terminal plugins - add "\e[m" to the list of ANSI sequences stripped from device output
|
||||
- The ``docker`` and ``k8s`` action groups / module default groups now also support the moved modules in `community.docker <https://galaxy.ansible.com/community/docker>`_, `community.kubevirt <https://github.com/ansible-collections/community.kubevirt>`_, `community.okd <https://galaxy.ansible.com/community/okd>`_, and `kubernetes.core <https://galaxy.ansible.com/kubernetes/core>`_ (https://github.com/ansible/ansible/pull/72428).
|
||||
- The ``flush()`` method of ``CachePluginAdjudicator`` now calls the plugin's ``flush()`` method instead of iterating over the keys that the adjudicator knows about and deleting those from the cache. (https://github.com/ansible/ansible/issues/68770)
|
||||
- The `ansible_become` value was not being treated as a boolean value when set in an INI format inventory file (fixes bug https://github.com/ansible/ansible/issues/70476).
|
||||
- The machine-readable changelog ``changelogs/changelog.yaml`` is now contained in the release.
|
||||
- Try to avoid kernel 'blocking' state on reading files while fact gathering.
|
||||
- Updated docs and added warning on max_fail_percentage and free strategy usage. fixes issue 16666.
|
||||
- VariableManager - Add the 'vars' key before getting delegated variables (https://github.com/ansible/ansible/issues/71092).
|
||||
- Vault - Allow single vault encrypted values to be used directly as module parameters. (https://github.com/ansible/ansible/issues/68275)
|
||||
- WorkerProcess - Implement workaround for stdout deadlock in multiprocessing shutdown to avoid process hangs.
|
||||
- WorkerProcess - Python 3.5 fix for workaround for stdout deadlock in multiprocessing shutdown to avoid process hangs. (https://github.com/ansible/ansible/issues/74149)
|
||||
- [set_fact] Corrected and expanded documentation as well as now raise errors that were previously ignored.
|
||||
- account for bug in Python 2.6 that occurs during interpreter shutdown to avoid stack trace
|
||||
- action plugins - change all action/module delegations to use FQ names while allowing overrides (https://github.com/ansible/ansible/issues/69788)
|
||||
- add AlmaLinux to fact gathering (https://github.com/ansible/ansible/pull/73458)
|
||||
- add constraints file for ``ansible_runner`` test since an update to ``psutil`` is now causing test failures
|
||||
- add magic/connection vars updates from delegated host info.
|
||||
- add support for alpine linux 'apk' package manager in package_facts
|
||||
- allow become method 'su' to work on 'local' connection by allocating a fake tty.
|
||||
- ansible-console - Ctrl+C (in a task) abort current task, and put you back on prompt (this behavior doesn't change) (ditto)
|
||||
- ansible-console - Ctrl+C (on prompt) used to exit the shell, unlike most shells, it should just reset the current line (ie. abort it and spawn a new prompt) (https://github.com/ansible/ansible/issues/68529)
|
||||
- ansible-console - Ctrl+D (on prompt) now exit the shell, this is the expected behavior in a shell (cf bash, sh, zsh, ipython, ...) (ditto)
|
||||
- ansible-console - add more documentation, specifically on various commands[1] (https://github.com/ansible/ansible/issues/72195)
|
||||
- ansible-console - fixes few strings' typos
|
||||
- ansible-console - remove useless and poorly formatted comment section (replaced with [1])
|
||||
- ansible-doc - account for an empty ``meta/main.yml`` file when displaying role information (https://github.com/ansible/ansible/pull/73590)
|
||||
- ansible-doc - collection name for plugin top-level deprecation was not inserted when deprecating by version (https://github.com/ansible/ansible/pull/70344).
|
||||
- ansible-doc - improve error message in text formatter when ``description`` is missing for a (sub-)option or a return value or its ``contains`` (https://github.com/ansible/ansible/pull/70046).
|
||||
- ansible-doc - improve man page formatting to avoid problems when YAML anchors are used (https://github.com/ansible/ansible/pull/70045).
|
||||
- ansible-doc - include the collection name in the text output (https://github.com/ansible/ansible/pull/70401).
|
||||
- ansible-doc - plugin option deprecations now also get ``collection_name`` added (https://github.com/ansible/ansible/pull/71735).
|
||||
- ansible-doc - properly show plugin name when ``name:`` is used instead of ``<plugin_type>:`` (https://github.com/ansible/ansible/pull/71966).
|
||||
- ansible-galaxy - Cache the responses for available collection versions after getting all pages. (https://github.com/ansible/ansible/issues/73071)
|
||||
- ansible-galaxy - Instead of assuming the first defined server is galaxy, filter based on the servers that support the v1 API, and return the first of those (https://github.com/ansible/ansible/issues/65440)
|
||||
- ansible-galaxy - Use ``sys.exit`` instead of ``exit`` when reporting an error for the removed login command.
|
||||
- ansible-galaxy - correct ``collections-path`` command line argument (https://github.com/ansible/ansible/issues/73127)
|
||||
- ansible-galaxy - fixed galaxy role init command (https://github.com/ansible/ansible/issues/71977).
|
||||
- ansible-galaxy collection download - fix downloading tar.gz files and collections in git repositories (https://github.com/ansible/ansible/issues/70429)
|
||||
- ansible-galaxy collection install - fix fallback mechanism if the AH server did not have the collection requested - https://github.com/ansible/ansible/issues/70940
|
||||
- ansible-galaxy download - fix bug when downloading a collection in a SCM subdirectory
|
||||
- ansible-pull - Run all playbooks that when multiple are supplied via the command line (https://github.com/ansible/ansible/issues/72708)
|
||||
- ansible-test - Add ``pytest < 6.0.0`` constraint for managed installations on Python 3.x to avoid issues with relative imports.
|
||||
- ansible-test - Add a ``six < 1.14.0`` constraint for Python 2.6.
|
||||
- ansible-test - Always connect additional Docker containers to the network used by the current container (if any).
|
||||
- ansible-test - Always map ``/var/run/docker.sock`` into test containers created by the ``--docker`` option if the docker host is not ``localhost``.
|
||||
- ansible-test - Attempt to detect the Docker hostname instead of assuming ``localhost``.
|
||||
- ansible-test - Avoid using ``/tmp`` to resolve occasional failures starting tests with the ``--docker`` option.
|
||||
- ansible-test - Change classification using ``--changed`` now consistently handles common configuration files for supported CI providers.
|
||||
- ansible-test - Change detection now properly resolves relative imports instead of treating them as absolute imports.
|
||||
- ansible-test - Correctly detect changes in a GitHub pull request when running on Azure Pipelines.
|
||||
- ansible-test - Correctly detect running in a Docker container on Azure Pipelines.
|
||||
- ansible-test - Do not try to validate PowerShell modules ``setup.ps1``, ``slurp.ps1``, and ``async_status.ps1``
|
||||
- ansible-test - Prefer container IP at ``.NetworkSettings.Networks.{NetworkName}.IPAddress`` over ``.NetworkSettings.IPAddress``.
|
||||
- ansible-test - Running tests using an installed version of ``ansible-test`` against one Python version from another no longer fails due to a missing ``egg-info`` directory. This could occur when testing plugins which import ``pkg_resources``.
|
||||
- ansible-test - Running tests using an installed version of ``ansible-test`` no longer generates an error attempting to create an ``egg-info`` directory when an existing one is not found in the expected location. This could occur if the existing ``egg-info`` directory included a Python version specifier in the name.
|
||||
- ansible-test - Skip installing requirements if they are already installed.
|
||||
- ansible-test - Symbolic links are no longer used to inject ``python`` into the environment, since they do not work reliably in all cases. Instead, the existing Python based exec wrapper is always used.
|
||||
- ansible-test - Temporarily limit ``cryptography`` to versions before 3.4 to enable tests to function.
|
||||
- ansible-test - The ``--export`` option for ``ansible-test coverage`` is now limited to the ``combine`` command. It was previously available for reporting commands on which it had no effect.
|
||||
- ansible-test - The ``--raw`` option for ``ansible-test shell --remote`` now uses ``sh`` for the shell instead of ``bash``, which may not be present.
|
||||
- ansible-test - The ``--remote`` option has been updated for Python 2.7 to work around breaking changes in the newly released ``get-pip.py`` bootstrapper.
|
||||
- ansible-test - The ``--remote`` option has been updated to use a versioned ``get-pip.py`` bootstrapper to avoid issues with future releases.
|
||||
- ansible-test - The ``ansible-doc`` sanity test now works for ``netconf`` plugins.
|
||||
- ansible-test - The ``ansible-test coverage combine`` option ``--export`` now exports relative paths. This avoids loss of coverage data when aggregating across systems with different absolute paths. Paths will be converted back to absolute when generating reports.
|
||||
- ansible-test - The ``changelog`` sanity test has been updated to ensure ``rstcheck`` does not load the ``sphinx`` module.
|
||||
- ansible-test - The ``cs`` and ``openshift`` test plugins now search for containers on the current network instead of assuming the ``bridge`` network.
|
||||
- ansible-test - The ``resource_prefix`` variable provided to tests running on Azure Pipelines is now converted to lowercase to match other CI providers.
|
||||
- ansible-test - Unified SSH key management for all instances created with the ``--remote`` or ``--docker`` options.
|
||||
- ansible-test - Using the ``--remote`` option on Azure Pipelines now works from a job running in a container.
|
||||
- ansible-test - ``cryptography`` is now limited to versions prior to 3.2 only when an incompatible OpenSSL version (earlier than 1.1.0) is detected
|
||||
- ansible-test - add constraint for ``cffi`` to prevent failure on systems with older versions of ``gcc`` (https://foss.heptapod.net/pypy/cffi/-/issues/480)
|
||||
- ansible-test - convert target paths to unicode on Python 2 to avoid ``UnicodeDecodeError`` (https://github.com/ansible/ansible/issues/68398, https://github.com/ansible/ansible/pull/72623).
|
||||
- ansible-test - ensure the correct unit test target is given when the ``__init__.py`` file is modified inside the connection plugins directory
|
||||
- ansible-test - ensure unit test paths for connection and inventory plugins are correctly identified for collections (https://github.com/ansible/ansible/issues/73876).
|
||||
- ansible-test - improve classification of changes to ``.gitignore``, ``COPYING``, ``LICENSE``, ``Makefile``, and all files ending with one of ``.in`, ``.md`, ``.rst``, ``.toml``, ``.txt`` in the collection root directory (https://github.com/ansible/ansible/pull/72353).
|
||||
- ansible-test - integration and unit test change detection now works for filter, lookup and test plugins
|
||||
- ansible-test now always uses the ``--python`` option for ``virtualenv`` to select the correct interpreter when creating environments with the ``--venv`` option
|
||||
- ansible-test sanity changelog test - bump dependency on antsibull-changelog to 0.9.0 so that `fragments that add new plugins or objects <https://github.com/ansible-community/antsibull-changelog/blob/main/docs/changelogs.rst#adding-new-roles-playbooks-test-and-filter-plugins>`_ will not fail validation (https://github.com/ansible/ansible/pull/73428).
|
||||
- ansible-test units - fixed collection location code to work under pytest >= 6.0.0
|
||||
- ansible-test validate-modules - ``version_added`` on module level was not validated for modules in collections (https://github.com/ansible/ansible/pull/70869).
|
||||
- ansible-test validate-modules - return correct error codes ``option-invalid-version-added`` resp. ``return-invalid-version-added`` instead of the wrong error ``deprecation-either-date-or-version`` when an invalid value of ``version_added`` is specified for an option or a return value (https://github.com/ansible/ansible/pull/70869).
|
||||
- ansible-test validate-modules - when a module uses ``add_file_common_args=True`` and does not use a keyword argument for ``argument_spec`` in ``AnsibleModule()``, the common file arguments were not considered added during validation (https://github.com/ansible/ansible/pull/72334).
|
||||
- ansible_pkg_mgr fact - now correctly returns ``atomic_container`` when run on "RHEL for Edge" images and Fedora/RHEL/CentOS Atomic Host (https://github.com/ansible/ansible/issues/73084).
|
||||
- api - time.clock is removed in Python 3.8, add backward compatible code (https://github.com/ansible/ansible/issues/70649).
|
||||
- apt - add ``fail_on_autoremove`` param to apt module to avoid unintended package removals (https://github.com/ansible/ansible/issues/63231)
|
||||
- apt - fix policy_rc_d parameter throwing an exception when restoring original file (https://github.com/ansible/ansible/issues/66211)
|
||||
- apt - include exception message from apt python library in error output
|
||||
- apt_key - Specifying ``file`` as mutually exclusive with ``data``, ``keyserver``, ``url`` (https://github.com/ansible/ansible/pull/70492).
|
||||
- apt_repository - fixes ``mode`` doc to remove ineffective default (https://github.com/ansible/ansible/pull/70319).
|
||||
- argument spec validation - fix behavior of ``apply_defaults=True`` when an empty dictionary is specified for such an option (https://github.com/ansible/ansible/pull/74029).
|
||||
- assemble - fix decrypt argument in the module (https://github.com/ansible/ansible/issues/65450).
|
||||
- async - Fix Python 3 interpreter parsing from module by comparing with bytes (https://github.com/ansible/ansible/issues/70690)
|
||||
- async_wrapper - Fix race condition when ``~/.ansible_async`` folder tries to be created by multiple async tasks at the same time - https://github.com/ansible/ansible/issues/59306
|
||||
- avoid possible errors accessing os.environ by not assuming existance of variables.
|
||||
- basic - handle exceptions for default selectors in Python 2.7 (https://github.com/ansible/ansible/issues/71704).
|
||||
- basic - use PollSelector implementation when DefaultSelector fails (https://github.com/ansible/ansible/issues/70238).
|
||||
- bcrypt hashing - Ensure we repair the salt, to avoid warnings (https://github.com/ansible/ansible/issues/36129)
|
||||
- blockinfile - properly insert a block at the end of a file that does not have a trailing newline character (https://github.com/ansible/ansible/issues/72055)
|
||||
- blockinfile now returns name of backup file when this option is used.
|
||||
- clarified changed status to reflect existing rule that had never been written down.
|
||||
- collection loader - fix bogus code coverage entries for synthetic packages
|
||||
- collection metadata - ensure collection loader uses libyaml/CSafeLoader to parse collection metadata if available
|
||||
- connection/ssh, ensure parameters come from correct source get_option, so functionality matches docs.
|
||||
- connection/ssh, fix reset to use same parameters to check if socket exists as actually used, was hardcoded to default string construction previouslly.
|
||||
- cron - cron file should not be empty after adding var (https://github.com/ansible/ansible/pull/71207)
|
||||
- cron - encode and decode crontab files in UTF-8 explicitly to allow non-ascii chars in cron filepath and job (https://github.com/ansible/ansible/issues/69492)
|
||||
- debug action, prevent setting facts when displaying ansible_facts.
|
||||
- default callback - Ensure that the ``host_pinned`` strategy is not treated as lockstep (https://github.com/ansible/ansible/issues/73364)
|
||||
- delegate_to - Ensure that calculating ``delegate_to`` vars with a loop uses the correct context to correctly evaluate the loop (https://github.com/ansible/ansible/issues/37132)
|
||||
- display correct error information when an error exists in the last line of the file (https://github.com/ansible/ansible/issues/16456)
|
||||
- distribution - add support for Pardus Linux distribution (https://github.com/ansible/ansible/issues/71636).
|
||||
- distribution facts - Allow ``distribution_major_version`` and ``distribution_version`` to work for RC and PRERELEASE versions of FreeBSD (and derived distributions) (https://github.com/ansible/ansible/issues/72331).
|
||||
- dnf - fix filtering to avoid dependncy conflicts (https://github.com/ansible/ansible/issues/72316)
|
||||
- dnf - it is now possible to specify both ``security: true`` and ``bugfix: true`` to install updates of both types. Previously, only security would get installed if both were true. (https://github.com/ansible/ansible/issues/70854)
|
||||
- ensure 'local' connection always has the correct default user for actions to consume.
|
||||
- ensure delegated vars can resolve hostvars object and access vars from hostvars[inventory_hostname].
|
||||
- ensure find_mount_point consistently returns text.
|
||||
- ensure we don't clobber role vars data when getting an empty file
|
||||
- expect - Operate pexpect with bytes to avoid potential encoding issues (https://github.com/ansible/ansible/issues/29351)
|
||||
- facts - account for Slackware OS with ``+`` in the name (https://github.com/ansible/ansible/issues/38760)
|
||||
- facts - fix distribution fact for SLES4SAP (https://github.com/ansible/ansible/pull/71559).
|
||||
- facts - fix incorrect UTC timestamp in ``iso8601_micro`` and ``iso8601``
|
||||
- facts - properly report virtualization facts for Linux guests running on bhyve (https://github.com/ansible/ansible/issues/73167)
|
||||
- file - prevent link src from being rewritten when src is not specified explicitly (https://github.com/ansible/ansible/issues/65448)
|
||||
- file - the module should warn in check_mode when path an owner/group don't exist (https://github.com/ansible/ansible/issues/67307).
|
||||
- find module - Don't treat empty excludes as a match (https://github.com/ansible/ansible/issues/70640)
|
||||
- find module - Stop traversing directories past the requested depth. (https://github.com/ansible/ansible/issues/73627)
|
||||
- find module, fix default pattern when use_regex is true.
|
||||
- fix issue with inventory_hostname and delegated host vars mixing on connection settings.
|
||||
- fortimanager httpapi plugin - fix redirect to point to the ``fortinet.fortimanager`` collection (https://github.com/ansible/ansible/pull/71073).
|
||||
- galaxy - handle plus sign in user token appearing in role url (https://github.com/ansible/ansible/issues/45475).
|
||||
- get_sysctl now handles multiline values and does not die silently anymore.
|
||||
- get_url - skip checksum during ``--check`` (https://github.com/ansible/ansible/issues/61369).
|
||||
- git - Only pass ``--raw`` flag to git verify commands (verify-tag, verify-commit) when ``gpg_whitelist`` is in use. Otherwise don't pass it so that non-whitelist GPG validation still works on older Git versions. (https://github.com/ansible/ansible/issues/64469)
|
||||
- gluster modules - fix redirect to point to the ``gluster.gluster`` collection (https://github.com/ansible/ansible/pull/71240).
|
||||
- hostname - Fixed an issue where the hostname on the alinux could not be set.
|
||||
- hostname - add Almalinux support (https://github.com/ansible/ansible/pull/73619)
|
||||
- hostname - add macOS support (https://github.com/ansible/ansible/pull/54439)
|
||||
- if the ``type`` for a module parameter in the argument spec is callable, do not pass ``kwargs`` to avoid errors (https://github.com/ansible/ansible/issues/70017)
|
||||
- import_playbook - change warning about extra parameters to deprecation (https://github.com/ansible/ansible/issues/72745)
|
||||
- improve deprecation message when using bare variable (https://github.com/ansible/ansible/pull/70687)
|
||||
- inventory - pass the vars dictionary to combine_vars instead of an individual key's value (https://github.com/ansible/ansible/issues/72975).
|
||||
- inventory plugins - Let plugins define the sanitization method for the constructed ``groups`` feature.
|
||||
- inventory_hostnames - Use ``InventoryManager`` instead of trying to replicate its behavior (https://github.com/ansible/ansible/issues/17268)
|
||||
- is_string/vault - Ensure the is_string helper properly identifies AnsibleVaultEncryptedUnicode as a string (https://github.com/ansible/ansible/pull/71609)
|
||||
- j2 plugin loader clarified comments, made note with better fqcn detection.
|
||||
- lineinfile - fix not subscriptable error in exception handling around file creation
|
||||
- linux network facts - get the correct value for broadcast address (https://github.com/ansible/ansible/issues/64384)
|
||||
- native jinja2 types - properly handle Undefined in nested data.
|
||||
- notify keyword is not ignored anymore on import_tasks, also able to apply to blocks now.
|
||||
- package - use list of built in package managers from facts rather than creating a new list
|
||||
- paramiko connection plugin - Ensure we only reset the connection when one has been previously established (https://github.com/ansible/ansible/issues/65812)
|
||||
- password hashing - Ensure we validate salts against allowed characters and length when using ``crypt`` (https://github.com/ansible/ansible/issues/71107)
|
||||
- password lookup - Try to automatically generate salts using known salt sizes (https://github.com/ansible/ansible/issues/53750)
|
||||
- pause - Fix indefinite hang when using a pause task on a background process (https://github.com/ansible/ansible/issues/32142)
|
||||
- pause - catch additional error on setting up curses (https://github.com/ansible/ansible/pull/73588).
|
||||
- pause - do not accept enter to continue when a timeout is set (https://github.com/ansible/ansible/issues/73948)
|
||||
- pause - do not warn when running in the background if a timeout is provided (https://github.com/ansible/ansible/issues/73042)
|
||||
- pause - handle exception when there is no stdout (https://github.com/ansible/ansible/pull/47851)
|
||||
- powershell - fix escaping of strings that broken modules like fetch when dealing with special chars - https://github.com/ansible/ansible/issues/62781
|
||||
- powershell - fix the CLIXML parser when it contains nested CLIXML objects - https://github.com/ansible/ansible/issues/69550
|
||||
- powershell - remove getting the PowerShell version from the env var ``POWERSHELL_VERSION``. This feature never worked properly and can cause conflicts with other libraries that use this var
|
||||
- psrp - Fix hang when copying an empty file to the remote target
|
||||
- psrp - Use native PSRP mechanism when copying files to support custom endpoints
|
||||
- quote filter - normalize how ``None`` is handled, to match Python3 behavior (https://github.com/ansible/ansible/issues/32174)
|
||||
- reboot - Add support for the runit init system, used on Void Linux, that does not support the normal Linux syntax.
|
||||
- remove contradictory recomendation from template docs. https://github.com/ansible/ansible/issues/63484
|
||||
- remove redundant remote_user setting in play_context for local as plugin already does it, also removes fork/thread issue from use of pwd library.
|
||||
- reset logging level to INFO due to CVE-2019-14846.
|
||||
- restrict module valid JSON parsed output to objects as lists are not valid responses.
|
||||
- runas - create a new token when running as ``SYSTEM`` to ensure it has the full privileges assigned to that account
|
||||
- service - Fix for the BSD rcconf code using a Python 2 specific string replace function
|
||||
- set_mode_if_different - handle symlink if it is inside a directory with sticky bit set (https://github.com/ansible/ansible/pull/45198)
|
||||
- setup module, fix error handling on bad subset given
|
||||
- setup, don't give up on all local facts gathering if one script file fails.
|
||||
- several fixes to make apt_key better at identifying needs for change and also to avoid changes in check_mode.
|
||||
- shell - fix quoting of mkdir command in creation of remote_tmp in order to allow spaces and other special characters (https://github.com/ansible/ansible/issues/69577).
|
||||
- splunk httpapi plugin - switch from splunk.enterprise_security to splunk.es in runtime.yml to reflect upstream change of Collection Name
|
||||
- ssh connection plugin - use ``get_option()`` rather than ``_play_context`` to ensure ``ANSBILE_SSH_ARGS`` are applied properly (https://github.com/ansible/ansible/issues/70437)
|
||||
- stat - handle colons in filename while parsing the mimetype output (https://github.com/ansible/ansible/issues/70256).
|
||||
- strftime filter - Input epoch is allowed to be a float (https://github.com/ansible/ansible/issues/71257)
|
||||
- su become plugin, ensure correct type for localization option.
|
||||
- systemd - account for templated unit files using ``@`` when searching for the unit file (https://github.com/ansible/ansible/pull/72347#issuecomment-730626228)
|
||||
- systemd - fixed chroot usage on new versions of systemd, that broke because of upstream changes in systemctl output
|
||||
- systemd - follow up fix to https://github.com/ansible/ansible/issues/72338 to use ``list-unit-files`` rather than ``list-units`` in order to show all units files on the system.
|
||||
- systemd - made the systemd module work correctly when the SYSTEMD_OFFLINE environment variable is set
|
||||
- systemd - preserve the full unit name when using a templated service and ``systemd`` failed to parse dbus due to a known bug in ``systemd`` (https://github.com/ansible/ansible/pull/72985)
|
||||
- systemd - work around bug with ``systemd`` 245 and 5.8 kernel that does not correctly report service state (https://github.com/ansible/ansible/issues/71528)
|
||||
- task parsing - strip spaces from action name when using ``action: foo bar=baz`` form. (https://github.com/ansible/ansible/issues/62136)
|
||||
- templating - fix error message for ``x in y`` when y is undefined (https://github.com/ansible/ansible/issues/70984)
|
||||
- the unvault lookup plugin returned a byte string. Now returns a real string.
|
||||
- to_text(stdout) before json.loads in psrp.Connection.put_file in case stdout is bytes
|
||||
- unarchive - ``zip`` unarchive no longer errors on RHEL/CentOS 6 and old Fedora when attempting to use a numeric gid (https://github.com/ansible/ansible/issues/71903).
|
||||
- unarchive - check ``fut_gid`` against ``run_gid`` in addition to supplemental groups (https://github.com/ansible/ansible/issues/49284)
|
||||
- undeprecate hash_merge setting and add more docs clarifying its use and why not to use it.
|
||||
- uri - ``status_code`` elements are type ``int``
|
||||
- url lookup - make sure that options supplied in ansible.cfg are actually used (https://github.com/ansible/ansible/pull/71736).
|
||||
- url lookup - set default user agent to ``ansible-httpget`` (https://github.com/ansible/ansible/pull/72324)
|
||||
- urls - Close filedescriptor of certificate chain tempfile to prevent stale filedescriptor leakage (https://github.com/ansible/ansible/pull/71825).
|
||||
- user - AnsibleModule.run_command returns a tuple of return code, stdout and stderr. The module main function of the user module expects user.create_user to return a tuple of return code, stdout and stderr. Fix the locations where stdout and stderr got reversed.
|
||||
- user - Local users with an expiry date cannot be created as the ``luseradd`` / ``lusermod`` commands do not support the ``-e`` option. Set the expiry time in this case via ``lchage`` after the user was created / modified. (https://github.com/ansible/ansible/issues/71942)
|
||||
- user - do the right thing when ``password_lock=True`` and ``password`` are used together (https://github.com/ansible/ansible/issues/72992)
|
||||
- user - don't create home directory and missing parents when create_home == false (https://github.com/ansible/ansible/pull/70600).
|
||||
- validate-modules - do not raise an ``AttributeError`` if a value is assigned to a module attribute in a try/except block.
|
||||
- vault - Support reading raw binary data from stdin under python3
|
||||
- virtual facts - kubevirt is now identified as "KubeVirt" and with a "guest" role instead of "kvm" and "host" role (https://github.com/ansible/ansible/issues/72001).
|
||||
- wait_for - catch and ignore errors when getting active connections with psutil (https://github.com/ansible/ansible/issues/72322)
|
||||
- wait_for module, move missing socket into function to get proper comparrison in time.
|
||||
- win setup - Fix redirection path for the windows setup module
|
||||
- windows async - use full path when calling PowerShell to reduce reliance on environment vars being correct - https://github.com/ansible/ansible/issues/70655
|
||||
- winrm - preserve winrm forensic data on put_file failures
|
||||
- yamllint - do not raise an ``AttributeError`` if a value is assigned to a module attribute at the top of the module.
|
||||
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
- ansible-test - The ``pylint`` sanity test no longer correctly detects "bad" variable names for non-constants. See https://github.com/PyCQA/pylint/issues/3701 for additional details.
|
||||
|
||||
New Modules
|
||||
-----------
|
||||
|
||||
- validate_argument_spec - Validate role argument specs.
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: ansible-core
|
||||
title: Ansible Base
|
||||
release_tag_re: '(v(?:[\d.ab\-]|rc)+)'
|
||||
pre_release_tag_re: '(?P<pre_release>(?:[ab]|rc)+\d*)$'
|
||||
changes_file: changelog.yaml
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
minor_changes:
|
||||
- callbacks - Add feature allowing forks to send callback events
|
||||
(https://github.com/ansible/ansible/issues/14681)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- display correct error information when an error exists in the last line of the file (https://github.com/ansible/ansible/issues/16456)
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- Allow for the skipped filter to be used on a registered looped task results. (https://github.com/ansible/ansible/issues/16949)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Lookup user by UID in password database if login name is not found (https://github.com/ansible/ansible/issues/17029)
|
||||
@ -1,3 +0,0 @@
|
||||
bugfixes:
|
||||
- inventory_hostnames - Use ``InventoryManager`` instead of trying to replicate its behavior
|
||||
(https://github.com/ansible/ansible/issues/17268)
|
||||
3
changelogs/fragments/21003-uri-return-content.yml
Normal file
3
changelogs/fragments/21003-uri-return-content.yml
Normal file
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- uri - Don't return the body even if it failed
|
||||
(https://github.com/ansible/ansible/issues/21003)
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- subversion - ``validate_certs`` option, which, when true, will avoid passing ``--trust-server-cert`` to ``svn`` commands (https://github.com/ansible/ansible/issues/22599).
|
||||
@ -1,3 +0,0 @@
|
||||
bugfixes:
|
||||
- Ensure if a traceback halts ``strategy.run`` that we still attempt to clean up
|
||||
(https://github.com/ansible/ansible/issues/23958)
|
||||
@ -1,3 +0,0 @@
|
||||
bugfixes:
|
||||
- expect - Operate pexpect with bytes to avoid potential encoding issues
|
||||
(https://github.com/ansible/ansible/issues/29351)
|
||||
@ -1,4 +0,0 @@
|
||||
bugfixes:
|
||||
- >
|
||||
pause - Fix indefinite hang when using a pause task on a background
|
||||
process (https://github.com/ansible/ansible/issues/32142)
|
||||
@ -1,3 +0,0 @@
|
||||
bugfixes:
|
||||
- quote filter - normalize how ``None`` is handled, to match Python3 behavior
|
||||
(https://github.com/ansible/ansible/issues/32174)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- hostname - add macOS support (https://github.com/ansible/ansible/pull/54439)
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- ssh - connection plugin now supports a new variable ``sshpass_prompt`` which gets passed to ``sshpass`` allowing the user to set a custom substring to search for a password prompt (requires sshpass 1.06+)
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- subversion - fix stack trace when getting information about the repository (https://github.com/ansible/ansible/issues/36498)
|
||||
@ -1,4 +0,0 @@
|
||||
bugfixes:
|
||||
- delegate_to - Ensure that calculating ``delegate_to`` vars with a loop
|
||||
uses the correct context to correctly evaluate the loop
|
||||
(https://github.com/ansible/ansible/issues/37132)
|
||||
@ -1,4 +0,0 @@
|
||||
minor_changes:
|
||||
- >
|
||||
unarchive - add ``include`` parameter to allow extracting specific files
|
||||
from an archive (https://github.com/ansible/ansible/pull/40522)
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- distribution - add support for DragonFly distribution (https://github.com/ansible/ansible/issues/43739).
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- galaxy - handle plus sign in user token appearing in role url (https://github.com/ansible/ansible/issues/45475).
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- Force the template module to use non-native Jinja2 (https://github.com/ansible/ansible/issues/46169)
|
||||
@ -0,0 +1,3 @@
|
||||
---
|
||||
bugfixes:
|
||||
- copy - Fixed copy module not working in case that remote_src is enabled and dest ends in a / (https://github.com/ansible/ansible/pull/47238)
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- Allow an attribute to be passed to the min and max filters with Jinja 2.10+
|
||||
@ -0,0 +1,4 @@
|
||||
---
|
||||
bugfixes:
|
||||
- apt - Fixed the issue the cache being updated while auto-installing its
|
||||
dependencies even when ``update_cache`` is set to false.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- vault - Support reading raw binary data from stdin under python3
|
||||
2
changelogs/fragments/54095-import_tasks-fix_no_task.yml
Normal file
2
changelogs/fragments/54095-import_tasks-fix_no_task.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Raise error when no task file is provided to import_tasks (https://github.com/ansible/ansible/issues/54095).
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Provide more information in AnsibleUndefinedVariable (https://github.com/ansible/ansible/issues/55152)
|
||||
@ -0,0 +1,6 @@
|
||||
bugfixes:
|
||||
- synchronize - fix password authentication on Python 2 (https://github.com/ansible/ansible/issues/56629)
|
||||
- >
|
||||
AnsibleModule.run_command() - set ``close_fds`` to ``False`` on Python 2 if ``pass_fds`` are passed to
|
||||
``run_command()``. Since ``subprocess.Popen()`` on Python 2 does not have the ``pass_fds`` option,
|
||||
there is no way to exclude a specific list of file descriptors from being closed.
|
||||
2
changelogs/fragments/56832-remove-aptitude-warning.yml
Normal file
2
changelogs/fragments/56832-remove-aptitude-warning.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Remove the unnecessary warning about aptitude not being installed (https://github.com/ansible/ansible/issues/56832).
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- apt_repository - Implemented an exponential backoff behaviour when retrying to update the apt cache with new params ``update_cache_retry_max_delay`` and ``update_cache_retries`` to control the behavior.
|
||||
@ -1,5 +0,0 @@
|
||||
bugfixes:
|
||||
- Strategy - When building the task in the Strategy from the Worker,
|
||||
ensure it is properly marked as finalized and squashed. Addresses an
|
||||
issue with ``ansible_failed_task``.
|
||||
(https://github.com/ansible/ansible/issues/57399)
|
||||
@ -0,0 +1,3 @@
|
||||
---
|
||||
bugfixes:
|
||||
- Add missing gcp modules to gcp module defaults group
|
||||
4
changelogs/fragments/57894-combine-filter-rework.yml
Normal file
4
changelogs/fragments/57894-combine-filter-rework.yml
Normal file
@ -0,0 +1,4 @@
|
||||
bugfixes:
|
||||
- combine filter - ``[dict1, [dict2]] | combine`` now raise an error; previously ``combine`` had an undocumented behaviour where it was flattening the list before combining it (https://github.com/ansible/ansible/pull/57894#discussion_r339517518).
|
||||
minor_changes:
|
||||
- combine filter - now accept a ``list_merge`` argument which modifies its behaviour when the hashes to merge contain arrays/lists.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- copy - recursive copy with ``remote_src=yes`` now recurses beyond first level. (Fixes https://github.com/ansible/ansible/issues/58284)
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- Added name of aliases in user error (https://github.com/ansible/ansible/issues/58752).
|
||||
5
changelogs/fragments/59060-validate-modules-aliases.yml
Normal file
5
changelogs/fragments/59060-validate-modules-aliases.yml
Normal file
@ -0,0 +1,5 @@
|
||||
bugfixes:
|
||||
- "ansible-test - during module validation, improve alias handling."
|
||||
- "ansible-test - during module validation, handle add_file_common_args only for top-level arguments."
|
||||
minor_changes:
|
||||
- "ansible-test - extend alias validation."
|
||||
2
changelogs/fragments/59438-hostname-use-hostnamectl.yml
Normal file
2
changelogs/fragments/59438-hostname-use-hostnamectl.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Use hostnamectl command to get current hostname for host while using systemd strategy (https://github.com/ansible/ansible/issues/59438).
|
||||
2
changelogs/fragments/59464-playbook-dir-envvar.yml
Normal file
2
changelogs/fragments/59464-playbook-dir-envvar.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- CLI - the `ANSIBLE_PLAYBOOK_DIR` envvar or `playbook_dir` config can now substitute for the --playbook-dir arg on CLIs that support it (https://github.com/ansible/ansible/issues/59464)
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- cron and cronvar - use get_bin_path utility to locate the default crontab executable instead of the hardcoded /usr/bin/crontab. (https://github.com/ansible/ansible/pull/59765)
|
||||
5
changelogs/fragments/59772-fix_ansible_issue_58619.yaml
Normal file
5
changelogs/fragments/59772-fix_ansible_issue_58619.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
bugfixes:
|
||||
- >
|
||||
group - The group module was not correctly detecting whether a local
|
||||
group is existing or not with local set to yes if the same group
|
||||
exists in a non local group repository e.g. LDAP. (https://github.com/ansible/ansible/issues/58619)
|
||||
4
changelogs/fragments/60106-templar-contextmanager.yml
Normal file
4
changelogs/fragments/60106-templar-contextmanager.yml
Normal file
@ -0,0 +1,4 @@
|
||||
bugfixes:
|
||||
- template lookup - ensure changes to the templar in the lookup, do not
|
||||
affect the templar context outside of the lookup
|
||||
(https://github.com/ansible/ansible/issues/60106)
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- apt - Implemented an exponential backoff behaviour when retrying to update the cache with new params ``update_cache_retry_max_delay`` and ``update_cache_retries`` to control the behavior.
|
||||
2
changelogs/fragments/60587-doc_parsing.yml
Normal file
2
changelogs/fragments/60587-doc_parsing.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Handle exception encountered while parsing the argument description in module when invoked via ansible-doc command (https://github.com/ansible/ansible/issues/60587).
|
||||
2
changelogs/fragments/60595-systemd_import.yml
Normal file
2
changelogs/fragments/60595-systemd_import.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Add an additional check for importing journal from systemd-python module (https://github.com/ansible/ansible/issues/60595).
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- constructed - Add a toggle to allow the separator to be omitted if no prefix has been provided.
|
||||
@ -0,0 +1,6 @@
|
||||
---
|
||||
minor_changes:
|
||||
- vars plugins - Support vars plugins in collections by adding the ability to whitelist plugins.
|
||||
- host_group_vars plugin - Require whitelisting and whitelist by default.
|
||||
- Add a global toggle to control when vars plugins are executed (per task by default for backward compatibility or after importing inventory).
|
||||
- Add a per-plugin stage option to override the global toggle to control the execution of individual vars plugins (per task, after inventory, or both).
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- AnsibleModule.set_mode_if_different - don't check file existence when check_mode is activated (https://github.com/ansible/ansible/issues/61185).
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- Add yum/dnf version comparison documentation for package install
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- get_url - skip checksum during ``--check`` (https://github.com/ansible/ansible/issues/61369).
|
||||
@ -0,0 +1,4 @@
|
||||
bugfixes:
|
||||
- ansible-inventory - Properly hide arguments that should not be shown
|
||||
(https://github.com/ansible/ansible/issues/61604)
|
||||
- ansible-inventory - Restore functionality to allow ``--graph`` to be limited by a host pattern
|
||||
2
changelogs/fragments/61624-fix-galaxy-url-building.yml
Normal file
2
changelogs/fragments/61624-fix-galaxy-url-building.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-galaxy - Fix url building to not truncate the URL (https://github.com/ansible/ansible/issues/61624)
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- "``AnsibleModule.load_file_common_arguments`` now allows to simply override ``path``."
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Remove the deprecation message for the ``TRANSFORM_INVALID_GROUP_CHARS`` setting. (https://github.com/ansible/ansible/issues/61889)
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- get_url - Remove deprecated string format support for the headers option (https://github.com/ansible/ansible/issues/61891)
|
||||
3
changelogs/fragments/61978-get-url-no-checksum.yml
Normal file
3
changelogs/fragments/61978-get-url-no-checksum.yml
Normal file
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- get_url - Don't treat no checksum as a checksum match
|
||||
(https://github.com/ansible/ansible/issues/61978)
|
||||
2
changelogs/fragments/62096-test-coverage-all.yml
Normal file
2
changelogs/fragments/62096-test-coverage-all.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-test coverage - Fix the ``--all`` argument when generating coverage reports - https://github.com/ansible/ansible/issues/62096
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- user - allow groups, append parameters with local
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- "task parsing - strip spaces from action name when using ``action: foo bar=baz`` form. (https://github.com/ansible/ansible/issues/62136)"
|
||||
5
changelogs/fragments/62237-keep-unsafe-context.yml
Normal file
5
changelogs/fragments/62237-keep-unsafe-context.yml
Normal file
@ -0,0 +1,5 @@
|
||||
security_fixes:
|
||||
- >
|
||||
**security issue** - TaskExecutor - Ensure we don't erase unsafe context in TaskExecutor.run on bytes.
|
||||
Only present in 2.9.0beta1
|
||||
(https://github.com/ansible/ansible/issues/62237)
|
||||
2
changelogs/fragments/62407-wait_for_connection.yml
Normal file
2
changelogs/fragments/62407-wait_for_connection.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Remove a temp directory created by wait_for_connection action plugin (https://github.com/ansible/ansible/issues/62407).
|
||||
@ -0,0 +1,4 @@
|
||||
minor_changes:
|
||||
- callbacks - Allow modules to return `None` as before/after entries for diff.
|
||||
This should make it easier for modules to report the "not existing" state of
|
||||
the entity they touched.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- AnsibleDumper - Add a representer for AnsibleUnsafeBytes (https://github.com/ansible/ansible/issues/62562).
|
||||
2
changelogs/fragments/62713-add-path_join-filter.yaml
Normal file
2
changelogs/fragments/62713-add-path_join-filter.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- core filters - Adding ``path_join`` filter to the core filters list
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "package_facts - fix value of ``vital`` attribute which is returned when ``pkg`` manager is used"
|
||||
@ -0,0 +1,3 @@
|
||||
---
|
||||
minor_changes:
|
||||
- dnf - Properly handle idempotent transactions with package name wildcard globs (https://github.com/ansible/ansible/issues/62809)
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-galaxy - Default collection install path to first path in COLLECTIONS_PATHS (https://github.com/ansible/ansible/pull/62870)
|
||||
@ -1,3 +0,0 @@
|
||||
bugfixes:
|
||||
- Display - Use wcswidth to calculate printable width of a text string
|
||||
(https://github.com/ansible/ansible/issues/63105)
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- lineinfile - fix bug that caused multiple line insertions (https://github.com/ansible/ansible/issues/58923).
|
||||
@ -1,2 +0,0 @@
|
||||
minor_changes:
|
||||
- find module - Now has a ``read_whole_file`` boolean parameter which allows for reading the whole file and doing an ``re.search()`` regex evaluation on it when searching using the ``contains`` option. This allows (for example) for ensuring the very end of the file matches a pattern.
|
||||
@ -1,2 +0,0 @@
|
||||
bugfixes:
|
||||
- Ensure Ansible's unique filter preserves order (https://github.com/ansible/ansible/issues/63417)
|
||||
@ -0,0 +1,4 @@
|
||||
bugfixes:
|
||||
- yum - performance bugfix, the YumBase object was being instantiated
|
||||
multiple times unnecessarily, which lead to considerable overhead when
|
||||
operating against large sets of packages.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "ansible-galaxy cli - fixed ``--version`` argument"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user