Sync from SUSE:SLFO:Main ansible-core revision 68ebe8a276572a6c906027e7d7c0f5a0

This commit is contained in:
Adrian Schröter 2024-05-03 10:55:58 +02:00
commit f3eb2234ed
5 changed files with 979 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

4
_service Normal file
View File

@ -0,0 +1,4 @@
<services>
<service name="download_files" mode="manual">
</service>
</services>

BIN
ansible-core-2.15.8.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

728
ansible-core.changes Normal file
View File

@ -0,0 +1,728 @@
-------------------------------------------------------------------
Tue Dec 12 17:22:59 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.15.8:
* Minor Changes
- ansible-test - Add FreeBSD 13.2 remote.
- ansible-test - Removed freebsd/13.1 remote.
* Bugfixes
- unsafe data - Address an incompatibility when iterating or
getting a single index from AnsibleUnsafeBytes
- unsafe data - Address an incompatibility with
AnsibleUnsafeText and AnsibleUnsafeBytes when pickling with
protocol=0
-------------------------------------------------------------------
Tue Dec 5 06:08:05 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.15.7:
This release includes a fix for CVE-2023-5764, where internal
templating actions could result in unsafe data losing its unsafe
designation.
* Breaking Changes / Porting Guide
- assert - Nested templating may result in an inability for the
conditional to be evaluated. See the porting guide for more
information.
* Security Fixes
- templating - Address issues where internal templating can
cause unsafe variables to lose their unsafe designation
(CVE-2023-5764)
* Bugfixes
- ansible-pull now will expand relative paths for the
-d|--directory option is now expanded before use.
- flush_handlers - properly handle a handler failure in a
nested block when force_handlers is set
(http://github.com/ansible/ansible/issues/81532)
- module no_log will no longer affect top level booleans, for
example no_log_module_parameter='a' will no longer hide
changed=False as a 'no log value' (matches 'a').
- modules/user.py - Add check for valid directory when creating
new user homedir (allows /dev/null as skeleton) (#75063)
- role params now have higher precedence than host facts again,
matching documentation, this had unintentionally changed in
2.15.
- wait_for should not handle 'non mmapable files' again.
-------------------------------------------------------------------
Tue Nov 7 07:46:07 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.15.6:
* Minor Changes
- ansible-test - Windows 2012 and 2012-R2 instances are now
requested from Azure instead of AWS.
* Bugfixes
- Fix run_once being incorrectly interpreted on handlers
(#81666)
- Plugin loader does not dedupe nor cache filter/test plugins
by file basename, but full path name.
- Properly template tags in parent blocks (#81053)
- Restoring the ability of filters/tests can have same file
base name but different tests/filters defined inside.
- import_role reverts to previous behavior of exporting vars at
compile time.
- ansible-galaxy - Provide a better error message when using a
requirements file with an invalid format - #81901
- ansible-inventory - index available_hosts for major
performance boost when dumping large inventories
- ansible-test - Fix parsing of cgroup entries which contain a
: in the path (#81977).
-------------------------------------------------------------------
Tue Oct 10 04:44:30 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.15.5:
* Minor Changes
- ansible-galaxy dependency resolution messages have changed
the unexplained 'virtual' collection for the specific type
('scm', 'dir', etc) that is more user friendly
* Security Fixes
- ansible-galaxy - Prevent roles from using symlinks to
overwrite files outside of the installation directory
(CVE-2023-5115)
* Bugfixes
- Allow for searching handler subdir for included task via
include_role (#81722)
- PluginLoader - fix Jinja plugin performance issues (#79652)
- ansible.module_utils.service - ensure binary data
transmission in daemonize()
- ansible.module_utils.service - fix inter-process
communication in daemonize()
- ansible-galaxy - started allowing the use of pre-releases for
collections that do not have any stable versions published.
(#81606)
- ansible-galaxy - started allowing the use of pre-releases for
dependencies on any level of the dependency tree that
specifically demand exact pre-release versions of collections
and not version ranges. (#81606)
- ansible-galaxy error on dependency resolution will not error
itself due to 'virtual' collections not having a
name/namespace.
- ansible-galaxy info - fix reporting no role found when
lookup_role_by_name returns None.
- role deduplication - don't deduplicate before a role has had
a task run for that particular host (#81486).
- uri/urls - Add compat function to handle the ability to parse
the filename from a Content-Disposition header (#81806)
- winrm - Better handle send input failures when communicating
with hosts under load
-------------------------------------------------------------------
Tue Sep 12 08:13:53 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.15.4:
* Deprecated Features
- vault and unfault filters - the undocumented vaultid
parameter is deprecated and will be removed in ansible-core
2.20. Use vault_id instead.
* Bugfixes
- PowerShell - Remove some code which is no longer valid for
dotnet 5+
- Prompting - add a short sleep between polling for user input
to reduce CPU consumption (#81516).
- ansible-galaxy - Enabled the data tarfile filter during role
installation for Python versions that support it. A probing
mechanism is used to avoid Python versions with a broken
implementation.
- ansible-test - Always use ansible-test managed entry points
for ansible-core CLI tools when not running from source. This
fixes issues where CLI entry points created during install
are not compatible with ansible-test.
- first found lookup has been updated to use the normalized
argument parsing (pythonic) matching the documented examples.
- handlers - the listen keyword can affect only one handler
with the same name, the last one defined as it is a case with
the notify keyword (#81013)
- include_role - expose variables from parent roles to role's
handlers (#80459)
- tarfile - handle data filter deprecation warning message for
extract and extractall (#80832).
- vault and unvault filters now properly take vault_id
parameter.
-------------------------------------------------------------------
Wed Sep 6 06:19:18 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- as example files were split out into a separate package
ansible-documentation upstream, this package now Recommends that
package
- update to 2.15.3:
* Minor Changes
- Removed exclude and recursive-exclude commands for generated
files from the MANIFEST.in file. These excludes were
unnecessary since releases are expected to be built with a
clean worktree.
- Removed exclude commands for sanity test files from the
MANIFEST.in file. These tests were previously excluded
because they did not pass when run from an sdist. However,
sanity tests are not expected to pass from an sdist, so
excluding some (but not all) of the failing tests makes
little sense.
- Removed redundant include commands from the MANIFEST.in file.
These includes either duplicated default behavior or another
command.
- The ansible-core sdist no longer contains pre-generated man
pages. Instead, a packaging/cli-doc/build.py script is
included in the sdist. This script can generate man pages and
standalone RST documentation for ansible-core CLI programs.
- The docs and examples directories are no longer included in
the ansible-core sdist. These directories have been moved to
the https://github.com/ansible/ansible-documentation
repository.
- Use include where recursive-include is unnecessary in the
MANIFEST.in file.
- ansible-test - Update the logic used to detect when
ansible-test is running from source.
- ansible-test - Updated the CloudStack test container to
version 1.6.1.
* Bugfixes
- Exclude internal options from man pages and docs.
- Fix ansible-config init man page option indentation.
- The ansible-config init command now has a documentation
description.
- The ansible-galaxy collection download command now has a
documentation description.
- The ansible-galaxy collection install command documentation
is now visible (previously hidden by a decorator).
- The ansible-galaxy collection verify command now has a
documentation description.
- The ansible-galaxy role install command documentation is now
visible (previously hidden by a decorator).
- The ansible-inventory command command now has a documentation
description (previously used as the epilog).
- Update module_utils.urls unit test to work with cryptography
>= 41.0.0.
- When generating man pages, use func to find the command
function instead of looking it up by the command name.
- ansible-galaxy now considers all collection paths when
identifying which collection requirements are already
installed. Use the COLLECTIONS_PATHS and
COLLECTIONS_SCAN_SYS_PATHS config options to modify these.
Previously only the install path was considered when
resolving the candidates. The install path will remain the
only one potentially modified. (#79767, #81163)
- ansible-test - Fix several possible tracebacks when using the
-e option with sanity tests.
- ansible-test - Pre-build a PyYAML wheel before installing
requirements to avoid a potential Cython build failure.
- ansible-test - Remove redundant warning about missing
programs before attempting to execute them.
- core will now also look at the connection plugin to force
'local' interpreter for networking path compatibility as just
ansible_network_os could be misleading.
- man page build - Sub commands of ansible-galaxy role and
ansible-galaxy collection are now documented.
- password_hash - fix salt format for crypt (only used if
passlib is not installed) for the bcrypt algorithm.
- urls.py - fixed cert_file and key_file parameters when
running on Python 3.12 - #80490
-------------------------------------------------------------------
Tue Jul 18 05:02:29 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.15.2:
* Minor Changes
- Utilize gpg check provided internally by the transaction.run
method as oppose to calling it manually.
- ansible-test - Add Fedora 38 remote.
- ansible-test - Use a context manager to perform cleanup at
exit instead of using the built-in atexit module.
- dnf5 - enable environment groups installation testing in CI
as its support was added.
- dnf5 - enable now implemented cacheonly functionality
* Bugfixes
- From issue #80880, when notifying a handler from another
handler, handler notifications must be registered immediately
as the flush_handler call is not recursive.
- ansible-galaxy - Fix issue installing collections containing
directories with more than 100 characters on python versions
before 3.10.6
- paramiko_ssh, psrp, and ssh connection plugins - ensure that
all values for options that should be strings are actually
converted to strings (#81029).
- templating - In the template action and lookup, use local
jinja2 environment overlay overrides instead of mutating the
templars environment
* Known Issues
- ansible-test - The Fedora 37 remote is known to occasionally
hang during boot. It is no longer routinely tested as a
result. If possible, use the Fedora 38 remote instead.
-------------------------------------------------------------------
Wed Jun 21 04:46:09 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.15.1:
* Minor Changes
- ansible-test - Allow float values for the --timeout option to
the env command. This simplifies testing.
- ansible-test - Refactored env command logic and timeout
handling.
- ansible-test - Use datetime.datetime.now with tz specified
instead of datetime.datetime.utcnow.
* Bugfixes
- Properly disable jinja2_native in the template module when
jinja2 override is used in the template (#80605)
- ansible-galaxy - Fix variable type error when installing
subdir collections (#80943)
- ansible-test - Fix a traceback that occurs when attempting to
test Ansible source using a different ansible-test. A clear
error message is now given when this scenario occurs.
- ansible-test - Fix handling of timeouts exceeding one day.
- ansible-test - Fix various cases where the test timeout could
expire without terminating the tests.
- ansible-test local change detection - use git merge-base
<branch> HEAD instead of git merge-base --fork-point <branch>
(#79734).
- deb822_repository - use http-agent for receiving content
(#80809).
- dnf5 - Update dnf5 module to handle API change for setting
the download directory (#80887)
- man page build - Remove the dependency on the docs directory
for building man pages.
- pep517 build backend - Copy symlinks when copying the source
tree. This avoids tracebacks in various scenarios, such as
when a venv is present in the source tree.
- uri - fix search for JSON type to include complex strings
containing '+'
-------------------------------------------------------------------
Mon May 15 19:29:21 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- major update to 2.15.0:
https://github.com/ansible/ansible/blob/v2.15.0/changelogs/
CHANGELOG-v2.15.rst
-------------------------------------------------------------------
Sun May 14 19:08:37 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- modify %if-condition to allow building for python3.10 or
python3.11 on SLES15
-------------------------------------------------------------------
Fri May 5 07:11:16 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- change python version on Leap15/SLES15 to python3.11 to use the
new stack supported by SUSE
-------------------------------------------------------------------
Mon May 1 08:49:07 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- BuildRequire python3.9 to follow upstream (does not matter on
Tumbleweed which is using 3.10 already...)
-------------------------------------------------------------------
Mon Apr 24 16:40:52 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.14.5:
https://github.com/ansible/ansible/blob/v2.14.5/changelogs/
CHANGELOG-v2.14.rst
* Bugfixes
- ansible-doc - stop generating wrong module URLs for module
see-alsos. The URLs for modules in ansible.builtin do now
work, and URLs for modules outside ansible.builtin are no
longer added (#80280).
- ansible-galaxy - Improve retries for collection installs, to
properly retry, and extend retry logic to common URL related
connection errors (#80170 #80174)
- ansible-galaxy - reduce API calls to servers by fetching
signatures only for final candidates.
- ansible-test - Add support for argcomplete version 3.
- jinja2_native - fix intermittent 'could not find job'
failures when a value of ansible_job_id from a result of an
async task was inadvertently changed during execution; to
prevent this a format of ansible_job_id was changed.
- password lookup now correctly reads stored ident fields.
- pep517 build backend - Use the documented import_module
import from importlib.
- roles - Fix templating public, allow_duplicates and
rolespec_validate (#80304).
- syntax check - Limit --syntax-check to ansible-playbook only,
as that is the only CLI affected by this argument (#80506)
-------------------------------------------------------------------
Tue Mar 28 06:24:00 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- use `with` in dependencies instead of `and`
- update to 2.14.4:
https://github.com/ansible/ansible/blob/v2.14.4/changelogs/
CHANGELOG-v2.14.rst
* Minor Changes
- ansible-test - Moved git handling out of the validate-modules
sanity test and into ansible-test.
- ansible-test - Removed the --keep-git sanity test option,
which was limited to testing ansible-core itself.
- ansible-test - Updated the Azure Pipelines CI plugin to work
with newer versions of git.
* Breaking Changes / Porting Guide
- ansible-test - Integration tests which depend on specific
file permissions when running in an ansible-test managed
host environment may require changes. Tests that require
permissions other than 755 or 644 may need to be updated to
set the necessary permissions as part of the test run.
* Bugfixes
- Fix MANIFEST.in to exclude unwanted files in the packaging/
directory.
- Fix MANIFEST.in to include `*.md` files in the test/support/
directory.
- Fix an issue where the value of become was ignored when used
on a role used as a dependency in main/meta.yml (#79777)
- ansible_eval_concat - avoid redundant unsafe wrapping of
templated strings converted to Python types
- ansible-galaxy role info - fix unhandled AttributeError by
catching the correct exception.
- ansible-test - Always indicate the Python version being used
before installing requirements. Resolves issue #72855
- ansible-test - Exclude ansible-core vendored Python packages
from ansible-test payloads.
- ansible-test - Integration test target prefixes defined in a
tests/integration/target-prefixes.{group} file can now
contain an underscore (`_`) character. Resolves issue #79225
- ansible-test - Removed pointless comparison in diff
evaluation logic.
- ansible-test - Set PYLINTHOME for the pylint sanity test to
prevent failures due to pylint checking for the existence of
an obsolete home directory.
- ansible-test - Support loading of vendored Python packages
from ansible-core.
- ansible-test - Use consistent file permissions when
delegating tests to a container or remote host. Files with
any execute bit set will use permissions 755. All other
files will use permissions 644. (Resolves issue #75079)
- copy - fix creating the dest directory in check mode with
remote_src=True (#78611).
- copy - fix reporting changes to file attributes in check mode
with remote_src=True (#77957).
-------------------------------------------------------------------
Mon Mar 20 06:10:47 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- adjust Requires and BuildRequires for python-resolvelib to
allow versions below 0.10.0
https://github.com/ansible/ansible/blob/devel/requirements.txt
-------------------------------------------------------------------
Tue Feb 28 14:38:13 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.14.3:
Full changelog
https://github.com/ansible/ansible/blob/v2.14.3/changelogs/
CHANGELOG-v2.14.rst
* Minor Changes
- Make using blocks as handlers a parser error (#79968)
- ansible-test - Specify the configuration file location
required by test plugins when the config file is not found.
This resolves issue: #79411
- ansible-test - Update error handling code to use Python 3.x
constructs, avoiding direct use of errno.
- ansible-test acme test container - update version to update
used Pebble version, underlying Python and Go base
containers, and Python requirements (#79783).
* Bugfixes
- Ansible.Basic.cs - Ignore compiler warning (reported as an
error) when running under PowerShell 7.3.x.
- Fix conditionally notifying include_tasks` handlers when
``force_handlers is used (#79776)
- TaskExecutor - don't ignore templated _raw_params that k=v
parser failed to parse (#79862)
- ansible-galaxy - fix installing collections in git
repositories/directories which contain a MANIFEST.json file
(#79796).
- ansible-test - Support Podman 4.4.0+ by adding the SYS_CHROOT
capability when running containers.
- ansible-test - fix warning message about failing to run an
image to include the image name
- strategy plugins now correctly identify bad registered
variables, even on skip.
-------------------------------------------------------------------
Tue Jan 31 15:08:40 UTC 2023 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.14.2:
Full changelog https://github.com/ansible/ansible/blob/v2.14.2/changelogs/CHANGELOG-v2.14.rst
* Major Changes
- ansible-test - Docker Desktop on WSL2 is now supported (additional configuration required).
- ansible-test - Docker and Podman are now supported on hosts with cgroup v2 unified. Previously only cgroup v1 and cgroup v2 hybrid were supported.
- ansible-test - Podman now works on container hosts without systemd. Previously only some containers worked, while others required rootfull or rootless Podman, but would not work with both. Some containers did not work at all.
- ansible-test - Podman on WSL2 is now supported.
- ansible-test - When additional cgroup setup is required on the container host, this will be automatically detected. Instructions on how to configure the host will be provided in the error message shown.
* Minor Changes
- ansible-test - A new audit option is available when running custom containers. This option can be used to indicate whether a container requires the AUDIT_WRITE capability. The default is required, which most containers will need when using Podman. If necessary, the none option can be used to opt-out of the capability. This has no effect on Docker, which always provides the capability.
- ansible-test - A new cgroup option is available when running custom containers. This option can be used to indicate a container requires cgroup v1 or that it does not use cgroup. The default behavior assumes the container works with cgroup v2 (as well as v1).
- ansible-test - Additional log details are shown when containers fail to start or SSH connections to containers fail.
- ansible-test - Connection failures to remote provisioned hosts now show failure details as a warning.
- ansible-test - Containers included with ansible-test no longer disable seccomp by default.
- ansible-test - Failure to connect to a container over SSH now results in a clear error. Previously tests would be attempted even after initial connection attempts failed.
- ansible-test - Integration tests can be excluded from retries triggered by the --retry-on-error option by adding the retry/never alias. This is useful for tests that cannot pass on a retry or are too slow to make retries useful.
- ansible-test - More details are provided about an instance when provisioning fails.
- ansible-test - Reduce the polling limit for SSHD startup in containers from 60 retries to 10. The one second delay between retries remains in place.
- ansible-test - SSH connections from OpenSSH 8.8+ to CentOS 6 containers now work without additional configuration. However, clients older than OpenSSH 7.0 can no longer connect to CentOS 6 containers as a result. The container must have centos6 in the image name for this work-around to be applied.
- ansible-test - SSH shell connections from OpenSSH 8.8+ to ansible-test provisioned network instances now work without additional configuration. However, clients older than OpenSSH 7.0 can no longer open shell sessions for ansible-test provisioned network instances as a result.
- ansible-test - The ansible-test env command now detects and reports the container ID if running in a container.
- ansible-test - Unit tests now support network disconnect by default when running under Podman. Previously this feature only worked by default under Docker.
- ansible-test - Use stop --time 0 followed by rm to remove ephemeral containers instead of rm -f. This speeds up teardown of ephemeral containers.
- ansible-test - Warnings are now shown when using containers that were built with VOLUME instructions.
- ansible-test - When setting the max open files for containers, the container host's limit will be checked. If the host limit is lower than the preferred value, it will be used and a warning will be shown.
- ansible-test - When using Podman, ansible-test will detect if the loginuid used in containers is incorrect. When this occurs a warning is displayed and the container is run with the AUDIT_CONTROL capability. Previously containers would fail under this situation, with no useful warnings or errors given.
* Bugfixes
- Correctly count rescued tasks in play recap (#79711)
- Fix traceback when using the template module and running with ANSIBLE_DEBUG=1 (#79763)
- Fix using GALAXY_IGNORE_CERTS in conjunction with collections in requirements files which specify a specific source that isn't in the configured servers.
- Fix using GALAXY_IGNORE_CERTS when downloading tarballs from Galaxy servers (#79557).
- Module and role argument validation - include the valid suboption choices in the error when an invalid suboption is provided.
- ansible-doc now will correctly display short descriptions on listing filters/tests no matter the directory sorting.
- ansible-inventory will not explicitly sort groups/hosts anymore, giving a chance (depending on output format) to match the order in the input sources.
- ansible-test - Added a work-around for a traceback under Python 3.11 when completing certain command line options.
- ansible-test - Avoid using exec after container startup when possible. This improves container startup performance and avoids intermittent startup issues with some old containers.
- ansible-test - Connection attempts to managed remote instances no longer abort on Permission denied errors.
- ansible-test - Detection for running in a Podman or Docker container has been fixed to detect more scenarios. The new detection relies on /proc/self/mountinfo instead of /proc/self/cpuset. Detection now works with custom cgroups and private cgroup namespaces.
- ansible-test - Fix validate-modules error when retrieving PowerShell argspec when retrieved inside a Cmdlet
- ansible-test - Handle server errors when executing the docker info command.
- ansible-test - Multiple containers now work under Podman without specifying the --docker-network option.
- ansible-test - Pass the XDG_RUNTIME_DIR environment variable through to container commands.
- ansible-test - Perform PyPI proxy configuration after instances are ready and bootstrapping has been completed. Only target instances are affected, as controller instances were already handled this way. This avoids proxy configuration errors when target instances are not yet ready for use.
- ansible-test - Prevent concurrent / repeat inspections of the same container image.
- ansible-test - Prevent concurrent / repeat pulls of the same container image.
- ansible-test - Prevent concurrent execution of cached methods.
- ansible-test - Show the exception type when reporting errors during instance provisioning.
- ansible-test sanity - correctly report invalid YAML in validate-modules (#75837).
- argument spec validation - again report deprecated parameters for Python-based modules. This was accidentally removed in ansible-core 2.11 when argument spec validation was refactored (#79680, #79681).
- argument spec validation - ensure that deprecated aliases in suboptions are also reported (#79740).
- argument spec validation - fix warning message when two aliases of the same option are used for suboptions to also mention the option's name they are in (#79740).
- connection local now avoids traceback on invalid user being used to execuet ansible (valid in host, but not in container).
- file - touch action in check mode was always returning ok. Fix now evaluates the different conditions and returns the appropriate changed status. (#79360)
- get_url - Ensure we are passing ciphers to all url_get calls (#79717)
- plugin filter now works with rejectlist as documented (still falls back to blacklist if used).
- uri - improve JSON content type detection
* Known Issues
- ansible-test - Additional configuration may be required for certain container host and container combinations. Further details are available in the testing documentation.
- ansible-test - Custom containers with VOLUME instructions may be unable to start, when previously the containers started correctly. Remove the VOLUME instructions to resolve the issue. Containers with this condition will cause ansible-test to emit a warning.
- ansible-test - Systems with Podman networking issues may be unable to run containers, when previously the issue went unreported. Correct the networking issues to continue using ansible-test with Podman.
- ansible-test - Using Docker on systems with SELinux may require setting SELinux to permissive mode. Podman should work with SELinux in enforcing mode.
-------------------------------------------------------------------
Wed Dec 7 06:27:06 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.14.1:
Full changelog https://github.com/ansible/ansible/blob/v2.14.1/changelogs/CHANGELOG-v2.14.rst
* Minor Changes
- ansible-test - Improve consistency of executed pylint commands by making the plugins ordered.
* Bugfixes
- Fixes leftover _valid_attrs usage.
- ansible-galaxy - make initial call to Galaxy server on-demand only when installing, getting info about, and listing roles.
- copy module will no longer move 'non files' set as src when remote_src=true.
- display - reduce risk of post-fork output deadlocks (#79522)
- jinja2_native: preserve quotes in strings (#79083)
- updated error messages to include 'acl' and not just mode changes when failing to set required permissions on remote.
-------------------------------------------------------------------
Sat Nov 26 20:48:55 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- fix boo#1204320
- do no longer exclude %{ansible_python_sitelib}/ansible_test
- create subpackage for ansible-test
- remove Conflicts for ansible-test
-------------------------------------------------------------------
Fri Nov 25 07:03:33 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- rework spec file to define %ansible_python version, which is the
python version, that ansible is built against, as well as
%ansible_python_sitelib
- remove duplicate entries for changelog and license
- fix wrong %fdupes
-------------------------------------------------------------------
Wed Nov 23 10:13:04 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- add version contraints for both Requires and BuildRequires,
that upstream defines:
https://github.com/ansible/ansible/blob/devel/requirements.txt
-------------------------------------------------------------------
Thu Nov 17 13:48:58 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.14.0:
Full changelog https://github.com/ansible/ansible/blob/v2.14.0/changelogs/CHANGELOG-v2.14.rst
-------------------------------------------------------------------
Tue Nov 15 10:31:44 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.13.6:
Changelog https://github.com/ansible/ansible/blob/v2.13.6/changelogs/CHANGELOG-v2.13.rst
* Minor Changes
- ansible-test - Improve consistency of version specific documentation links.
* Bugfixes
- BSD network facts - Do not assume column indexes, look for netmask and broadcast for determining the correct columns when parsing inet line (#79117)
- ansible-galaxy - make initial call to Galaxy server on-demand only when installing, getting info about, and listing roles.
- ansible-test - Add wheel < 0.38.0 constraint for Python 3.6 and earlier.
- ansible-test - Fix broken documentation link for aws test plugin error messages.
- copy module will no longer move 'non files' set as src when remote_src=true.
- file lookup now handles missing files more gracefully.
- service_facts - Use python re to parse service output instead of grep (#78541)
- updated error messages to include 'acl' and not just mode changes when failing to set required permissions on remote.
-------------------------------------------------------------------
Wed Oct 12 04:50:21 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.13.5:
Changelog https://github.com/ansible/ansible/blob/v2.13.5/changelogs/CHANGELOG-v2.13.rst
* Bugfixes
- ansible-galaxy - remove extra server api call during dependency resolution for requirements and dependencies that are already satisfied (#77443).
- ansible-test - Allow disabled, unsupported, unstable and destructive integration test targets to be selected using their respective prefixes.
- ansible-test - Allow unstable tests to run when targeted changes are made and the --allow-unstable-changed option is specified (resolves #74213).
- apt - Fix module failure when a package is not installed and only_upgrade=True. Skip that package and check the remaining requested packages for upgrades. (#78762)
- apt module should not traceback on invalid type given as package. issue 78663.
- known_hosts - do not return changed status when a non-existing key is removed (#78598)
- paramiko - Add back support for ssh_args, ssh_common_args, and ssh_extra_args for parsing the ProxyCommand (#78750)
- plugin loader, fix detection for existing configuration before initializing for a plugin
-------------------------------------------------------------------
Wed Oct 12 00:27:53 UTC 2022 - Steve Kowalik <steven.kowalik@suse.com>
- Remove unneeded BuildRequires on python3-mock
-------------------------------------------------------------------
Thu Oct 6 08:53:15 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- add Conflict with ansible-test
-------------------------------------------------------------------
Wed Sep 14 05:42:48 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.13.4:
Changelog https://github.com/ansible/ansible/blob/v2.13.4/changelogs/CHANGELOG-v2.13.rst
* Bugfixes
- Fix for network_cli not getting all relevant connection options
- ansible-galaxy - Fix detection of --role-file in arguments for implicit role invocation (#78204)
- ansible-galaxy - Fix exit codes for role search and delete (#78516)
- ansible-test - Fix change detection for ansible-test's own integration tests.
- ansible-test - ansible-doc sanity test - Correctly determine the fully-qualified collection name for plugins in subdirectories, resolving #78490.
- apt - don't actually update the cache in check mode with update_cache=true.
- apt - don't mark existing packages as manually installed in check mode (#66413).
- apt - fix package selection to include /etc/apt/preferences(.d) (#77969)
- urls - Guard imports of urllib3 by catching Exception instead of ImportError to prevent exceptions in the import process of optional dependencies from preventing use of urls.py (#78648)
- wait_for - Read file and perform comparisons using bytes to avoid decode errors (#78214)
-------------------------------------------------------------------
Wed Sep 7 13:09:23 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.13.3:
Changelog https://github.com/ansible/ansible/blob/v2.13.3/changelogs/CHANGELOG-v2.13.rst
* Bugfixes
- Avoid 'unreachable' error when chmod on AIX has 255 as return code.
- Fix PluginLoader to mimic Python import machinery by adding module to sys.modules before exec
- Fix dnf module documentation to indicate that comparison operators for package version require spaces around them (#78295)
- ansible-connection - decrypt vaulted parameters before sending over the socket, as vault secrets are not available on the other side.
- ansible-galaxy - Fix reinitializing the whole collection directory with ansible-galaxy collection init ns.coll --force. Now directories and files that are not included in the collection skeleton will be removed.
- ansible-galaxy - do not require mandatory keys in the galaxy.yml of source collections when listing them (#70180).
- ansible-galaxy - fix listing collections that contains metadata but the namespace or name are not strings.
- ansible-galaxy - fix setting the cache for paginated responses from Galaxy NG/AH (#77911).
- ansible-test - Delegation for commands which generate output for programmatic consumption no longer redirect all output to stdout. The affected commands and options are shell, sanity --lint, sanity --list-tests, integration --list-targets, coverage analyze
- ansible-test - Delegation now properly handles arguments given after -- on the command line.
- ansible-test - Test configuration for collections is now parsed only once, prior to delegation. Fixes issue: #78334
- ansible-test - The shell command no longer redirects all output to stdout when running a provided command. Any command output written to stderr will be mixed with the stderr output from ansible-test.
- ansible-test - The shell command no longer requests a TTY when using delegation unless an interactive shell is being used. An interactive shell is the default behavior when no command is given to pass to the shell.
- dnf - fix output parsing on systems with LANGUAGE set to a language other than English (#78193)
- if a config setting prevents running ansible it should at least show it's "origin".
- prevent type annotation shim failures from causing runtime failures (#77860)
- template module/lookup - fix convert_data option that was effectively always set to True for Jinja macros (#78141)
- uri - properly use uri parameter use_proxy (#58632)
- yum - fix traceback when releasever is specified with latest (#78058)
-------------------------------------------------------------------
Wed Jul 20 08:01:46 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- package conflicts with ansible < 3, i.e. the old packaging scheme
-------------------------------------------------------------------
Wed Jul 20 06:46:22 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- update to 2.13.2:
* Minor Changes
- ansible-test - An improved error message is shown when the download of a pip bootstrap script fails. The download now uses urllib2 instead of urllib on Python 2.
* Bugfixes
- Move undefined check from concat to finalize (#78156)
- ansible-doc - no longer list module and plugin aliases that are created with symlinks (#78137).
- ansible-doc - when listing modules in collections, proceed recursively. This fixes module listing for community.general 5.x.y and community.network 4.x.y (#78137).
- ansible-doc will not add 'website for' in ":ref:" substitutions as it made them confusing.
- file backed cache plugins now handle concurrent access by making atomic updates to the files.
- password lookup does not ignore k=v arguments anymore.
- user - Fix error "Permission denied" in user module while generating SSH keys (#78017).
- update to 2.13.1:
* Minor Changes
- Add an 'action_plugin' field for modules in runtime.yml plugin_routing.
This fixes module_defaults by supporting modules-as-redirected-actions without redirecting module_defaults entries to the common action.
With the runtime.yml above for ns.coll, a task such as
will end up with defaults for eos_facts and eos_command since both modules redirect to the same action.
To select an action plugin for a module without merging module_defaults, define an action_plugin field for the resolved module in the runtime.yml.
The action_plugin field can be a redirected action plugin, as it is resolved normally.
Using the modified runtime.yml, the example task will only use the ns.coll.eos_facts defaults.
- ansible-galaxy - Support resolvelib versions 0.6.x, 0.7.x, and 0.8.x. The full range of supported versions is now >= 0.5.3, < 0.9.0.
- ansible-test - Add RHEL 9.0 remote support.
- ansible-test - Add support for Ubuntu VMs using the --remote option.
- ansible-test - Add support for exporting inventory with ansible-test shell --export {path}.
- ansible-test - Add support for multi-arch remotes.
- ansible-test - Add support for running non-interactive commands with ansible-test shell.
- ansible-test - Avoid using the mock_use_standalone_module setting for unit tests running on Python 3.8 or later.
- ansible-test - Blocking mode is now enforced for stdin, stdout and stderr. If any of these are non-blocking then ansible-test will exit during startup with an error.
- ansible-test - Improve consistency of output messages by using stdout or stderr for most output, but not both.
- ansible-test - The shell command can be used outside a collection if no controller delegation is required.
* Bugfixes
- Add PyYAML >= 5.1 as a dependency of ansible-core to be compatible with Python 3.8+.
- ansible-config dump - Only display plugin type headers when plugin options are changed if --only-changed is specified.
- ansible-galaxy - handle unsupported versions of resolvelib gracefully.
- ansible-test - Fix internal validation of remote completion configuration.
- ansible-test - Prevent --target- prefixed options for the shell command from being combined with legacy environment options.
- ansible-test - Sanity test output with the --lint option is no longer mixed in with bootstrapping output.
- ansible-test - Subprocesses are now isolated from the stdin, stdout and stderr of ansible-test. This avoids issues with subprocesses tampering with the file descriptors, such as SSH making them non-blocking. As a result of this change, subprocess output from unit and integration tests on stderr now go to stdout.
- ansible-test - Subprocesses no longer have access to the TTY ansible-test is connected to, if any. This maintains consistent behavior between local testing and CI systems, which typically do not provide a TTY. Tests which require a TTY should use pexpect or another mechanism to create a PTY.
- apt module now correctly handles virtual packages.
- lookup plugin - catch KeyError when lookup returns dictionary (#77789).
- pip - fix cases where resolution of pip Python module fails when importlib.util has not already been imported
- plugin loader - Sort results when fuzzy matching plugin names (#77966).
- plugin loader will now load config data for plugin by name instead of by file to avoid issues with the same file being loaded under different names (fqcn + short name).
- psrp connection now handles default to inventory_hostname correctly.
- winrm connection now handles default to inventory_hostname correctly.
- update to 2.13.0:
Full changelog see
https://github.com/ansible/ansible/blob/stable-2.13/changelogs/CHANGELOG-v2.13.rst#v2130
- update to 2.12.7:
* Minor Changes
- Add an 'action_plugin' field for modules in runtime.yml plugin_routing.
This fixes module_defaults by supporting modules-as-redirected-actions without redirecting module_defaults entries to the common action.
With the runtime.yml above for ns.coll, a task such as
will end up with defaults for eos_facts and eos_command since both modules redirect to the same action.
To select an action plugin for a module without merging module_defaults, define an action_plugin field for the resolved module in the runtime.yml.
The action_plugin field can be a redirected action plugin, as it is resolved normally.
Using the modified runtime.yml, the example task will only use the ns.coll.eos_facts defaults.
- ansible-test - Avoid using the mock_use_standalone_module setting for unit tests running on Python 3.8 or later.
* Bugfixes
- pip - fix cases where resolution of pip Python module fails when importlib.util has not already been imported
- plugin loader - Sort results when fuzzy matching plugin names (#77966).
- update to 2.12.6:
* Bugfixes
- Prevent losing unsafe on results returned from lookups (#77535)
- arg_spec - Fix incorrect no_log warning when a parameter alias is used (#77576)
- plugin loader will now load config data for plugin by name instead of by file to avoid issues with the same file being loaded under different names (fqcn + short name).
- variablemanager, more efficient read of vars files
- update to 2.12.5:
* Bugfixes
- Ansible.ModuleUtils.SID - Use user principal name as is for lookup in the Convert-ToSID function - #77316
- Fix traceback when installing a collection from a git repository and git is not installed (#77479).
- ansible-test - Correctly detect when running as the root user (UID 0) on the origin host. The result of the detection was incorrectly being inverted.
- ansible-test - Fix skipping of tests marked needs/python on the origin host.
- ansible-test - Fix skipping of tests marked needs/root on the origin host.
- ansible-test compile sanity test - do not crash if a column could not be determined for an error (#77465).
- hostname - use file_get_content() to read the file containing the host name in the FileStrategy.get_permanent_hostname() method. This prevents a TypeError from being raised when the strategy is used (#77025).
- script - skip in check mode since the plugin cannot determine if a change will occur.
- shell/command - only skip in check mode if the options creates and removes are both None.
- winrm - Ensure kinit is run with the same PATH env var as the Ansible process
-------------------------------------------------------------------
Sat Apr 23 19:57:33 UTC 2022 - Johannes Kastl <kastl@b1-systems.de>
- first version of package ansible-core at version 2.12.4

221
ansible-core.spec Normal file
View File

@ -0,0 +1,221 @@
#
# spec file for package ansible-core
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?sle15_python_module_pythons}
%if 0%{?suse_version} < 1550
# Leap15, SLES15
%if %pythons == "python310"
%define ansible_python python310
%define ansible_python_executable python3.10
%define ansible_python_sitelib %python310_sitelib
%endif
%if %pythons == "python311"
%define ansible_python python311
%define ansible_python_executable python3.11
%define ansible_python_sitelib %python311_sitelib
%endif
%else
# Tumbleweed
%define pythons python3
%define ansible_python python3
%define ansible_python_executable python3
%define ansible_python_sitelib %python3_sitelib
%endif
Name: ansible-core
Version: 2.15.8
Release: 0
Summary: Radically simple IT automation
License: GPL-3.0-or-later
URL: https://ansible.com/
Source: https://files.pythonhosted.org/packages/source/a/ansible-core/ansible-core-%{version}.tar.gz
BuildArch: noarch
# cannot be installed with ansible < 3 or ansible-base
Conflicts: ansible < 3
Conflicts: ansible-base
# https://github.com/ansible/ansible/blob/devel/setup.cfg#L40
BuildRequires: %{ansible_python}-base >= 3.9
BuildRequires: %{ansible_python}-setuptools
BuildRequires: fdupes
BuildRequires: python-rpm-macros
# importlib_resources not required, as we are using python 3.10 or higher
# SECTION test requirements
BuildRequires: %{ansible_python}-botocore
BuildRequires: %{ansible_python}-Jinja2 >= 3.0.0
BuildRequires: %{ansible_python}-PyYAML >= 5.1
BuildRequires: %{ansible_python}-cryptography
BuildRequires: %{ansible_python}-curses
BuildRequires: %{ansible_python}-packaging
BuildRequires: %{ansible_python}-pytest
BuildRequires: %{ansible_python}-pytz
# https://github.com/ansible/ansible/blob/devel/requirements.txt
BuildRequires: (%{ansible_python}-resolvelib >= 0.5.3 with %{ansible_python}-resolvelib < 1.1.0)
# /SECTION
# SECTION docs
BuildRequires: %{ansible_python}-docutils
# /SECTION
Requires: %{ansible_python}-Jinja2 >= 3.0.0
Requires: %{ansible_python}-PyYAML >= 5.1
Requires: %{ansible_python}-cryptography
Requires: %{ansible_python}-packaging
# https://github.com/ansible/ansible/blob/devel/requirements.txt
# importlib_resources not required, as we are using python 3.10 or higher
Requires: (%{ansible_python}-resolvelib >= 0.5.3 with %{ansible_python}-resolvelib < 1.1.0)
# ansible-documentation is a separate package since 2.15.3
Recommends: ansible-documentation
%description
Ansible is a radically simple IT automation system. It handles
configuration management, application deployment, cloud provisioning,
ad-hoc task execution, network automation, and multi-node orchestration. Ansible makes complex
changes like zero-downtime rolling updates with load balancers easy. More information on the Ansible `website <https://ansible.com/>`_.
%package -n ansible-test
Summary: Tool for testing ansible plugin and module code
Requires: %{name} = %{version}
BuildRequires: %{ansible_python}-virtualenv
Requires: %{ansible_python}-virtualenv
%description -n ansible-test
This package installs the ansible-test command for testing modules and plugins
developed for ansible.
Ansible is a radically simple model-driven configuration management, multi-node
deployment, and remote task execution system. Ansible works over SSH and does
not require any software or daemons to be installed on remote nodes. Extension
modules can be written in any language and are transferred to managed machines
automatically.
%prep
%setup -q -n ansible-core-%{version}
for file in .git_keep .travis.yml ; do
find . -name "$file" -delete
done
# Replace all #!/usr/bin/env lines to use #!/usr/bin/$1 directly.
find ./ -type f -exec \
sed -i '1s|^#!%{_bindir}/env |#!%{_bindir}/|' {} \;
# Replace all #!/usr/bin/python lines to use %{ansible_python_executable} directly.
find ./ -type f -exec \
sed -i '1s|^#!%{_bindir}/python$|#!%{_bindir}/%{ansible_python_executable}|' {} \;
%build
%python_build
mkdir man1
%{ansible_python_executable} packaging/cli-doc/build.py man --output-dir ./man1
%install
%python_install
%fdupes %{buildroot}%{ansible_python_sitelib}
mkdir -p %{buildroot}%{_sysconfdir}/ansible/
mkdir -p %{buildroot}/%{_mandir}/man1/
mkdir -p %{buildroot}/%{_datadir}/ansible
# Create system directories that Ansible defines as default locations in
# ansible/config/base.yml
DATADIR_LOCATIONS='%{_datadir}/ansible/collections
%{_datadir}/ansible/plugins/doc_fragments
%{_datadir}/ansible/plugins/action
%{_datadir}/ansible/plugins/become
%{_datadir}/ansible/plugins/cache
%{_datadir}/ansible/plugins/callback
%{_datadir}/ansible/plugins/cliconf
%{_datadir}/ansible/plugins/connection
%{_datadir}/ansible/plugins/filter
%{_datadir}/ansible/plugins/httpapi
%{_datadir}/ansible/plugins/inventory
%{_datadir}/ansible/plugins/lookup
%{_datadir}/ansible/plugins/modules
%{_datadir}/ansible/plugins/module_utils
%{_datadir}/ansible/plugins/netconf
%{_datadir}/ansible/roles
%{_datadir}/ansible/plugins/strategy
%{_datadir}/ansible/plugins/terminal
%{_datadir}/ansible/plugins/test
%{_datadir}/ansible/plugins/vars'
UPSTREAM_DATADIR_LOCATIONS=$(grep -ri default lib/ansible/config/base.yml| tr ':' '\n' | grep '%{_datadir}/ansible')
if [ "$SYSTEM_LOCATIONS" != "$UPSTREAM_SYSTEM_LOCATIONS" ] ; then
echo "The upstream Ansible datadir locations have changed. Spec file needs to be updated"
exit 1
fi
mkdir -p %{buildroot}%{_datadir}/ansible/plugins/
for location in $DATADIR_LOCATIONS ; do
mkdir %{buildroot}"$location"
done
mkdir -p %{buildroot}%{_sysconfdir}/ansible/
mkdir -p %{buildroot}%{_sysconfdir}/ansible/roles/
# fix for https://github.com/ansible/ansible/pull/24381
# resp. https://bugzilla.opensuse.org/show_bug.cgi?id=1137479
mkdir -p %{buildroot}%{ansible_python_sitelib}/ansible/galaxy/data/default/role/{files,templates}
# fix shebangs in scripts
sed -i "1{/python3/d;}" %{buildroot}/%{ansible_python_sitelib}/ansible/cli/*.py
sed -i "1{/python3/d;}" %{buildroot}/%{ansible_python_sitelib}/ansible/cli/scripts/ansible_connection_cli_stub.py
sed -i "1{/python3/d;}" %{buildroot}/%{ansible_python_sitelib}/ansible/modules/hostname.py
mkdir -p %{buildroot}/%{_mandir}/man1/
cp -v ./man1/*.1 %{buildroot}/%{_mandir}/man1/
%check
# NEVER ship untested pure python packages. Enable this before the final submit.
#python3 bin/ansible-test units -v --python %%{python3_version}
%files
%doc changelogs/CHANGELOG-v2.15.rst changelogs/changelog.yaml
%license COPYING licenses/Apache-License.txt licenses/MIT-license.txt licenses/PSF-license.txt licenses/simplified_bsd.txt
%{_bindir}/ansible
%{_bindir}/ansible-config
%{_bindir}/ansible-connection
%{_bindir}/ansible-console
%{_bindir}/ansible-doc
%{_bindir}/ansible-galaxy
%{_bindir}/ansible-inventory
%{_bindir}/ansible-playbook
%{_bindir}/ansible-pull
%{_bindir}/ansible-vault
%{ansible_python_sitelib}/ansible
%{ansible_python_sitelib}/ansible_core-%{version}*-info
%{_mandir}/man1/ansible.1%{?ext_man}*
%{_mandir}/man1/ansible-config.1%{?ext_man}*
%{_mandir}/man1/ansible-console.1%{?ext_man}*
%{_mandir}/man1/ansible-doc.1%{?ext_man}*
%{_mandir}/man1/ansible-galaxy.1%{?ext_man}*
%{_mandir}/man1/ansible-inventory.1%{?ext_man}*
%{_mandir}/man1/ansible-playbook.1%{?ext_man}*
%{_mandir}/man1/ansible-pull.1%{?ext_man}*
%{_mandir}/man1/ansible-vault.1%{?ext_man}*
%dir %{_sysconfdir}/ansible
%{_datadir}/ansible/
%files -n ansible-test
%{_bindir}/ansible-test
%{ansible_python_sitelib}/ansible_test
%changelog