Compare commits

...

42 Commits

Author SHA1 Message Date
Felix Fontein
2b22a3c60b Release 11.4.6. 2026-03-23 21:15:32 +01:00
patchback[bot]
4f418ce747 [PR #11656/4dad53ab backport][stable-11] counter_enabled callback: honor display_ok_hosts setting (#11666)
counter_enabled callback: honor display_ok_hosts setting (#11656)

* fix(callback/counter_enabled): honor display_ok_hosts setting

* add changelog frag

* Update changelogs/fragments/11656-counter_enabled-display_ok_hosts.yml

(cherry picked from commit 4dad53abac)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2026-03-23 20:34:32 +01:00
Felix Fontein
fb26dbfa31 Prepare 11.4.6. 2026-03-22 20:34:40 +01:00
patchback[bot]
4bd1bb8c2a [PR #11645/a09e879f backport][stable-11] xfconf: fix boolean return values (#11649)
xfconf: fix boolean return values (#11645)

* xfconf: fix boolean return values

* add changelog frag

(cherry picked from commit a09e879ff2)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2026-03-22 20:33:24 +01:00
patchback[bot]
a742525c89 [PR #11631/b4336659 backport][stable-11] CI: Remove FreeBSD 14.3 for devel, and replace macOS 15.3 with 26.3 (#11633)
CI: Remove FreeBSD 14.3 for devel, and replace macOS 15.3 with 26.3 (#11631)

* Replace FreeBSD 14.3 with 14.4, and macOS 15.3 with 26.3.

* FreeBSD 14.4 seems to have the same problem as FreeBSD 15.0, disabling for now.

(cherry picked from commit b4336659f6)

Co-authored-by: Felix Fontein <felix@fontein.de>
2026-03-21 21:13:53 +01:00
Felix Fontein
badfef8070 [stable-11] CI: Replace apt_repository and apt_key with deb822_repository (#11625) (#11628)
CI: Replace apt_repository and apt_key with deb822_repository (#11625)

Replace apt_repository and apt_key with deb822_repository.

(cherry picked from commit bc22fbcaa0)
2026-03-20 08:06:15 +01:00
patchback[bot]
33ed69bc93 [PR #11612/5e4fbfee backport][stable-11] Update BOTMETA.yml (#11615)
Update BOTMETA.yml (#11612)

remove myself from teams

(cherry picked from commit 5e4fbfeee0)

Co-authored-by: Anatoly Pugachev <matorola@gmail.com>
2026-03-18 07:05:02 +01:00
patchback[bot]
8736ff46f2 [PR #11541/4cd91ba4 backport][stable-11] Fix templating bug in iptables_state tests (#11571)
Fix templating bug in iptables_state tests (#11541)

* Fix templating bug in iptables_state tests.

* Try to install older packages on RHEL.

(cherry picked from commit 4cd91ba4d4)

Co-authored-by: Felix Fontein <felix@fontein.de>
2026-03-11 22:15:49 +01:00
patchback[bot]
543a292f4b [PR #11548/2f33ff10 backport][stable-11] keycloak_authentication: fix TypeError when flow has no authenticationExecutions (#11564)
keycloak_authentication: fix TypeError when flow has no authenticationExecutions (#11548)

* TIAAS-12174: fix(keycloak_authentication): handle None authenticationExecutions

When a flow is defined without authenticationExecutions, module.params.get()
returns None but the key still exists in the config dict. The 'in' check
passes but iterating over None raises TypeError.

Guard the iteration with an explicit None check.

* keycloak_authentication: add changelog fragment for NoneType fix

* keycloak_authentication: update changelog fragment with PR link

* Update plugins/modules/keycloak_authentication.py



* Changelog polishing

---------



(cherry picked from commit 2f33ff1041)

Co-authored-by: Ivan Kokalovic <67540157+koke1997@users.noreply.github.com>
Co-authored-by: Ivan Kokalovic <ivan.kokalovic@example.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2026-03-10 06:57:43 +01:00
patchback[bot]
a93ae0c1ae [PR #11552/aaef821f backport][stable-11] Update links to iocage. Current iocage documentation is at freebsd.gi… (#11553)
Update links to iocage. Current iocage documentation is at freebsd.gi… (#11552)

Update links to iocage. Current iocage documentation is at freebsd.github.io/iocage/

(cherry picked from commit aaef821f60)

Co-authored-by: Vladimir Botka <vbotka@gmail.com>
2026-03-06 05:49:49 +00:00
Felix Fontein
b247603961 [stable-11] Update tests to pass on macOS arm64 (#11544) (#11546)
Update tests to pass on macOS arm64 (#11544)

(cherry picked from commit 9b9d8eac09)

Co-authored-by: Matt Clay <matt@mystile.com>
2026-02-27 19:29:50 +01:00
Felix Fontein
d91ff5c282 The next release will be 11.4.6. 2026-02-23 18:23:41 +01:00
Felix Fontein
c66a43aa27 Release 11.4.5. 2026-02-23 17:48:41 +01:00
Felix Fontein
30ac14bfc1 Prepare 11.4.5. 2026-02-22 16:40:03 +01:00
Felix Fontein
d9e48f0488 [stable-11] python_requirements_info: use importlib.metadata when available (#11495) (#11497)
python_requirements_info: use importlib.metadata when available (#11495)

Use importlib.metadata when available.

(cherry picked from commit 88adca3fb4)
2026-02-11 07:12:00 +01:00
patchback[bot]
80efe01bbf [PR #11484/63ddca7f backport][stable-11] supervisorctl: remove unstable tag from integration tests (#11492)
supervisorctl: remove unstable tag from integration tests (#11484)

(cherry picked from commit 63ddca7f21)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2026-02-10 21:51:15 +01:00
Felix Fontein
7bfdae02e9 The next release will be 11.4.5. 2026-01-26 18:45:47 +01:00
Felix Fontein
a552266120 Release 11.4.4. 2026-01-26 18:22:40 +01:00
patchback[bot]
2c16874370 [PR #11440/53e1e86b backport][stable-11] Logstash plugin version fix (#11449)
Logstash plugin version fix (#11440)

* logstash_plugin: fix argument order when using version parameter

* logstash_plugin: add integration tests

* logstash_plugin: add changelog fragment

(cherry picked from commit 53e1e86bcc)

Co-authored-by: Nicolas Boutet <amd3002@gmail.com>
2026-01-26 06:26:54 +01:00
Felix Fontein
275961b4ad Prepare 11.4.4. 2026-01-20 22:42:33 +01:00
Felix Fontein
c083b2fa6c [stable-11] Update ignore.txt (#11428)
Update ignore.txt.
2026-01-15 22:02:29 +01:00
Felix Fontein
cc32ee2889 Fix markup in changelog. 2026-01-11 14:28:14 +01:00
Felix Fontein
e677c46329 Make sure stable-12 CI runs in cron.
(cherry picked from commit 28b16eab66)
2026-01-11 00:43:16 +01:00
patchback[bot]
e90b6d0184 [PR #11417/a689bb8e backport][stable-11] CI: Arch Linux switched to Python 3.14 (#11419)
CI: Arch Linux switched to Python 3.14 (#11417)

Arch Linux switched to Python 3.14.

(cherry picked from commit a689bb8e8d)

Co-authored-by: Felix Fontein <felix@fontein.de>
2026-01-11 00:41:07 +01:00
patchback[bot]
c398c6bb96 [PR #11401/0e6ba072 backport][stable-11] Update CI pipelines (#11404)
Update CI pipelines (#11401)

Update CI pipelines:
- Fedora 42 -> 43 for devel
- RHEL 10.0 -> 10.1 for all ansible-core branches
- FreeBSD 13.5 -> 15.0 for devel
- Alpine 3.22 -> 3.23 for devel

(cherry picked from commit 0e6ba07261)

Co-authored-by: Felix Fontein <felix@fontein.de>
2026-01-08 12:28:37 +01:00
patchback[bot]
6185f06f64 [PR #11387/d4089ca2 backport][stable-11] Update RHEL 9.x to 9.7 in CI (#11392)
Update RHEL 9.x to 9.7 in CI (#11387)

* Update RHEL 9.x to 9.7 in CI.

* Add skips.

(cherry picked from commit d4089ca29a)

Co-authored-by: Felix Fontein <felix@fontein.de>
2026-01-06 18:17:59 +01:00
Felix Fontein
91ba894643 [stable-11] cloudflare_dns: also allow 128 as a value for flag (#11377) (#11384)
cloudflare_dns: also allow 128 as a value for flag (#11377)

* Also allow 128 as a value for flag.

* Forgot to add changelog fragment.

(cherry picked from commit c00fb4fb5c)
2026-01-05 18:57:35 +01:00
patchback[bot]
5807791c80 [PR #11357/ddf05104 backport][stable-11] Add missing integration test aliases files (#11371)
Add missing integration test aliases files (#11357)

* Add missing aliases files.

* Fix directory name.

* Add another missing aliases file.

* Adjust test to also work with newer jsonpatch versions.

(cherry picked from commit ddf05104f3)

Co-authored-by: Felix Fontein <felix@fontein.de>
2026-01-02 15:03:05 +01:00
patchback[bot]
378c73a2a1 [PR #11369/20ba59cc backport][stable-11] Added "See Also" section (#11373)
Added "See Also" section (#11369)

* Added "See Also" section

* Corrected seealso documentation

* Update ini_file.py

Removed seealso descriptions

* Update to_ini.py

Removed seealso descriptions

* Update from_ini.py

Removed seealso descriptions

(cherry picked from commit 20ba59cce6)

Co-authored-by: daomah <129229601+daomah@users.noreply.github.com>
2026-01-02 15:02:54 +01:00
Felix Fontein
a8e60d0358 The next release will be 11.4.4. 2025-12-29 15:21:16 +01:00
Felix Fontein
f2d6ac54e9 Release 11.4.3. 2025-12-29 14:46:32 +01:00
patchback[bot]
9d7fe2f0ae [PR #11332/280d269d backport][stable-11] fix: listen_ports_facts return no facts when using with podman (#11334)
fix: listen_ports_facts return no facts when using with podman (#11332)

* fix: listen_ports_facts return no facts when using with podman

* Update changelogs/fragments/listen-ports-facts-return-no-facts.yml



---------


(cherry picked from commit 280d269d78)

Co-authored-by: Daniel Gonçalves <dangoncalves@users.noreply.github.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-12-28 21:15:32 +01:00
Felix Fontein
57b3ce9572 Prepare 11.4.3. 2025-12-23 21:39:27 +01:00
patchback[bot]
405435236f [PR #11316/3debc968 backport][stable-11] Fixing documentation for scaleway_private_network module. (#11318)
Fixing documentation for scaleway_private_network module. (#11316)

(cherry picked from commit 3debc968a4)

Co-authored-by: Greg Harvey <greg.harvey@gmail.com>
2025-12-23 14:19:57 +01:00
patchback[bot]
538a701f89 [PR #11295/a5aec7d6 backport][stable-11] Fix typo in auth_username in examples (#11298)
Fix typo in auth_username in examples (#11295)

(cherry picked from commit a5aec7d61a)

Co-authored-by: Ivan Kokalovic <67540157+koke1997@users.noreply.github.com>
2025-12-19 21:10:10 +01:00
patchback[bot]
5d3132cfe0 [PR #11284/df349459 backport][stable-11] keycloak_authentication_required_actions: fix examples (#11287)
keycloak_authentication_required_actions: fix examples (#11284)

The correct parameter name is "required_actions" (plural).

(cherry picked from commit df34945991)

Co-authored-by: Samuli Seppänen <samuli.seppanen@puppeteers.net>
2025-12-15 19:25:04 +01:00
patchback[bot]
41690c84a2 [PR #11277/1b15e595 backport][stable-11] use FQCN for extending docs with files and url (#11282)
use FQCN for extending docs with files and url (#11277)

* use FQCN for extending docs with files and url

* remove typo

(cherry picked from commit 1b15e595e0)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2025-12-14 12:16:23 +01:00
patchback[bot]
5d9f58b69d [PR #11276/a96a5c44 backport][stable-11] sysrc tests: skip FreeBSD 14.2 for ezjail tests (#11279)
sysrc tests: skip FreeBSD 14.2 for ezjail tests (#11276)

Looks like 14.2 no longer works.

(cherry picked from commit a96a5c44a5)

Co-authored-by: Felix Fontein <felix@fontein.de>
2025-12-14 12:06:01 +01:00
Alexei Znamensky
b2f16f184a test(integration): monit: backport of PR 11255 (#11273)
* test(integration): monit: backport of PR 11255

* add changelog frag
2025-12-12 07:25:09 +01:00
patchback[bot]
bc61b2d656 [PR #11260/a977c6f7 backport][stable-11] fix(sanitize_cr): avoid crash when realmrep is empty (#11267)
fix(sanitize_cr): avoid crash when realmrep is empty (#11260)

* fix(docs): missing info on id when creating realms

* fix(sanitize_cr): avoid crash when realmrep is empty

* remove unrelated change

* remove unrelated change

* added changlog

* correct: changelogs

* Update changelogs



---------



(cherry picked from commit a977c6f7c1)

Co-authored-by: Guillaume Dorschner <44686652+GuillaumeDorschner@users.noreply.github.com>
Co-authored-by: Guillaume Dorschner <guillaume.dorschner@thalesgroup.com>
Co-authored-by: Felix Fontein <felix@fontein.de>
2025-12-08 23:03:21 +01:00
Alexei Znamensky
364e491b7e [stable-11] monit: fix check for pending (#11253)
* monit: fix check for pending

* add changelog frag

* adjust testcases
2025-12-03 19:19:55 +13:00
Felix Fontein
df3898b08c Next release will be 11.4.3. 2025-12-01 21:30:31 +01:00
71 changed files with 684 additions and 193 deletions

View File

@@ -29,6 +29,7 @@ schedules:
always: true
branches:
include:
- stable-12
- stable-11
- cron: 0 11 * * 0
displayName: Weekly (old stable branches)
@@ -170,10 +171,10 @@ stages:
parameters:
testFormat: devel/{0}
targets:
- name: Alpine 3.22
test: alpine/3.22
# - name: Fedora 42
# test: fedora/42
- name: Alpine 3.23
test: alpine/3.23
# - name: Fedora 43
# test: fedora/43
- name: Ubuntu 22.04
test: ubuntu/22.04
- name: Ubuntu 24.04
@@ -188,16 +189,18 @@ stages:
parameters:
testFormat: devel/{0}
targets:
- name: macOS 15.3
test: macos/15.3
- name: RHEL 10.0
test: rhel/10.0
- name: RHEL 9.6
test: rhel/9.6
- name: FreeBSD 14.3
test: freebsd/14.3
- name: FreeBSD 13.5
test: freebsd/13.5
- name: macOS 26.3
test: macos/26.3
- name: RHEL 10.1
test: rhel/10.1
- name: RHEL 9.7
test: rhel/9.7
# TODO: enable this ASAP!
# - name: FreeBSD 15.0
# test: freebsd/15.0
# TODO: enable this ASAP!
# - name: FreeBSD 14.4
# test: freebsd/14.4
groups:
- 1
- 2
@@ -210,8 +213,10 @@ stages:
parameters:
testFormat: 2.20/{0}
targets:
- name: RHEL 10.0
test: rhel/10.0
- name: macOS 15.3
test: macos/15.3
- name: RHEL 10.1
test: rhel/10.1
- name: FreeBSD 14.3
test: freebsd/14.3
groups:
@@ -226,10 +231,8 @@ stages:
parameters:
testFormat: 2.19/{0}
targets:
- name: RHEL 9.5
test: rhel/9.5
- name: RHEL 10.0
test: rhel/10.0
- name: RHEL 10.1
test: rhel/10.1
- name: FreeBSD 14.2
test: freebsd/14.2
groups:
@@ -246,8 +249,6 @@ stages:
targets:
- name: macOS 14.3
test: macos/14.3
- name: RHEL 9.4
test: rhel/9.4
- name: FreeBSD 14.1
test: freebsd/14.1
groups:
@@ -264,10 +265,10 @@ stages:
parameters:
testFormat: devel/linux/{0}
targets:
- name: Fedora 42
test: fedora42
- name: Alpine 3.22
test: alpine322
- name: Fedora 43
test: fedora43
- name: Alpine 3.23
test: alpine323
- name: Ubuntu 22.04
test: ubuntu2204
- name: Ubuntu 24.04
@@ -343,7 +344,7 @@ stages:
- name: Debian 13 Trixie
test: debian-13-trixie/3.13
- name: ArchLinux
test: archlinux/3.13
test: archlinux/3.14
groups:
- 1
- 2

4
.github/BOTMETA.yml vendored
View File

@@ -1592,7 +1592,7 @@ macros:
plugin_utils: plugins/plugin_utils
tests: plugins/test
team_ansible_core:
team_aix: MorrisA bcoca d-little flynn1973 gforster kairoaraujo marvin-sinister mator molekuul ramooncamacho wtcross
team_aix: MorrisA bcoca d-little flynn1973 gforster kairoaraujo marvin-sinister molekuul ramooncamacho wtcross
team_bsd: JoergFiedler MacLemon bcoca dch jasperla mekanix opoplawski overhacked tuxillo
team_consul: sgargan apollo13 Ilgmi
team_cyberark_conjur: jvanderhoof ryanprior
@@ -1614,7 +1614,7 @@ macros:
team_redfish: mraineri tomasg2012 xmadsen renxulei rajeevkallur bhavya06 jyundt
team_rhsm: cnsnyder ptoscano
team_scaleway: remyleone abarbare
team_solaris: bcoca fishman jasperla jpdasma mator scathatheworm troy2914 xen0l
team_solaris: bcoca fishman jasperla jpdasma scathatheworm troy2914 xen0l
team_suse: commel evrardjp lrupp AnderEnder alxgu andytom sealor
team_virt: joshainglis karmab Thulium-Drake Ajpantuso
team_wdc: mikemoerk

View File

@@ -2,61 +2,73 @@
**Topics**
- <a href="#v11-4-2">v11\.4\.2</a>
- <a href="#v11-4-6">v11\.4\.6</a>
- <a href="#release-summary">Release Summary</a>
- <a href="#minor-changes">Minor Changes</a>
- <a href="#bugfixes">Bugfixes</a>
- <a href="#v11-4-1">v11\.4\.1</a>
- <a href="#v11-4-5">v11\.4\.5</a>
- <a href="#release-summary-1">Release Summary</a>
- <a href="#bugfixes-1">Bugfixes</a>
- <a href="#v11-4-4">v11\.4\.4</a>
- <a href="#release-summary-2">Release Summary</a>
- <a href="#bugfixes-2">Bugfixes</a>
- <a href="#v11-4-3">v11\.4\.3</a>
- <a href="#release-summary-3">Release Summary</a>
- <a href="#bugfixes-3">Bugfixes</a>
- <a href="#v11-4-2">v11\.4\.2</a>
- <a href="#release-summary-4">Release Summary</a>
- <a href="#minor-changes">Minor Changes</a>
- <a href="#bugfixes-4">Bugfixes</a>
- <a href="#v11-4-1">v11\.4\.1</a>
- <a href="#release-summary-5">Release Summary</a>
- <a href="#minor-changes-1">Minor Changes</a>
- <a href="#security-fixes">Security Fixes</a>
- <a href="#bugfixes-1">Bugfixes</a>
- <a href="#bugfixes-5">Bugfixes</a>
- <a href="#v11-4-0">v11\.4\.0</a>
- <a href="#release-summary-2">Release Summary</a>
- <a href="#release-summary-6">Release Summary</a>
- <a href="#minor-changes-2">Minor Changes</a>
- <a href="#bugfixes-2">Bugfixes</a>
- <a href="#bugfixes-6">Bugfixes</a>
- <a href="#v11-3-0">v11\.3\.0</a>
- <a href="#release-summary-3">Release Summary</a>
- <a href="#release-summary-7">Release Summary</a>
- <a href="#minor-changes-3">Minor Changes</a>
- <a href="#deprecated-features">Deprecated Features</a>
- <a href="#bugfixes-3">Bugfixes</a>
- <a href="#bugfixes-7">Bugfixes</a>
- <a href="#new-plugins">New Plugins</a>
- <a href="#filter">Filter</a>
- <a href="#new-modules">New Modules</a>
- <a href="#v11-2-1">v11\.2\.1</a>
- <a href="#release-summary-4">Release Summary</a>
- <a href="#bugfixes-4">Bugfixes</a>
- <a href="#release-summary-8">Release Summary</a>
- <a href="#bugfixes-8">Bugfixes</a>
- <a href="#v11-2-0">v11\.2\.0</a>
- <a href="#release-summary-5">Release Summary</a>
- <a href="#release-summary-9">Release Summary</a>
- <a href="#minor-changes-4">Minor Changes</a>
- <a href="#deprecated-features-1">Deprecated Features</a>
- <a href="#bugfixes-5">Bugfixes</a>
- <a href="#bugfixes-9">Bugfixes</a>
- <a href="#new-plugins-1">New Plugins</a>
- <a href="#lookup">Lookup</a>
- <a href="#new-modules-1">New Modules</a>
- <a href="#v11-1-2">v11\.1\.2</a>
- <a href="#release-summary-6">Release Summary</a>
- <a href="#release-summary-10">Release Summary</a>
- <a href="#minor-changes-5">Minor Changes</a>
- <a href="#bugfixes-6">Bugfixes</a>
- <a href="#bugfixes-10">Bugfixes</a>
- <a href="#v11-1-1">v11\.1\.1</a>
- <a href="#release-summary-7">Release Summary</a>
- <a href="#release-summary-11">Release Summary</a>
- <a href="#minor-changes-6">Minor Changes</a>
- <a href="#bugfixes-7">Bugfixes</a>
- <a href="#bugfixes-11">Bugfixes</a>
- <a href="#v11-1-0">v11\.1\.0</a>
- <a href="#release-summary-8">Release Summary</a>
- <a href="#release-summary-12">Release Summary</a>
- <a href="#minor-changes-7">Minor Changes</a>
- <a href="#deprecated-features-2">Deprecated Features</a>
- <a href="#bugfixes-8">Bugfixes</a>
- <a href="#bugfixes-12">Bugfixes</a>
- <a href="#new-plugins-2">New Plugins</a>
- <a href="#callback">Callback</a>
- <a href="#new-modules-2">New Modules</a>
- <a href="#v11-0-0">v11\.0\.0</a>
- <a href="#release-summary-9">Release Summary</a>
- <a href="#release-summary-13">Release Summary</a>
- <a href="#minor-changes-8">Minor Changes</a>
- <a href="#deprecated-features-3">Deprecated Features</a>
- <a href="#removed-features-previously-deprecated">Removed Features \(previously deprecated\)</a>
- <a href="#security-fixes-1">Security Fixes</a>
- <a href="#bugfixes-9">Bugfixes</a>
- <a href="#bugfixes-13">Bugfixes</a>
- <a href="#known-issues">Known Issues</a>
- <a href="#new-plugins-3">New Plugins</a>
- <a href="#callback-1">Callback</a>
@@ -67,10 +79,68 @@
- <a href="#new-modules-3">New Modules</a>
This changelog describes changes after version 10\.0\.0\.
<a id="v11-4-6"></a>
## v11\.4\.6
<a id="release-summary"></a>
### Release Summary
Regular bugfix release\.
<a id="bugfixes"></a>
### Bugfixes
* counter\_enabled callback plugin \- fix plugin not observing <code>display\_ok\_hosts</code> option \([https\://github\.com/ansible\-collections/community\.general/issues/3978](https\://github\.com/ansible\-collections/community\.general/issues/3978)\, [https\://github\.com/ansible\-collections/community\.general/pull/11656](https\://github\.com/ansible\-collections/community\.general/pull/11656)\)\.
* keycloak\_authentication \- fix <code>TypeError</code> crash when a flow is defined without <code>authenticationExecutions</code> \([https\://github\.com/ansible\-collections/community\.general/issues/11547](https\://github\.com/ansible\-collections/community\.general/issues/11547)\, [https\://github\.com/ansible\-collections/community\.general/pull/11548](https\://github\.com/ansible\-collections/community\.general/pull/11548)\)\.
* xfconf \- representation of boolean properties was not consistent between Python and <code>xfconf\-query</code>\, leading to broken idempotency \([https\://github\.com/ansible\-collections/community\.general/pull/11645](https\://github\.com/ansible\-collections/community\.general/pull/11645)\)\.
<a id="v11-4-5"></a>
## v11\.4\.5
<a id="release-summary-1"></a>
### Release Summary
Regular bugfix release\.
<a id="bugfixes-1"></a>
### Bugfixes
* python\_requirements\_info \- use <code>importlib\.metadata</code> if <code>pkg\_resources</code> from <code>setuptools</code> cannot be imported\. That module has been removed from setuptools 82\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/issues/11491](https\://github\.com/ansible\-collections/community\.general/issues/11491)\, [https\://github\.com/ansible\-collections/community\.general/pull/11492](https\://github\.com/ansible\-collections/community\.general/pull/11492)\)\.
<a id="v11-4-4"></a>
## v11\.4\.4
<a id="release-summary-2"></a>
### Release Summary
Regular bugfix release\.
<a id="bugfixes-2"></a>
### Bugfixes
* cloudflare\_dns \- also allow <code>flag\=128</code> for CAA records \([https\://github\.com/ansible\-collections/community\.general/issues/11355](https\://github\.com/ansible\-collections/community\.general/issues/11355)\, [https\://github\.com/ansible\-collections/community\.general/pull/11377](https\://github\.com/ansible\-collections/community\.general/pull/11377)\)\.
* logstash\_plugin \- fix argument order when using <code>version</code> parameter\. The plugin name must come after options like <code>\-\-version</code> for the <code>logstash\-plugin</code> CLI to work correctly \([https\://github\.com/ansible\-collections/community\.general/issues/10745](https\://github\.com/ansible\-collections/community\.general/issues/10745)\, [https\://github\.com/ansible\-collections/community\.general/pull/11440](https\://github\.com/ansible\-collections/community\.general/pull/11440)\)\.
<a id="v11-4-3"></a>
## v11\.4\.3
<a id="release-summary-3"></a>
### Release Summary
Regular bugfix release\.
<a id="bugfixes-3"></a>
### Bugfixes
* keycloak\_realm \- fixed crash in <code>sanitize\_cr\(\)</code> when <code>realmrep</code> was <code>None</code> \([https\://github\.com/ansible\-collections/community\.general/pull/11260](https\://github\.com/ansible\-collections/community\.general/pull/11260)\)\.
* listen\_ports\_facts \- fix handling of empty PID lists when <code>command\=ss</code> \([https\://github\.com/ansible\-collections/community\.general/pull/11332](https\://github\.com/ansible\-collections/community\.general/pull/11332)\)\.
* monit \- add delay of 0\.5 seconds after state change and check for status \([https\://github\.com/ansible\-collections/community\.general/pull/11255](https\://github\.com/ansible\-collections/community\.general/pull/11255)\)\.
* monit \- internal state was not reflecting when operation is \"pending\" in <code>monit</code> \([https\://github\.com/ansible\-collections/community\.general/pull/11245](https\://github\.com/ansible\-collections/community\.general/pull/11245)\)\.
<a id="v11-4-2"></a>
## v11\.4\.2
<a id="release-summary"></a>
<a id="release-summary-4"></a>
### Release Summary
Regular bugfix release\.
@@ -80,7 +150,7 @@ Regular bugfix release\.
* tss lookup plugin \- fixed <code>AccessTokenAuthorizer</code> initialization to include <code>base\_url</code> parameter for proper token authentication \([https\://github\.com/ansible\-collections/community\.general/pull/11031](https\://github\.com/ansible\-collections/community\.general/pull/11031)\)\.
<a id="bugfixes"></a>
<a id="bugfixes-4"></a>
### Bugfixes
* cobbler\_system \- compare the version as a float which is the type returned by the Cobbler API \([https\://github\.com/ansible\-collections/community\.general/issues/11044](https\://github\.com/ansible\-collections/community\.general/issues/11044)\)\.
@@ -93,7 +163,7 @@ Regular bugfix release\.
<a id="v11-4-1"></a>
## v11\.4\.1
<a id="release-summary-1"></a>
<a id="release-summary-5"></a>
### Release Summary
Regular bugfix release\.
@@ -112,7 +182,7 @@ Regular bugfix release\.
* keycloak\_user \- the parameter <code>credentials\[\]\.value</code> is now marked as <code>no\_log\=true</code>\. Before it was logged by Ansible\, unless the task was marked as <code>no\_log\: true</code>\. Since this parameter can be used for passwords\, this resulted in credential leaking \([https\://github\.com/ansible\-collections/community\.general/issues/11000](https\://github\.com/ansible\-collections/community\.general/issues/11000)\, [https\://github\.com/ansible\-collections/community\.general/pull/11005](https\://github\.com/ansible\-collections/community\.general/pull/11005)\)\.
<a id="bugfixes-1"></a>
<a id="bugfixes-5"></a>
### Bugfixes
* cloudflare\_dns \- roll back changes to CAA record validation \([https\://github\.com/ansible\-collections/community\.general/issues/10934](https\://github\.com/ansible\-collections/community\.general/issues/10934)\, [https\://github\.com/ansible\-collections/community\.general/pull/10956](https\://github\.com/ansible\-collections/community\.general/pull/10956)\)\.
@@ -128,7 +198,7 @@ Regular bugfix release\.
<a id="v11-4-0"></a>
## v11\.4\.0
<a id="release-summary-2"></a>
<a id="release-summary-6"></a>
### Release Summary
Regular bugfix and feature release\.
@@ -143,7 +213,7 @@ Regular bugfix and feature release\.
* keycloak\_client \- add idempotent support for <code>optional\_client\_scopes</code> and <code>optional\_client\_scopes</code>\, and ensure consistent change detection between check mode and live run \([https\://github\.com/ansible\-collections/community\.general/issues/5495](https\://github\.com/ansible\-collections/community\.general/issues/5495)\, [https\://github\.com/ansible\-collections/community\.general/pull/10842](https\://github\.com/ansible\-collections/community\.general/pull/10842)\)\.
* pipx module\_utils \- use <code>PIPX\_USE\_EMOJI</code> to disable emojis in the output of <code>pipx</code> 1\.8\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10874](https\://github\.com/ansible\-collections/community\.general/pull/10874)\)\.
<a id="bugfixes-2"></a>
<a id="bugfixes-6"></a>
### Bugfixes
* Avoid usage of deprecated <code>ansible\.module\_utils\.six</code> in all code that does not have to support Python 2 \([https\://github\.com/ansible\-collections/community\.general/pull/10873](https\://github\.com/ansible\-collections/community\.general/pull/10873)\)\.
@@ -160,7 +230,7 @@ Regular bugfix and feature release\.
<a id="v11-3-0"></a>
## v11\.3\.0
<a id="release-summary-3"></a>
<a id="release-summary-7"></a>
### Release Summary
Regular bugfix and feature release\.
@@ -221,7 +291,7 @@ Regular bugfix and feature release\.
* oci\_vcn \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/issues/10318](https\://github\.com/ansible\-collections/community\.general/issues/10318)\, [https\://github\.com/ansible\-collections/community\.general/pull/10652](https\://github\.com/ansible\-collections/community\.general/pull/10652)\)\.
* oracle\* doc fragments \- fragments are deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/issues/10318](https\://github\.com/ansible\-collections/community\.general/issues/10318)\, [https\://github\.com/ansible\-collections/community\.general/pull/10652](https\://github\.com/ansible\-collections/community\.general/pull/10652)\)\.
<a id="bugfixes-3"></a>
<a id="bugfixes-7"></a>
### Bugfixes
* kdeconfig \- <code>kwriteconfig</code> executable could not be discovered automatically on systems with only <code>kwriteconfig6</code> installed\. <code>kwriteconfig6</code> can now be discovered by Ansible \([https\://github\.com/ansible\-collections/community\.general/issues/10746](https\://github\.com/ansible\-collections/community\.general/issues/10746)\, [https\://github\.com/ansible\-collections/community\.general/pull/10751](https\://github\.com/ansible\-collections/community\.general/pull/10751)\)\.
@@ -241,19 +311,19 @@ Regular bugfix and feature release\.
<a id="new-modules"></a>
### New Modules
* community\.general\.django\_dumpdata \- Wrapper for C\(django\-admin dumpdata\)\.
* community\.general\.django\_loaddata \- Wrapper for C\(django\-admin loaddata\)\.
* community\.general\.django\_dumpdata \- Wrapper for <code>django\-admin dumpdata</code>\.
* community\.general\.django\_loaddata \- Wrapper for <code>django\-admin loaddata</code>\.
* community\.general\.pacemaker\_stonith \- Manage Pacemaker STONITH\.
<a id="v11-2-1"></a>
## v11\.2\.1
<a id="release-summary-4"></a>
<a id="release-summary-8"></a>
### Release Summary
Bugfix release\.
<a id="bugfixes-4"></a>
<a id="bugfixes-8"></a>
### Bugfixes
* Avoid deprecated functionality in ansible\-core 2\.20 \([https\://github\.com/ansible\-collections/community\.general/pull/10687](https\://github\.com/ansible\-collections/community\.general/pull/10687)\)\.
@@ -265,7 +335,7 @@ Bugfix release\.
<a id="v11-2-0"></a>
## v11\.2\.0
<a id="release-summary-5"></a>
<a id="release-summary-9"></a>
### Release Summary
Regular bugfix and features release\.
@@ -308,7 +378,7 @@ Regular bugfix and features release\.
* github\_repo \- deprecate <code>force\_defaults\=true</code> \([https\://github\.com/ansible\-collections/community\.general/pull/10435](https\://github\.com/ansible\-collections/community\.general/pull/10435)\)\.
* rocketchat \- the default value for <code>is\_pre740</code>\, currently <code>true</code>\, is deprecated and will change to <code>false</code> in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10490](https\://github\.com/ansible\-collections/community\.general/pull/10490)\)\.
<a id="bugfixes-5"></a>
<a id="bugfixes-9"></a>
### Bugfixes
* jenkins\_plugin \- install latest compatible version instead of latest \([https\://github\.com/ansible\-collections/community\.general/issues/854](https\://github\.com/ansible\-collections/community\.general/issues/854)\, [https\://github\.com/ansible\-collections/community\.general/pull/10346](https\://github\.com/ansible\-collections/community\.general/pull/10346)\)\.
@@ -332,7 +402,7 @@ Regular bugfix and features release\.
<a id="v11-1-2"></a>
## v11\.1\.2
<a id="release-summary-6"></a>
<a id="release-summary-10"></a>
### Release Summary
Bugfix release\.
@@ -471,7 +541,7 @@ Bugfix release\.
* zypper \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
* zypper\_repository \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10513](https\://github\.com/ansible\-collections/community\.general/pull/10513)\)\.
<a id="bugfixes-6"></a>
<a id="bugfixes-10"></a>
### Bugfixes
* apk \- fix check for empty/whitespace\-only package names \([https\://github\.com/ansible\-collections/community\.general/pull/10532](https\://github\.com/ansible\-collections/community\.general/pull/10532)\)\.
@@ -485,7 +555,7 @@ Bugfix release\.
<a id="v11-1-1"></a>
## v11\.1\.1
<a id="release-summary-7"></a>
<a id="release-summary-11"></a>
### Release Summary
Bugfix release for the next Ansible 12 pre\-release\.
@@ -521,7 +591,7 @@ Bugfix release for the next Ansible 12 pre\-release\.
* filesystem \- remove redundant constructs from argument specs \([https\://github\.com/ansible\-collections/community\.general/pull/10494](https\://github\.com/ansible\-collections/community\.general/pull/10494)\)\.
* sysrc \- adjustments to the code \([https\://github\.com/ansible\-collections/community\.general/pull/10417](https\://github\.com/ansible\-collections/community\.general/pull/10417)\)\.
<a id="bugfixes-7"></a>
<a id="bugfixes-11"></a>
### Bugfixes
* apache2\_module \- avoid ansible\-core 2\.19 deprecation \([https\://github\.com/ansible\-collections/community\.general/pull/10459](https\://github\.com/ansible\-collections/community\.general/pull/10459)\)\.
@@ -539,7 +609,7 @@ Bugfix release for the next Ansible 12 pre\-release\.
<a id="v11-1-0"></a>
## v11\.1\.0
<a id="release-summary-8"></a>
<a id="release-summary-12"></a>
### Release Summary
Regular bugfix and feature release\.
@@ -599,7 +669,7 @@ Regular bugfix and feature release\.
* catapult \- module is deprecated and will be removed in community\.general 13\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/issues/10318](https\://github\.com/ansible\-collections/community\.general/issues/10318)\, [https\://github\.com/ansible\-collections/community\.general/pull/10329](https\://github\.com/ansible\-collections/community\.general/pull/10329)\)\.
* pacemaker\_cluster \- the parameter <code>state</code> will become a required parameter in community\.general 12\.0\.0 \([https\://github\.com/ansible\-collections/community\.general/pull/10227](https\://github\.com/ansible\-collections/community\.general/pull/10227)\)\.
<a id="bugfixes-8"></a>
<a id="bugfixes-12"></a>
### Bugfixes
* dependent lookup plugin \- avoid deprecated ansible\-core 2\.19 functionality \([https\://github\.com/ansible\-collections/community\.general/pull/10359](https\://github\.com/ansible\-collections/community\.general/pull/10359)\)\.
@@ -625,7 +695,7 @@ Regular bugfix and feature release\.
<a id="v11-0-0"></a>
## v11\.0\.0
<a id="release-summary-9"></a>
<a id="release-summary-13"></a>
### Release Summary
This is release 11\.0\.0 of <code>community\.general</code>\, released on 2025\-06\-16\.
@@ -739,7 +809,7 @@ This is release 11\.0\.0 of <code>community\.general</code>\, released on 2025\-
* iocage inventory plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9584](https\://github\.com/ansible\-collections/community\.general/pull/9584)\)\.
* iocage inventory plugin \- clean up string conversions \([https\://github\.com/ansible\-collections/community\.general/pull/9379](https\://github\.com/ansible\-collections/community\.general/pull/9379)\)\.
* iocage inventory plugin \- the new parameter <code>hooks\_results</code> of the plugin is a list of files inside a jail that provide configuration parameters for the inventory\. The inventory plugin reads the files from the jails and put the contents into the items of created variable <code>iocage\_hooks</code> \([https\://github\.com/ansible\-collections/community\.general/issues/9650](https\://github\.com/ansible\-collections/community\.general/issues/9650)\, [https\://github\.com/ansible\-collections/community\.general/pull/9651](https\://github\.com/ansible\-collections/community\.general/pull/9651)\)\.
* iocage inventory plugin \- the new parameter <code>inventory\_hostname\_tag</code> of the plugin provides the name of the tag in the C\(iocage properties notes\) that contains the jails alias\. The new parameter <code>inventory\_hostname\_required</code>\, if enabled\, makes the tag mandatory \([https\://github\.com/ansible\-collections/community\.general/issues/10206](https\://github\.com/ansible\-collections/community\.general/issues/10206)\, [https\://github\.com/ansible\-collections/community\.general/pull/10207](https\://github\.com/ansible\-collections/community\.general/pull/10207)\)\.
* iocage inventory plugin \- the new parameter <code>inventory\_hostname\_tag</code> of the plugin provides the name of the tag in the <code>iocage properties notes</code> that contains the jails alias\. The new parameter <code>inventory\_hostname\_required</code>\, if enabled\, makes the tag mandatory \([https\://github\.com/ansible\-collections/community\.general/issues/10206](https\://github\.com/ansible\-collections/community\.general/issues/10206)\, [https\://github\.com/ansible\-collections/community\.general/pull/10207](https\://github\.com/ansible\-collections/community\.general/pull/10207)\)\.
* iocage inventory plugin \- the new parameter <code>sudo</code> of the plugin lets the command <code>iocage list \-l</code> to run as root on the iocage host\. This is needed to get the IPv4 of a running DHCP jail \([https\://github\.com/ansible\-collections/community\.general/issues/9572](https\://github\.com/ansible\-collections/community\.general/issues/9572)\, [https\://github\.com/ansible\-collections/community\.general/pull/9573](https\://github\.com/ansible\-collections/community\.general/pull/9573)\)\.
* iptables\_state action plugin \- adjust standard preamble for Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9583](https\://github\.com/ansible\-collections/community\.general/pull/9583)\)\.
* iptables\_state action plugin \- use f\-strings instead of interpolations or <code>format</code> \([https\://github\.com/ansible\-collections/community\.general/pull/9318](https\://github\.com/ansible\-collections/community\.general/pull/9318)\)\.
@@ -1024,7 +1094,7 @@ This is release 11\.0\.0 of <code>community\.general</code>\, released on 2025\-
* keycloak\_authentication \- API calls did not properly set the <code>priority</code> during update resulting in incorrectly sorted authentication flows\. This apparently only affects Keycloak 25 or newer \([https\://github\.com/ansible\-collections/community\.general/pull/9263](https\://github\.com/ansible\-collections/community\.general/pull/9263)\)\.
* keycloak\_client \- Sanitize <code>saml\.encryption\.private\.key</code> so it does not show in the logs \([https\://github\.com/ansible\-collections/community\.general/pull/9621](https\://github\.com/ansible\-collections/community\.general/pull/9621)\)\.
<a id="bugfixes-9"></a>
<a id="bugfixes-13"></a>
### Bugfixes
* apache2\_mod\_proxy \- make compatible with Python 3 \([https\://github\.com/ansible\-collections/community\.general/pull/9762](https\://github\.com/ansible\-collections/community\.general/pull/9762)\)\.
@@ -1147,8 +1217,8 @@ This is release 11\.0\.0 of <code>community\.general</code>\, released on 2025\-
* community\.general\.ldap\_inc \- Use the Modify\-Increment LDAP V3 feature to increment an attribute value\.
* community\.general\.lvm\_pv \- Manage LVM Physical Volumes\.
* community\.general\.pacemaker\_resource \- Manage pacemaker resources\.
* community\.general\.systemd\_creds\_decrypt \- C\(systemd\)\'s C\(systemd\-creds decrypt\) plugin\.
* community\.general\.systemd\_creds\_encrypt \- C\(systemd\)\'s C\(systemd\-creds encrypt\) plugin\.
* community\.general\.systemd\_info \- Gather C\(systemd\) unit info\.
* community\.general\.systemd\_creds\_decrypt \- <code>systemd</code>\'s <code>systemd\-creds decrypt</code> plugin\.
* community\.general\.systemd\_creds\_encrypt \- <code>systemd</code>\'s <code>systemd\-creds encrypt</code> plugin\.
* community\.general\.systemd\_info \- Gather <code>systemd</code> unit info\.
* community\.general\.xdg\_mime \- Set default handler for MIME types\, for applications using XDG tools\.
* community\.general\.zpool \- Manage ZFS zpools\.

View File

@@ -6,6 +6,64 @@ Community General Release Notes
This changelog describes changes after version 10.0.0.
v11.4.6
=======
Release Summary
---------------
Regular bugfix release.
Bugfixes
--------
- counter_enabled callback plugin - fix plugin not observing ``display_ok_hosts`` option (https://github.com/ansible-collections/community.general/issues/3978, https://github.com/ansible-collections/community.general/pull/11656).
- keycloak_authentication - fix ``TypeError`` crash when a flow is defined without ``authenticationExecutions`` (https://github.com/ansible-collections/community.general/issues/11547, https://github.com/ansible-collections/community.general/pull/11548).
- xfconf - representation of boolean properties was not consistent between Python and ``xfconf-query``, leading to broken idempotency (https://github.com/ansible-collections/community.general/pull/11645).
v11.4.5
=======
Release Summary
---------------
Regular bugfix release.
Bugfixes
--------
- python_requirements_info - use ``importlib.metadata`` if ``pkg_resources`` from ``setuptools`` cannot be imported. That module has been removed from setuptools 82.0.0 (https://github.com/ansible-collections/community.general/issues/11491, https://github.com/ansible-collections/community.general/pull/11492).
v11.4.4
=======
Release Summary
---------------
Regular bugfix release.
Bugfixes
--------
- cloudflare_dns - also allow ``flag=128`` for CAA records (https://github.com/ansible-collections/community.general/issues/11355, https://github.com/ansible-collections/community.general/pull/11377).
- logstash_plugin - fix argument order when using ``version`` parameter. The plugin name must come after options like ``--version`` for the ``logstash-plugin`` CLI to work correctly (https://github.com/ansible-collections/community.general/issues/10745, https://github.com/ansible-collections/community.general/pull/11440).
v11.4.3
=======
Release Summary
---------------
Regular bugfix release.
Bugfixes
--------
- keycloak_realm - fixed crash in ``sanitize_cr()`` when ``realmrep`` was ``None`` (https://github.com/ansible-collections/community.general/pull/11260).
- listen_ports_facts - fix handling of empty PID lists when ``command=ss`` (https://github.com/ansible-collections/community.general/pull/11332).
- monit - add delay of 0.5 seconds after state change and check for status (https://github.com/ansible-collections/community.general/pull/11255).
- monit - internal state was not reflecting when operation is "pending" in ``monit`` (https://github.com/ansible-collections/community.general/pull/11245).
v11.4.2
=======
@@ -180,8 +238,8 @@ Filter
New Modules
-----------
- community.general.django_dumpdata - Wrapper for C(django-admin dumpdata).
- community.general.django_loaddata - Wrapper for C(django-admin loaddata).
- community.general.django_dumpdata - Wrapper for ``django-admin dumpdata``.
- community.general.django_loaddata - Wrapper for ``django-admin loaddata``.
- community.general.pacemaker_stonith - Manage Pacemaker STONITH.
v11.2.1
@@ -678,7 +736,7 @@ Minor Changes
- iocage inventory plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9584).
- iocage inventory plugin - clean up string conversions (https://github.com/ansible-collections/community.general/pull/9379).
- iocage inventory plugin - the new parameter ``hooks_results`` of the plugin is a list of files inside a jail that provide configuration parameters for the inventory. The inventory plugin reads the files from the jails and put the contents into the items of created variable ``iocage_hooks`` (https://github.com/ansible-collections/community.general/issues/9650, https://github.com/ansible-collections/community.general/pull/9651).
- iocage inventory plugin - the new parameter ``inventory_hostname_tag`` of the plugin provides the name of the tag in the C(iocage properties notes) that contains the jails alias. The new parameter ``inventory_hostname_required``, if enabled, makes the tag mandatory (https://github.com/ansible-collections/community.general/issues/10206, https://github.com/ansible-collections/community.general/pull/10207).
- iocage inventory plugin - the new parameter ``inventory_hostname_tag`` of the plugin provides the name of the tag in the ``iocage properties notes`` that contains the jails alias. The new parameter ``inventory_hostname_required``, if enabled, makes the tag mandatory (https://github.com/ansible-collections/community.general/issues/10206, https://github.com/ansible-collections/community.general/pull/10207).
- iocage inventory plugin - the new parameter ``sudo`` of the plugin lets the command ``iocage list -l`` to run as root on the iocage host. This is needed to get the IPv4 of a running DHCP jail (https://github.com/ansible-collections/community.general/issues/9572, https://github.com/ansible-collections/community.general/pull/9573).
- iptables_state action plugin - adjust standard preamble for Python 3 (https://github.com/ansible-collections/community.general/pull/9583).
- iptables_state action plugin - use f-strings instead of interpolations or ``format`` (https://github.com/ansible-collections/community.general/pull/9318).
@@ -1086,8 +1144,8 @@ New Modules
- community.general.ldap_inc - Use the Modify-Increment LDAP V3 feature to increment an attribute value.
- community.general.lvm_pv - Manage LVM Physical Volumes.
- community.general.pacemaker_resource - Manage pacemaker resources.
- community.general.systemd_creds_decrypt - C(systemd)'s C(systemd-creds decrypt) plugin.
- community.general.systemd_creds_encrypt - C(systemd)'s C(systemd-creds encrypt) plugin.
- community.general.systemd_info - Gather C(systemd) unit info.
- community.general.systemd_creds_decrypt - ``systemd``'s ``systemd-creds decrypt`` plugin.
- community.general.systemd_creds_encrypt - ``systemd``'s ``systemd-creds encrypt`` plugin.
- community.general.systemd_info - Gather ``systemd`` unit info.
- community.general.xdg_mime - Set default handler for MIME types, for applications using XDG tools.
- community.general.zpool - Manage ZFS zpools.

View File

@@ -422,7 +422,7 @@ releases:
the contents into the items of created variable ``iocage_hooks`` (https://github.com/ansible-collections/community.general/issues/9650,
https://github.com/ansible-collections/community.general/pull/9651).
- iocage inventory plugin - the new parameter ``inventory_hostname_tag`` of
the plugin provides the name of the tag in the C(iocage properties notes)
the plugin provides the name of the tag in the ``iocage properties notes``
that contains the jails alias. The new parameter ``inventory_hostname_required``,
if enabled, makes the tag mandatory (https://github.com/ansible-collections/community.general/issues/10206,
https://github.com/ansible-collections/community.general/pull/10207).
@@ -1048,13 +1048,13 @@ releases:
- description: Manage pacemaker resources.
name: pacemaker_resource
namespace: ''
- description: C(systemd)'s C(systemd-creds decrypt) plugin.
- description: '``systemd``''s ``systemd-creds decrypt`` plugin.'
name: systemd_creds_decrypt
namespace: ''
- description: C(systemd)'s C(systemd-creds encrypt) plugin.
- description: '``systemd``''s ``systemd-creds encrypt`` plugin.'
name: systemd_creds_encrypt
namespace: ''
- description: Gather C(systemd) unit info.
- description: Gather ``systemd`` unit info.
name: systemd_info
namespace: ''
- description: Set default handler for MIME types, for applications using XDG
@@ -1721,10 +1721,10 @@ releases:
- keycloak-realm-webauthn-policies.yml
- random_string_seed.yml
modules:
- description: Wrapper for C(django-admin dumpdata).
- description: Wrapper for ``django-admin dumpdata``.
name: django_dumpdata
namespace: ''
- description: Wrapper for C(django-admin loaddata).
- description: Wrapper for ``django-admin loaddata``.
name: django_loaddata
namespace: ''
- description: Manage Pacemaker STONITH.
@@ -1883,3 +1883,67 @@ releases:
- 11206-datetime.yml
- filesystem-xfs-resize-slack.yml
release_date: '2025-12-01'
11.4.3:
changes:
bugfixes:
- keycloak_realm - fixed crash in ``sanitize_cr()`` when ``realmrep`` was
``None`` (https://github.com/ansible-collections/community.general/pull/11260).
- listen_ports_facts - fix handling of empty PID lists when ``command=ss``
(https://github.com/ansible-collections/community.general/pull/11332).
- monit - add delay of 0.5 seconds after state change and check for status
(https://github.com/ansible-collections/community.general/pull/11255).
- monit - internal state was not reflecting when operation is "pending" in
``monit`` (https://github.com/ansible-collections/community.general/pull/11245).
release_summary: Regular bugfix release.
fragments:
- 11.4.3.yml
- 11245-monit-enum.yml
- 11255-monit-integrationtests.yml
- 11260-keycloak-realm-crash-when-no-realms.yml
- listen-ports-facts-return-no-facts.yml
release_date: '2025-12-29'
11.4.4:
changes:
bugfixes:
- cloudflare_dns - also allow ``flag=128`` for CAA records (https://github.com/ansible-collections/community.general/issues/11355,
https://github.com/ansible-collections/community.general/pull/11377).
- logstash_plugin - fix argument order when using ``version`` parameter. The
plugin name must come after options like ``--version`` for the ``logstash-plugin``
CLI to work correctly (https://github.com/ansible-collections/community.general/issues/10745,
https://github.com/ansible-collections/community.general/pull/11440).
release_summary: Regular bugfix release.
fragments:
- 11.4.4.yml
- 11377-cloudflare_dns-caa.yml
- 11440-logstash-plugin-fix-version-argument-order.yml
release_date: '2026-01-26'
11.4.5:
changes:
bugfixes:
- python_requirements_info - use ``importlib.metadata`` if ``pkg_resources``
from ``setuptools`` cannot be imported. That module has been removed from
setuptools 82.0.0 (https://github.com/ansible-collections/community.general/issues/11491,
https://github.com/ansible-collections/community.general/pull/11492).
release_summary: Regular bugfix release.
fragments:
- 11.4.5.yml
- 11492-python_requires_info.yml
release_date: '2026-02-23'
11.4.6:
changes:
bugfixes:
- counter_enabled callback plugin - fix plugin not observing ``display_ok_hosts``
option (https://github.com/ansible-collections/community.general/issues/3978,
https://github.com/ansible-collections/community.general/pull/11656).
- keycloak_authentication - fix ``TypeError`` crash when a flow is defined
without ``authenticationExecutions`` (https://github.com/ansible-collections/community.general/issues/11547,
https://github.com/ansible-collections/community.general/pull/11548).
- xfconf - representation of boolean properties was not consistent between
Python and ``xfconf-query``, leading to broken idempotency (https://github.com/ansible-collections/community.general/pull/11645).
release_summary: Regular bugfix release.
fragments:
- 11.4.6.yml
- 11645-xfconf-bool.yml
- 11656-counter_enabled-display_ok_hosts.yml
- keycloak-authentication-none-executions.yml
release_date: '2026-03-23'

View File

@@ -12,7 +12,7 @@ The inventory plugin :ansplugin:`community.general.iocage#inventory` gets the in
See:
* `iocage - A FreeBSD Jail Manager <https://iocage.readthedocs.io/en/latest>`_
* `iocage - A FreeBSD Jail Manager <https://freebsd.github.io/iocage/>`_
* `man iocage <https://man.freebsd.org/cgi/man.cgi?query=iocage>`_
* `Jails and Containers <https://docs.freebsd.org/en/books/handbook/jails>`_

View File

@@ -20,7 +20,7 @@ As root at the iocage host, create three VNET jails with a DHCP interface from t
shell> iocage create --template ansible_client --name srv_3 bpf=1 dhcp=1 vnet=1
srv_3 successfully created!
See: `Configuring a VNET Jail <https://iocage.readthedocs.io/en/latest/networking.html#configuring-a-vnet-jail>`_.
See: `Configuring VNET <https://freebsd.github.io/iocage/networking.html#vimage-vnet>`_.
As admin at the controller, list the jails:
@@ -115,7 +115,7 @@ Optionally, create shared IP jails:
| None | srv_3 | off | down | jail | 14.2-RELEASE-p3 | em0|10.1.0.103/24 | - | ansible_client | no |
+------+-------+------+-------+------+-----------------+-------------------+-----+----------------+----------+
See: `Configuring a Shared IP Jail <https://iocage.readthedocs.io/en/latest/networking.html#configuring-a-shared-ip-jail>`_
See: `Configuring a Shared IP Jail <https://freebsd.github.io/iocage/networking.html#shared-ip>`_
If iocage needs environment variable(s), use the option :ansopt:`community.general.iocage#inventory:env`. For example,

View File

@@ -5,7 +5,7 @@
namespace: community
name: general
version: 11.4.2
version: 11.4.6
readme: README.md
authors:
- Ansible (https://github.com/ansible)

View File

@@ -164,6 +164,8 @@ class CallbackModule(CallbackBase):
msg = f"changed: {self._host_counter}/{self._host_total} [{result._host.get_name()}]"
color = C.COLOR_CHANGED
else:
if not self._plugin_options.get("display_ok_hosts", True):
return
if delegated_vars:
msg = f"ok: {self._host_counter}/{self._host_total} [{result._host.get_name()} -> {delegated_vars['ansible_host']}]"
else:

View File

@@ -18,6 +18,12 @@ options:
description: A string containing an INI document.
type: string
required: true
seealso:
- plugin: community.general.to_ini
plugin_type: filter
- plugin: ansible.builtin.ini
plugin_type: lookup
- module: community.general.ini_file
"""
EXAMPLES = r"""

View File

@@ -18,6 +18,12 @@ options:
description: The dictionary that should be converted to the INI format.
type: dictionary
required: true
seealso:
- plugin: ansible.builtin.ini
plugin_type: lookup
- module: community.general.ini_file
- plugin: community.general.from_ini
plugin_type: filter
"""
EXAMPLES = r"""

View File

@@ -14,7 +14,7 @@ DOCUMENTATION = r"""
module: archive
short_description: Creates a compressed archive of one or more files or trees
extends_documentation_fragment:
- files
- ansible.builtin.files
- community.general.attributes
description:
- Creates or extends an archive.

View File

@@ -61,9 +61,12 @@ options:
flag:
description:
- Issuer Critical Flag.
- Should be set either to V(0) for not critical, or to V(128) for critical.
- Before community.general 11.4.4, only V(0) and V(1) were valid options.
The value V(1) is still available for backwards-compatibility reasons.
- Required for O(type=CAA) when O(state=present).
type: int
choices: [0, 1]
choices: [0, 1, 128]
version_added: 8.0.0
tag:
description:
@@ -907,7 +910,7 @@ def main():
hash_type=dict(type='int', choices=[1, 2]),
key_tag=dict(type='int', no_log=False),
port=dict(type='int'),
flag=dict(type='int', choices=[0, 1]),
flag=dict(type='int', choices=[0, 1, 128]),
tag=dict(type='str', choices=['issue', 'issuewild', 'iodef']),
tags=dict(type='list', elements='str'),
priority=dict(type='int', default=1),

View File

@@ -76,7 +76,7 @@ notes:
requirements: [passlib>=1.6]
author: "Ansible Core Team"
extends_documentation_fragment:
- files
- ansible.builtin.files
- community.general.attributes
"""

View File

@@ -16,7 +16,7 @@ DOCUMENTATION = r"""
module: ini_file
short_description: Tweak settings in INI files
extends_documentation_fragment:
- files
- ansible.builtin.files
- community.general.attributes
description:
- Manage (add, remove, change) individual settings in an INI-style file without having to manage the file as a whole with,
@@ -153,6 +153,13 @@ options:
notes:
- While it is possible to add an O(option) without specifying a O(value), this makes no sense.
- As of community.general 3.2.0, UTF-8 BOM markers are discarded when reading files.
seealso:
- plugin: ansible.builtin.ini
plugin_type: lookup
- plugin: community.general.from_ini
plugin_type: filter
- plugin: community.general.to_ini
plugin_type: filter
author:
- Jan-Piet Mens (@jpmens)
- Ales Nosek (@noseka1)

View File

@@ -60,7 +60,7 @@ options:
type: bool
default: false
extends_documentation_fragment:
- files
- ansible.builtin.files
- community.general.attributes
attributes:
check_mode:

View File

@@ -265,7 +265,7 @@ def create_or_update_executions(kc, config, realm='master'):
after = ""
before = ""
execution = None
if "authenticationExecutions" in config:
if config.get("authenticationExecutions") is not None:
# Get existing executions on the Keycloak server for this alias
existing_executions = kc.get_executions_representation(config, realm=realm)
for new_exec_index, new_exec in enumerate(config["authenticationExecutions"], start=0):

View File

@@ -93,7 +93,7 @@ EXAMPLES = r"""
auth_realm: "master"
auth_username: "admin"
realm: "master"
required_action:
required_actions:
- alias: "TERMS_AND_CONDITIONS"
name: "Terms and conditions"
providerId: "TERMS_AND_CONDITIONS"
@@ -108,7 +108,7 @@ EXAMPLES = r"""
auth_realm: "master"
auth_username: "admin"
realm: "master"
required_action:
required_actions:
- alias: "TERMS_AND_CONDITIONS"
enabled: false
state: "present"
@@ -121,7 +121,7 @@ EXAMPLES = r"""
auth_realm: "master"
auth_username: "admin"
realm: "master"
required_action:
required_actions:
- alias: "TERMS_AND_CONDITIONS"
state: "absent"
"""

View File

@@ -57,7 +57,7 @@ EXAMPLES = r"""
- name: Retrive info of a UserStorageProvider named myldap
community.general.keycloak_component_info:
auth_keycloak_url: http://localhost:8080/auth
auth_sername: admin
auth_username: admin
auth_password: password
auth_realm: master
realm: myrealm
@@ -67,7 +67,7 @@ EXAMPLES = r"""
- name: Retrive key info component
community.general.keycloak_component_info:
auth_keycloak_url: http://localhost:8080/auth
auth_sername: admin
auth_username: admin
auth_password: password
auth_realm: master
realm: myrealm
@@ -77,7 +77,7 @@ EXAMPLES = r"""
- name: Retrive all component from realm master
community.general.keycloak_component_info:
auth_keycloak_url: http://localhost:8080/auth
auth_sername: admin
auth_username: admin
auth_password: password
auth_realm: master
realm: myrealm
@@ -85,7 +85,7 @@ EXAMPLES = r"""
- name: Retrive all sub components of parent component filter by type
community.general.keycloak_component_info:
auth_keycloak_url: http://localhost:8080/auth
auth_sername: admin
auth_username: admin
auth_password: password
auth_realm: master
realm: myrealm

View File

@@ -829,6 +829,9 @@ def sanitize_cr(realmrep):
:param realmrep: the realmrep dict to be sanitized
:return: sanitized realmrep dict
"""
if not realmrep:
return realmrep
result = realmrep.copy()
if 'secret' in result:
result['secret'] = '********'

View File

@@ -302,10 +302,10 @@ def ss_parse(raw):
conns = regex_conns.search(local_addr_port)
pids = regex_pid.findall(process)
if conns is None and pids is None:
if conns is None and not pids:
continue
if pids is None:
if not pids:
# likely unprivileged user, so add empty name & pid
# as we do in netstat logic to be consistent with output
pids = [(str(), 0)]

View File

@@ -101,7 +101,7 @@ def parse_error(string):
def install_plugin(module, plugin_bin, plugin_name, version, proxy_host, proxy_port):
cmd_args = [plugin_bin, PACKAGE_STATE_MAP["present"], plugin_name]
cmd_args = [plugin_bin, PACKAGE_STATE_MAP["present"]]
if version:
cmd_args.extend(["--version", version])
@@ -109,6 +109,8 @@ def install_plugin(module, plugin_bin, plugin_name, version, proxy_host, proxy_p
if proxy_host and proxy_port:
cmd_args.extend(["-DproxyHost=%s" % proxy_host, "-DproxyPort=%s" % proxy_port])
cmd_args.append(plugin_name)
cmd = " ".join(cmd_args)
if module.check_mode:

View File

@@ -187,7 +187,7 @@ class Monit(object):
else:
status = Status.NOT_MONITORED
if state == 'pending':
if state == 'PENDING':
status = status.pending()
return status
@@ -259,6 +259,9 @@ class Monit(object):
def change_state(self, state, expected_status, invert_expected=None):
current_status = self.get_status()
self.run_command(STATE_COMMAND_MAP[state])
# Give monit daemon a moment to process the command before checking status
# to avoid race condition where HTTP interface may be temporarily unresponsive
time.sleep(0.5)
status = self.wait_for_status_change(current_status)
status = self.wait_for_monit_to_stop_pending(status)
status_match = status.value == expected_status.value

View File

@@ -123,15 +123,25 @@ import re
import sys
import operator
HAS_DISTUTILS = False
from ansible.module_utils.basic import AnsibleModule
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion
HAS_IMPORTLIB_METADATA = False
try:
import pkg_resources
from ansible_collections.community.general.plugins.module_utils.version import LooseVersion
HAS_DISTUTILS = True
import importlib.metadata
HAS_IMPORTLIB_METADATA = True
except ImportError:
pass
from ansible.module_utils.basic import AnsibleModule
HAS_DISTUTILS = False
try:
import pkg_resources
HAS_DISTUTILS = True
except ImportError:
pass
operations = {
'<=': operator.le,
@@ -157,9 +167,9 @@ def main():
),
supports_check_mode=True,
)
if not HAS_DISTUTILS:
if not HAS_DISTUTILS and not HAS_IMPORTLIB_METADATA:
module.fail_json(
msg='Could not import "distutils" and "pkg_resources" libraries to introspect python environment.',
msg='Could not import "pkg_resources" or "importlib.metadata" libraries to introspect Python environment.',
python=sys.executable,
python_version=sys.version,
python_version_info=python_version_info,
@@ -180,12 +190,20 @@ def main():
pkg, op, version = match.groups()
if op is not None and op not in operations:
module.fail_json(msg="Failed to parse version requirement '{0}'. Operator must be one of >, <, <=, >=, or ==".format(dep))
try:
existing = pkg_resources.get_distribution(pkg).version
except pkg_resources.DistributionNotFound:
# not there
results['not_found'].append(pkg)
continue
if HAS_DISTUTILS:
try:
existing = pkg_resources.get_distribution(pkg).version
except pkg_resources.DistributionNotFound:
# not there
results['not_found'].append(pkg)
continue
else:
try:
existing = importlib.metadata.version(pkg)
except importlib.metadata.PackageNotFoundError:
# not there
results['not_found'].append(pkg)
continue
if op is None and version is None:
results['valid'][pkg] = {
'installed': existing,

View File

@@ -39,7 +39,7 @@ options:
default: 0
extends_documentation_fragment:
- community.general.rundeck
- url
- ansible.builtin.url
- community.general.attributes
- community.general.attributes.info_module
"""

View File

@@ -81,7 +81,7 @@ options:
EXAMPLES = r"""
- name: Create an private network
community.general.scaleway_vpc:
community.general.scaleway_private_network:
project: '{{ scw_project }}'
name: 'vpc_one'
state: present
@@ -89,7 +89,7 @@ EXAMPLES = r"""
register: vpc_creation_task
- name: Make sure private network with name 'foo' is deleted in region par1
community.general.scaleway_vpc:
community.general.scaleway_private_network:
name: 'foo'
state: absent
region: par1

View File

@@ -176,6 +176,8 @@ version:
version_added: 10.2.0
"""
from ansible.module_utils.parsing.convert_bool import boolean
from ansible_collections.community.general.plugins.module_utils.module_helper import StateModuleHelper
from ansible_collections.community.general.plugins.module_utils.xfconf import xfconf_runner, get_xfconf_version
@@ -238,9 +240,6 @@ class XFConfProperty(StateModuleHelper):
self.vars.value = None
def state_present(self):
# stringify all values - in the CLI they will all be happy strings anyway
# and by doing this here the rest of the code can be agnostic to it
self.vars.value = [str(v) for v in self.vars.value]
value_type = self.vars.value_type
values_len = len(self.vars.value)
@@ -253,6 +252,14 @@ class XFConfProperty(StateModuleHelper):
# or complain if lists' lengths are different
self.do_raise('Number of elements in "value" and "value_type" must be the same')
# stringify all values - in the CLI they will all be happy strings anyway
# and by doing this here the rest of the code can be agnostic to it
# bool values are normalized to 'true'/'false' to match xfconf-query output format
self.vars.value = [
("true" if boolean(v) else "false") if vt == "bool" else str(v)
for v, vt in zip(self.vars.value, value_type)
]
# calculates if it is an array
self.vars.is_array = \
bool(self.vars.force_array) or \

View File

@@ -52,9 +52,11 @@
- name: Symlink java
become: true
file:
src: "/usr/local/opt/openjdk@17/libexec/openjdk.jdk"
src: "{{ brew_prefix }}/opt/openjdk@17/libexec/openjdk.jdk"
dest: "/Library/Java/JavaVirtualMachines/openjdk-17.jdk"
state: link
vars:
brew_prefix: "{{ lookup('pipe', 'brew --prefix') }}"
when:
- ansible_os_family == 'Darwin'

View File

@@ -32,6 +32,7 @@
- not (ansible_distribution == 'Archlinux') # TODO: package seems to be broken, cannot be downloaded from mirrors?
- not (ansible_distribution == 'Alpine') # TODO: not sure what's wrong here, the module doesn't return what the tests expect
- not (ansible_distribution == 'Debian' and ansible_distribution_major_version|int == 13) # TODO: not sure what's wrong here, the module doesn't return what the tests expect
- not (ansible_distribution == 'Fedora' and ansible_distribution_major_version|int == 43) # TODO: not sure what's wrong here, the module doesn't return what the tests expect
block:
- name: setup install cloud-init
package:

View File

@@ -8,3 +8,4 @@ skip/macos
skip/osx
skip/freebsd
skip/rhel10.0 # FIXME
skip/rhel10.1 # FIXME

View File

@@ -21,4 +21,6 @@ skip/rhel9.3
skip/rhel9.4
skip/rhel9.5
skip/rhel9.6
skip/rhel9.7
skip/rhel10.0
skip/rhel10.1

View File

@@ -21,4 +21,6 @@ skip/rhel9.3
skip/rhel9.4
skip/rhel9.5
skip/rhel9.6
skip/rhel9.7
skip/rhel10.0
skip/rhel10.1

View File

@@ -0,0 +1,5 @@
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
azp/posix/1

View File

@@ -0,0 +1,5 @@
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
azp/posix/1

View File

@@ -126,12 +126,18 @@
input |
community.general.json_diff(target) |
sort(attribute='path')
==
[
{"op": "add", "path": "/baq", "value": {"baz": 2}},
{"op": "remove", "path": "/baw/1"},
{"op": "replace", "path": "/hello", "value": "night"},
]
in [expected_1, expected_2]
vars:
input: {"foo": 1, "bar":{"baz": 2}, "baw": [1, 2, 3], "hello": "day"}
target: {"foo": 1, "bar": {"baz": 2}, "baw": [1, 3], "baq": {"baz": 2}, "hello": "night"}
expected_1:
# Older jsonpatch version
- {"op": "add", "path": "/baq", "value": {"baz": 2}}
- {"op": "remove", "path": "/baw/1"}
- {"op": "replace", "path": "/hello", "value": "night"}
expected_2:
# Newer jsonpatch version
- {"op": "add", "path": "/baq", "value": {"baz": 2}}
- {"op": "remove", "path": "/baw/1"}
- {"op": "move", "path": "/baw/1", "from": "/baw/2"}
- {"op": "replace", "path": "/hello", "value": "night"}

View File

@@ -0,0 +1,5 @@
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
azp/posix/1

View File

@@ -10,19 +10,10 @@
become: true
when: ansible_distribution == 'Fedora'
- block:
- name: Activate flatpak ppa on Ubuntu
apt_repository:
repo: ppa:alexlarsson/flatpak
state: present
mode: '0644'
when: ansible_lsb.major_release | int < 18
- name: Install flatpak package on Ubuntu
apt:
name: flatpak
state: present
- name: Install flatpak package on Ubuntu
apt:
name: flatpak
state: present
when: ansible_distribution == 'Ubuntu'
- name: Install dummy remote for user

View File

@@ -8,17 +8,10 @@
name: flatpak
state: present
when: ansible_distribution == 'Fedora'
- block:
- name: Activate flatpak ppa on Ubuntu versions older than 18.04/bionic
apt_repository:
repo: ppa:alexlarsson/flatpak
state: present
mode: '0644'
when: ansible_lsb.major_release | int < 18
- name: Install flatpak package on Ubuntu
apt:
name: flatpak
state: present
- name: Install flatpak package on Ubuntu
apt:
name: flatpak
state: present
when: ansible_distribution == 'Ubuntu'
- name: Install flatpak remote for testing check mode
flatpak_remote:

View File

@@ -14,4 +14,6 @@ skip/rhel9.3 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/
skip/rhel9.4 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/
skip/rhel9.5 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/
skip/rhel9.6 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/
skip/rhel9.7 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/
skip/rhel10.0 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/
skip/rhel10.1 # See https://www.reddit.com/r/Fedora/comments/si7nzk/homectl/

View File

@@ -8,12 +8,21 @@
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
- name: ensure iptables package is installed
- name: ensure iptables package is installed (non-RHEL)
package:
name:
- iptables
become: true
when: not (ansible_facts.distribution == 'RedHat' and ansible_facts.distribution_major_version|int >= 10)
- name: ensure iptables package is installed (RHEL 10+)
package:
name:
- "kernel-modules-extra-matched-{{ ansible_facts.kernel }}"
- "iptables-nft"
- "kernel-modules-extra-{{ ansible_facts.kernel }}"
become: true
when: ansible_facts.distribution == 'RedHat' and ansible_facts.distribution_major_version|int >= 10
- name: include tasks
vars:

View File

@@ -272,7 +272,7 @@
assert:
that:
- iptables_state is failed
- "iptables_state.msg == 'Table mangle to restore not defined in {{ iptables_tests }}'"
- "iptables_state.msg == ('Table mangle to restore not defined in ' ~ iptables_tests)"
success_msg: >-
The previous error has been triggered by trying to restore a table
that is missing in the file provided to iptables-restore.

View File

@@ -14,7 +14,9 @@ skip/rhel9.3 # FIXME
skip/rhel9.4 # FIXME
skip/rhel9.5 # FIXME
skip/rhel9.6 # FIXME
skip/rhel9.7 # FIXME
skip/rhel10.0 # FIXME
skip/rhel10.1 # FIXME
skip/freebsd12.4 # FIXME
skip/freebsd13.2 # FIXME
skip/freebsd13.3 # FIXME
@@ -24,3 +26,5 @@ skip/freebsd14.0 # FIXME
skip/freebsd14.1 # FIXME
skip/freebsd14.2 # FIXME
skip/freebsd14.3 # FIXME
skip/freebsd14.4 # FIXME
skip/freebsd15.0 # FIXME

View File

@@ -13,6 +13,12 @@
- set_fact:
output_test_dir: '{{ remote_tmp_dir }}/test_iso_extract'
# TODO: figure out and fix!
- name: Doesn't work with Fedora 43 for some reason
meta: end_play
when:
- ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('43', '==')
- name: Install EPEL repository (RHEL only)
include_role:
name: setup_epel

View File

@@ -0,0 +1,5 @@
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
unsupported

View File

@@ -0,0 +1,5 @@
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
unsupported

View File

@@ -0,0 +1,5 @@
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
unsupported

View File

@@ -0,0 +1,5 @@
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
unsupported

View File

@@ -9,6 +9,11 @@
dest: "{{ launchd_plist_location }}"
become: true
- name: ensure target directory exists
file:
path: /usr/local/sbin
state: directory
- name: install the test daemon script
copy:
src: ansible_test_service.py

View File

@@ -0,0 +1,5 @@
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
unsupported

View File

@@ -0,0 +1,72 @@
---
####################################################################
# WARNING: These are designed specifically for Ansible tests #
# and should not be used as examples of how to write Ansible roles #
####################################################################
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
- name: Check if logstash-plugin is available
ansible.builtin.stat:
path: /usr/share/logstash/bin/logstash-plugin
register: logstash_plugin_bin
- name: Run logstash_plugin tests
when: logstash_plugin_bin.stat.exists
block:
- name: Install plugin without version (should succeed)
community.general.logstash_plugin:
name: logstash-filter-dissect
state: present
register: install_no_version
- name: Assert plugin installed
ansible.builtin.assert:
that:
- install_no_version is changed
- name: Install same plugin again (idempotency)
community.general.logstash_plugin:
name: logstash-filter-dissect
state: present
register: install_no_version_again
- name: Assert idempotency without version
ansible.builtin.assert:
that:
- install_no_version_again is not changed
- name: Remove plugin for version test
community.general.logstash_plugin:
name: logstash-filter-dissect
state: absent
- name: Install plugin with specific version
community.general.logstash_plugin:
name: logstash-filter-dissect
state: present
version: "3.2.0"
register: install_with_version
- name: Assert plugin with version installed
ansible.builtin.assert:
that:
- install_with_version is changed
- name: Verify command has correct argument order
ansible.builtin.assert:
that:
# The cmd output should show --version before plugin name
- "'--version' in install_with_version.cmd"
- "'3.2.0' in install_with_version.cmd"
- "install_with_version.cmd.index('--version') < install_with_version.cmd.index('logstash-filter-dissect')"
always:
- name: Cleanup - remove test plugin
community.general.logstash_plugin:
name: logstash-filter-dissect
state: absent
when: logstash_plugin_bin.stat.exists
ignore_errors: true

View File

@@ -0,0 +1,5 @@
# Copyright (c) Ansible Project
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
unsupported

View File

@@ -45,16 +45,37 @@
ansible.builtin.get_url:
url: https://packages.gopass.pw/repos/gopass/gopass-archive-keyring.gpg
dest: /usr/share/keyrings/gopass-archive-keyring.gpg
- name: Add gopass repo
ansible.builtin.apt_repository:
repo: "deb [arch=amd64,arm64,armhf \
signed-by=/usr/share/keyrings/gopass-archive-keyring.gpg] \
https://packages.gopass.pw/repos/gopass stable main"
- name: Make sure python3-debian is installed
ansible.builtin.apt:
name: python3-debian
state: present
- name: Update apt-cache and install gopass package
- name: Add gopass repo
ansible.builtin.deb822_repository:
name: gopass
types: deb
architectures:
- amd64
- arm64
- armhf
signed_by: /usr/share/keyrings/gopass-archive-keyring.gpg
uris:
- https://packages.gopass.pw/repos/gopass
suites:
- stable
components:
- main
state: present
register: apt_repo
- name: Update apt cache
ansible.builtin.apt:
update_cache: true
when: apt_repo is changed
- name: Install gopass package
ansible.builtin.apt:
name: gopass
update_cache: true
state: present
- name: Install on macOS
when: ansible_facts.distribution == 'MacOSX'

View File

@@ -12,3 +12,4 @@ skip/osx
skip/macos
skip/alpine3.21 # TODO try to fix
skip/alpine3.22 # TODO try to fix
skip/alpine3.23 # TODO try to fix

View File

@@ -52,6 +52,14 @@
name: monit
state: restarted
- name: wait for monit daemon to be responsive after restart
command: monit status -B httpd_echo
register: monit_status_check
changed_when: false
until: monit_status_check.rc == 0
retries: 10
delay: 0.5
- name: test process present again
monit:
name: httpd_echo

View File

@@ -25,8 +25,9 @@
- include_tasks: run.yml
vars:
nodejs_version: '{{ item }}'
nodejs_path: 'node-v{{ nodejs_version }}-{{ ansible_system|lower }}-x{{ ansible_userspace_bits }}'
nodejs_path: 'node-v{{ nodejs_version }}-{{ ansible_facts.system|lower }}-{{ nodejs_arch }}'
nodejs_arch: '{{ "x64" if ansible_architecture == "x86_64" else "arm64" if ansible_architecture in ("arm64", "aarch64") else ansible_architecture }}'
nodejs_ext: '{{ ".tar.xz" if ansible_system == "Linux" else ".tar.gz" }}'
nodejs_download: 'https://nodejs.org/dist/v{{ nodejs_version }}/{{ nodejs_path }}{{ nodejs_ext }}'
with_items:
- 7.10.1 # provides npm 4.2.0 (last npm < 5 released)
- 8.0.0 # provides npm 5.0.0
- 8.2.0 # provides npm 5.3.0 (output change with this version)
- 16.20.2 # oldest node version with macOS arm64 support

View File

@@ -3,9 +3,13 @@
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
# SPDX-License-Identifier: GPL-3.0-or-later
- name: 'Download NPM'
- name: Show Node.js Download URL
debug:
var: nodejs_download
- name: Download Node.js
unarchive:
src: 'https://ansible-ci-files.s3.amazonaws.com/test/integration/targets/npm/{{ nodejs_path }}.tar.gz'
src: '{{ nodejs_download }}'
dest: '{{ remote_tmp_dir }}'
remote_src: true
creates: '{{ remote_tmp_dir }}/{{ nodejs_path }}.tar.gz'

View File

@@ -14,5 +14,7 @@ skip/rhel9.3
skip/rhel9.4
skip/rhel9.5
skip/rhel9.6
skip/rhel9.7
skip/rhel10.0
skip/rhel10.1
skip/freebsd

View File

@@ -16,14 +16,37 @@
- ndg-httpsclient
- pyasn1
- name: Add InfluxDB public GPG key
apt_key: url=https://repos.influxdata.com/influxdb.key state=present
- name: Make sure python3-debian is installed
ansible.builtin.apt:
name: python3-debian
state: present
- name: Add InfluxDB repository
apt_repository: repo='deb https://repos.influxdata.com/ubuntu trusty stable' filename='influxdb' state=present update_cache=yes
ansible.builtin.deb822_repository:
update_cache: true
name: influxdb
types: deb
signed_by: https://repos.influxdata.com/influxdb.key
uris:
- https://repos.influxdata.com/ubuntu
suites:
- trusty
components:
- stable
state: present
register: apt_repo
- name: Update apt cache
ansible.builtin.apt:
update_cache: true
when: apt_repo is changed
- name: Install InfluxDB
apt: name=influxdb state=latest
ansible.builtin.apt:
name: influxdb
state: latest
- name: Start InfluxDB service
service: name=influxdb state=started
ansible.builtin.service:
name: influxdb
state: started

View File

@@ -0,0 +1 @@
nothing.yml

View File

@@ -7,4 +7,3 @@ destructive
skip/aix
skip/rhel # TODO executables are installed in /usr/local/bin, which isn't part of $PATH
skip/macos # TODO executables are installed in /Library/Frameworks/Python.framework/Versions/3.11/bin, which isn't part of $PATH
unstable # TODO fix!

View File

@@ -146,7 +146,7 @@
when: >-
ansible_distribution_version is version('12.4', '>=') and ansible_distribution_version is version('13', '<')
or ansible_distribution_version is version('13.4', '>=') and ansible_distribution_version is version('14', '<')
or ansible_distribution_version is version('14.2', '>=')
or ansible_distribution_version is version('14.3', '>=')
block:
- name: Setup testjail
include_tasks: setup-testjail.yml

View File

@@ -16,7 +16,9 @@ skip/rhel9.3 # FIXME
skip/rhel9.4 # FIXME
skip/rhel9.5 # FIXME
skip/rhel9.6 # FIXME
skip/rhel9.7 # FIXME
skip/rhel10.0 # FIXME
skip/rhel10.1 # FIXME
skip/docker
needs/root
needs/target/setup_epel

View File

@@ -14,10 +14,12 @@
- include_tasks: run.yml
vars:
nodejs_version: '{{ item.node_version }}'
nodejs_path: 'node-v{{ nodejs_version }}-{{ ansible_system|lower }}-x{{ ansible_userspace_bits }}'
nodejs_path: 'node-v{{ nodejs_version }}-{{ ansible_facts.system|lower }}-{{ nodejs_arch }}'
nodejs_arch: '{{ "x64" if ansible_architecture == "x86_64" else "arm64" if ansible_architecture in ("arm64", "aarch64") else ansible_architecture }}'
nodejs_ext: '{{ ".tar.xz" if ansible_system == "Linux" else ".tar.gz" }}'
nodejs_download: 'https://nodejs.org/dist/v{{ nodejs_version }}/{{ nodejs_path }}{{ nodejs_ext }}'
yarn_version: '{{ item.yarn_version }}'
with_items:
- {node_version: 4.8.0, yarn_version: 1.6.0} # Lowest compatible nodejs version
- {node_version: 8.0.0, yarn_version: 1.6.0}
- {node_version: 16.20.2, yarn_version: 1.22.22} # oldest node version with macOS arm64 support
when:
- not (ansible_os_family == 'Alpine') # TODO

View File

@@ -8,16 +8,20 @@
path: /usr/local/lib/nodejs
state: directory
- name: 'Download Nodejs'
- name: Show Node.js Download URL
debug:
var: nodejs_download
- name: Download Node.js
unarchive:
src: 'https://ansible-ci-files.s3.amazonaws.com/test/integration/targets/yarn/{{ nodejs_path }}.tar.gz'
src: '{{ nodejs_download }}'
dest: '{{ remote_tmp_dir }}'
remote_src: true
creates: '{{ remote_tmp_dir }}/{{ nodejs_path }}.tar.gz'
- name: 'Download Yarn'
unarchive:
src: 'https://ansible-ci-files.s3.amazonaws.com/test/integration/targets/yarn/yarn-v{{yarn_version}}.tar.gz'
src: 'https://github.com/yarnpkg/yarn/releases/download/v{{yarn_version}}/yarn-v{{yarn_version}}.tar.gz'
dest: '{{ remote_tmp_dir }}'
remote_src: true
creates: '{{ remote_tmp_dir }}/yarn-v{{yarn_version}}_pkg.tar.gz'

View File

@@ -27,17 +27,19 @@ plugins/modules/jenkins_plugin.py pylint:ansible-bad-import-from
plugins/modules/keycloak_realm_info.py validate-modules:bad-return-value-key # TODO: rename offending return values if possible, or adjust this comment in case the name is OK
plugins/modules/keycloak_realm_keys_metadata_info.py validate-modules:bad-return-value-key # TODO: rename offending return values if possible, or adjust this comment in case the name is OK
plugins/modules/ldap_search.py pylint:ansible-bad-import-from
plugins/modules/lxc_container.py validate-modules:use-run-command-not-popen
plugins/modules/lxc_container.py pylint:ansible-bad-function
plugins/modules/mail.py pylint:ansible-bad-import-from
plugins/modules/make.py pylint:ansible-bad-import-from
plugins/modules/monit.py pylint:ansible-bad-import-from
plugins/modules/nosh.py validate-modules:bad-return-value-key # TODO: rename offending return values if possible, or adjust this comment in case the name is OK
plugins/modules/omapi_host.py validate-modules:bad-return-value-key # TODO: rename offending return values if possible, or adjust this comment in case the name is OK
plugins/modules/onepassword_info.py pylint:ansible-bad-function
plugins/modules/osx_defaults.py pylint:ansible-bad-import-from
plugins/modules/osx_defaults.py validate-modules:parameter-state-invalid-choice
plugins/modules/parted.py validate-modules:parameter-state-invalid-choice
plugins/modules/rhevm.py validate-modules:parameter-state-invalid-choice
plugins/modules/sl_vm.py pylint:ansible-bad-import-from
plugins/modules/solaris_zone.py pylint:ansible-bad-function
plugins/modules/ssh_config.py pylint:ansible-bad-import-from
plugins/modules/terraform.py pylint:ansible-bad-import-from
plugins/modules/timezone.py pylint:ansible-bad-import-from

View File

@@ -116,10 +116,10 @@ BASIC_OUTPUT_CASES = [
@pytest.mark.parametrize('output, expected', BASIC_OUTPUT_CASES + [
('', monit.Status.MISSING),
(TEST_OUTPUT % ('Process', 'processY', 'OK'), monit.Status.MISSING),
(TEST_OUTPUT % ('Process', 'processX', 'Not Monitored - start pending'), monit.Status.OK),
(TEST_OUTPUT % ('Process', 'processX', 'Monitored - stop pending'), monit.Status.NOT_MONITORED),
(TEST_OUTPUT % ('Process', 'processX', 'Monitored - restart pending'), monit.Status.OK),
(TEST_OUTPUT % ('Process', 'processX', 'Not Monitored - monitor pending'), monit.Status.OK),
(TEST_OUTPUT % ('Process', 'processX', 'Not Monitored - start pending'), monit.Status.OK.pending()),
(TEST_OUTPUT % ('Process', 'processX', 'Monitored - stop pending'), monit.Status.NOT_MONITORED.pending()),
(TEST_OUTPUT % ('Process', 'processX', 'Monitored - restart pending'), monit.Status.OK.pending()),
(TEST_OUTPUT % ('Process', 'processX', 'Not Monitored - monitor pending'), monit.Status.OK.pending()),
(TEST_OUTPUT % ('Process', 'processX', 'Does not exist'), monit.Status.DOES_NOT_EXIST),
(TEST_OUTPUT % ('Process', 'processX', 'Not monitored'), monit.Status.NOT_MONITORED),
(TEST_OUTPUT % ('Process', 'processX', 'Running'), monit.Status.OK),

View File

@@ -79,6 +79,36 @@ test_cases:
rc: 0
out: ''
err: ''
- id: test_property_set_property_bool_same_value
input:
channel: xfce4-session
property: /general/SaveOnExit
state: present
value_type: bool
value: false
output:
changed: false
previous_value: 'false'
type: bool
value: 'false'
version: 4.18.1
mocks:
run_command:
- command: [/testbin/xfconf-query, --version]
environ: *env-def
rc: 0
out: *version-output
err: ''
- command: [/testbin/xfconf-query, --channel, xfce4-session, --property, /general/SaveOnExit]
environ: *env-def
rc: 0
out: "false\n"
err: ''
- command: [/testbin/xfconf-query, --channel, xfce4-session, --property, /general/SaveOnExit, --create, --type, bool, --set, 'false']
environ: *env-def
rc: 0
out: ''
err: ''
- id: test_property_set_property_bool_false
input:
channel: xfce4-session
@@ -90,7 +120,7 @@ test_cases:
changed: true
previous_value: 'true'
type: bool
value: 'False'
value: 'false'
version: 4.18.1
mocks:
run_command: