30 Commits

Author SHA1 Message Date
mubashirusman
5a5ed16a41 Merge 6280bb8ec8 into f0b5f039d3 2025-04-10 23:05:40 +02:00
softwarefactory-project-zuul[bot]
f0b5f039d3 Merge pull request #613 from simonLeary42/rewrite-mount-tests
improve mount integration tests

SUMMARY

added check mode tests (assert no changes made)
added comments to make file less scary

ISSUE TYPE
tests
COMPONENT NAME
mount
ADDITIONAL INFORMATION

Reviewed-by: Abhijeet Kasurde
Reviewed-by: Hideki Saito <saito@fgrep.org>
2025-04-10 03:58:40 +00:00
softwarefactory-project-zuul[bot]
5ceb40b600 Merge pull request #618 from saito-hideki/issie/612
[AZP] Remove ubuntu20.04 from CI tests

SUMMARY
Remove ubuntu20.04 from CI tests

Fixes #612

ISSUE TYPE

CI Pull Request

COMPONENT NAME

ansible.posix

ADDITIONAL INFORMATION
None
2025-03-28 01:32:12 +00:00
Hideki Saito
2cec8cbed5 [CI] Remove ubuntu20.04 from CI tests
* Fixes #612

Signed-off-by: Hideki Saito <saito@fgrep.org>
2025-03-28 10:04:16 +09:00
Pavel Knoblokh
1b8aeb03cb sysctl: Add custom sysctl file example (#606) 2025-03-26 19:21:08 -07:00
Abhijeet Kasurde
eead50b287 Apply suggestions from code review 2025-03-26 12:36:08 -07:00
Simon Leary
4ff0e3aa13 remove assertion of changed 2025-03-26 15:20:42 -04:00
Simon Leary
979f00ce75 fix lint errors 2025-03-26 15:18:35 -04:00
softwarefactory-project-zuul[bot]
ed3d322fd5 Merge pull request #617 from Akasurde/ci_fix
[CI] update test containers

SUMMARY
Signed-off-by: Abhijeet Kasurde Akasurde@redhat.com
ISSUE TYPE

Bugfix Pull Request

Reviewed-by: Matt Clay
2025-03-26 19:00:30 +00:00
Abhijeet Kasurde
d9f54eb9d4 [CI] update test containers
Signed-off-by: Abhijeet Kasurde <Akasurde@redhat.com>
2025-03-26 09:02:59 -07:00
Simon Leary
7d8da00f79 add (check mode) to task name 2025-03-06 10:46:57 -05:00
Simon Leary
f087d58cbe fix bugs 2025-03-05 00:39:46 +00:00
Simon Leary
eb740e97d4 add check mode tests, add comments 2025-03-05 00:33:11 +00:00
softwarefactory-project-zuul[bot]
44a2151dbf Merge pull request #604 from saito-hideki/pr/bump_up_version_3.0.0
Bump version to 3.0.0 for the next release

SUMMARY
Bump version to 3.0.0 for the next release on main branch:

Fixes #603

ISSUE TYPE

Feature Pull Request

COMPONENT NAME

ansible.posix

ADDITIONAL INFORMATION

None
2024-12-10 08:59:03 +00:00
Hideki Saito
83288b9020 Bump version to 3.0.0 for the next release
* Fixes #603

Signed-off-by: Hideki Saito <saito@fgrep.org>
2024-12-10 17:30:22 +09:00
softwarefactory-project-zuul[bot]
4c6898ee6e Merge pull request #600 from saito-hideki/release_2.0.0
Release 2.0.0 commit

SUMMARY
Release 2.0.0 commit

Release Plan #149

ISSUE TYPE
Feature Pull Request
COMPONENT NAME
ansible.posix
ADDITIONAL INFORMATION
This will be merged on 5 December if there are no problems

Reviewed-by: Adam Miller <admiller@redhat.com>
Reviewed-by: Andrew Klychkov <aklychko@redhat.com>
2024-12-05 00:48:30 +00:00
Hideki Saito
f5eae12146 Release 2.0.0 commit
Signed-off-by: Hideki Saito <saito@fgrep.org>
2024-12-04 09:46:44 +09:00
softwarefactory-project-zuul[bot]
f632fad9d4 Merge pull request #598 from saito-hideki/issue/586
[Breaking Change] [firewalld] Change type of icmp_block_inversion option from str to bool

SUMMARY
Changed the type of icmp_block_inversion option from str to bool

Fixes #586

ISSUE TYPE

Bugfix Pull Request

COMPONENT NAME

ansible.posix.firewalld

ADDITIONAL INFORMATION
Related  #582 and #584

Reviewed-by: Adam Miller <admiller@redhat.com>
Reviewed-by: Andrew Klychkov <aklychko@redhat.com>
2024-12-02 23:50:26 +00:00
softwarefactory-project-zuul[bot]
74edb72249 Merge pull request #597 from vbotka/mount-fix-comment
Remove comment from fstab entry on updating.

SUMMARY
Fix #595.
ISSUE TYPE

Bugfix Pull Request

COMPONENT NAME
ansible.posix.mount
ADDITIONAL INFORMATION

Reviewed-by: Hideki Saito <saito@fgrep.org>
Reviewed-by: Vladimir Botka <vbotka@gmail.com>
2024-11-29 02:59:28 +00:00
Vladimir Botka
91129ed381 Fix changelog fragment module name. 2024-11-29 03:34:14 +01:00
Vladimir Botka
7b8d627552 Changelog fragment added. 2024-11-28 08:17:41 +01:00
Hideki Saito
6175a5028b Change type of icmp_block_inversion option from str to bool
* Fixes #586

Signed-off-by: Hideki Saito <saito@fgrep.org>
2024-11-28 14:19:20 +09:00
Vladimir Botka
8e34860d6c Fix #595. Remove comment from fstab entry on updating. 2024-11-21 20:54:27 +01:00
MubashirUsman
6280bb8ec8 Add integration test for --system option 2024-11-03 23:21:39 +01:00
mubashirusman
3b79155e68 Merge branch 'ansible-collections:main' into main 2024-11-03 23:07:55 +01:00
mubashirusman
05724a097b Merge branch 'ansible-collections:main' into main 2024-10-15 22:26:52 +02:00
MubashirUsman
7e1b76c46e write sysctl reverted 2024-05-19 17:47:12 +02:00
MubashirUsman
505a4aaa09 system_wide in defining module 2024-05-19 17:29:02 +02:00
MubashirUsman
d70d2aaaa7 read sysctl_dir files 2024-05-19 16:29:36 +02:00
MubashirUsman
806ff5c1a3 added sysctl_dirs variable and system_wide var 2024-05-19 13:54:43 +02:00
15 changed files with 127 additions and 120 deletions

View File

@@ -57,23 +57,8 @@ stages:
test: units test: units
- name: Lint - name: Lint
test: lint test: lint
- stage: Sanity_2_19
displayName: Ansible 2.19 sanitay & Units & Lint
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
nameFormat: "{0}"
testFormat: 2.19/{0OI}
targets:
- name: Sanity
test: sanity
- name: Units
test: units
- name: Lint
test: lint
- stage: Sanity_2_18 - stage: Sanity_2_18
displayName: Ansible 2.18 sanity & Units & Lint displayName: Ansible 2.18 sanity
dependsOn: [] dependsOn: []
jobs: jobs:
- template: templates/matrix.yml - template: templates/matrix.yml
@@ -88,11 +73,10 @@ stages:
- name: Lint - name: Lint
test: lint test: lint
- stage: Sanity_2_17 - stage: Sanity_2_17
displayName: Ansible 2.17 sanity & Units & Lint displayName: Ansible 2.17 sanity
dependsOn: [] dependsOn: []
jobs: jobs:
- template: templates/matrix.yml - template: templates/matrix.yml
I
parameters: parameters:
nameFormat: "{0}" nameFormat: "{0}"
testFormat: 2.17/{0} testFormat: 2.17/{0}
@@ -104,7 +88,7 @@ stages:
- name: Lint - name: Lint
test: lint test: lint
- stage: Sanity_2_16 - stage: Sanity_2_16
displayName: Ansible 2.16 sanity & Units & Lint displayName: Ansible 2.16 sanity
dependsOn: [] dependsOn: []
jobs: jobs:
- template: templates/matrix.yml - template: templates/matrix.yml
@@ -117,7 +101,7 @@ stages:
- name: Units - name: Units
test: units test: units
- stage: Sanity_2_15 - stage: Sanity_2_15
displayName: Ansible 2.15 sanity & Units & Lint displayName: Ansible 2.15 sanity
dependsOn: [] dependsOn: []
jobs: jobs:
- template: templates/matrix.yml - template: templates/matrix.yml
@@ -144,20 +128,6 @@ stages:
test: ubuntu2204 test: ubuntu2204
- name: Ubuntu 24.04 - name: Ubuntu 24.04
test: ubuntu2404 test: ubuntu2404
- stage: Docker_2_19
displayName: Docker 2.19
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: devel/linux/{0}/1
targets:
- name: Fedora 41
test: fedora41
- name: Ubuntu 22.04
test: ubuntu2204
- name: Ubuntu 24.04
test: ubuntu2404
- stage: Docker_2_18 - stage: Docker_2_18
displayName: Docker 2.18 displayName: Docker 2.18
dependsOn: [] dependsOn: []
@@ -225,24 +195,6 @@ stages:
parameters: parameters:
testFormat: devel/{0}/1 testFormat: devel/{0}/1
targets: targets:
- name: RHEL 10.0
test: rhel/10.0
- name: RHEL 9.5
test: rhel/9.5
- name: FreeBSD 14.2
test: freebsd/14.2
- name: FreeBSD 13.5
test: freebsd/13.5
- stage: Remote_2_19
displayName: Remote 2.19
dependsOn: []
jobs:
- template: templates/matrix.yml
parameters:
testFormat: devel/{0}/1
targets:
- name: RHEL 10.0
test: rhel/10.0
- name: RHEL 9.5 - name: RHEL 9.5
test: rhel/9.5 test: rhel/9.5
- name: FreeBSD 14.2 - name: FreeBSD 14.2
@@ -285,6 +237,8 @@ stages:
test: rhel/8.8 test: rhel/8.8
- name: RHEL 9.2 - name: RHEL 9.2
test: rhel/9.2 test: rhel/9.2
- name: FreeBSD 13.2
test: freebsd/13.2
- stage: Remote_2_15 - stage: Remote_2_15
displayName: Remote 2.15 displayName: Remote 2.15
@@ -300,6 +254,8 @@ stages:
test: rhel/8.7 test: rhel/8.7
- name: RHEL 9.1 - name: RHEL 9.1
test: rhel/9.1 test: rhel/9.1
- name: FreeBSD 13.2
test: freebsd/13.2
## Finally ## Finally
@@ -318,9 +274,6 @@ stages:
- Sanity_2_18 - Sanity_2_18
- Remote_2_18 - Remote_2_18
- Docker_2_18 - Docker_2_18
- Sanity_2_19
- Remote_2_19
- Docker_2_19
- Sanity_devel - Sanity_devel
- Remote_devel - Remote_devel
- Docker_devel - Docker_devel

View File

@@ -4,27 +4,6 @@ ansible.posix Release Notes
.. contents:: Topics .. contents:: Topics
v2.1.0
======
Release Summary
---------------
This is the minor release of the ``ansible.posix`` collection.
This changelog contains all changes to the modules and plugins
in the stable-2 branch that have been added after the release of
``ansible.posix`` 2.0.0
Minor Changes
-------------
- profile_tasks and profile_roles callback plugins - avoid deleted/deprecated callback functions, instead use modern interface that was introduced a longer time ago (https://github.com/ansible-collections/ansible.posix/issues/650).
Bugfixes
--------
- ansible.posix.cgroup_perf_recap - fixes json module load path (https://github.com/ansible-collections/ansible.posix/issues/630).
v2.0.0 v2.0.0
====== ======

View File

@@ -490,25 +490,3 @@ releases:
- 597_remove_fstab_comment_on_updating.yml - 597_remove_fstab_comment_on_updating.yml
- 598_icmp_block_inversion.yml - 598_icmp_block_inversion.yml
release_date: '2024-12-04' release_date: '2024-12-04'
2.1.0:
changes:
bugfixes:
- ansible.posix.cgroup_perf_recap - fixes json module load path (https://github.com/ansible-collections/ansible.posix/issues/630).
minor_changes:
- profile_tasks and profile_roles callback plugins - avoid deleted/deprecated
callback functions, instead use modern interface that was introduced a longer
time ago (https://github.com/ansible-collections/ansible.posix/issues/650).
release_summary: 'This is the minor release of the ``ansible.posix`` collection.
This changelog contains all changes to the modules and plugins
in the stable-2 branch that have been added after the release of
``ansible.posix`` 2.0.0'
fragments:
- 2.1.0.yml
- 631_fixes_module_path.yml
- 642_ci_add_rhel10.yml
- 650-profile_tasks_roles.yml
- 654_ci_bump_core_version.yml
release_date: '2025-07-16'

View File

@@ -0,0 +1,2 @@
trivial:
- Bump version to 3.0.0 for the next release (https://github.com/ansible-collections/ansible.posix/issues/603).

View File

@@ -0,0 +1,2 @@
trivial:
- Remove ubuntu20.04 from CI tests (https://github.com/ansible-collections/ansible.posix/issues/612).

View File

@@ -1,7 +1,7 @@
--- ---
namespace: ansible namespace: ansible
name: posix name: posix
version: 2.1.0 version: 3.0.0
readme: README.md readme: README.md
authors: authors:
- Ansible (github.com/ansible) - Ansible (github.com/ansible)

View File

@@ -132,7 +132,6 @@ DOCUMENTATION = '''
import csv import csv
import datetime import datetime
import json
import os import os
import time import time
import threading import threading
@@ -143,7 +142,7 @@ from functools import partial
from ansible.module_utils._text import to_bytes, to_text from ansible.module_utils._text import to_bytes, to_text
from ansible.module_utils.six import with_metaclass from ansible.module_utils.six import with_metaclass
from ansible.parsing.ajson import AnsibleJSONEncoder from ansible.parsing.ajson import AnsibleJSONEncoder, json
from ansible.plugins.callback import CallbackBase from ansible.plugins.callback import CallbackBase

View File

@@ -124,7 +124,10 @@ class CallbackModule(CallbackBase):
def v2_playbook_on_handler_task_start(self, task): def v2_playbook_on_handler_task_start(self, task):
self._record_task(task) self._record_task(task)
def v2_playbook_on_stats(self, stats): def playbook_on_setup(self):
self._display_tasktime()
def playbook_on_stats(self, stats):
# Align summary report header with other callback plugin summary # Align summary report header with other callback plugin summary
self._display.banner("ROLES RECAP") self._display.banner("ROLES RECAP")

View File

@@ -189,7 +189,10 @@ class CallbackModule(CallbackBase):
def v2_playbook_on_handler_task_start(self, task): def v2_playbook_on_handler_task_start(self, task):
self._record_task(task) self._record_task(task)
def v2_playbook_on_stats(self, stats): def playbook_on_setup(self):
self._display_tasktime()
def playbook_on_stats(self, stats):
# Align summary report header with other callback plugin summary # Align summary report header with other callback plugin summary
self._display.banner("TASKS RECAP") self._display.banner("TASKS RECAP")

View File

@@ -80,6 +80,13 @@ EXAMPLES = r'''
sysctl_file: /tmp/test_sysctl.conf sysctl_file: /tmp/test_sysctl.conf
reload: false reload: false
# Enable resource limits management in FreeBSD
- ansible.posix.sysctl:
name: kern.racct.enable
value: '1'
sysctl_file: /boot/loader.conf
reload: false
# Set ip forwarding on in /proc and verify token value with the sysctl command # Set ip forwarding on in /proc and verify token value with the sysctl command
- ansible.posix.sysctl: - ansible.posix.sysctl:
name: net.ipv4.ip_forward name: net.ipv4.ip_forward
@@ -101,6 +108,7 @@ import os
import platform import platform
import re import re
import tempfile import tempfile
import glob
from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.six import string_types from ansible.module_utils.six import string_types
@@ -114,12 +122,24 @@ class SysctlModule(object):
# success or failure. # success or failure.
LANG_ENV = {'LANG': 'C', 'LC_ALL': 'C', 'LC_MESSAGES': 'C'} LANG_ENV = {'LANG': 'C', 'LC_ALL': 'C', 'LC_MESSAGES': 'C'}
# We define a variable to keep all the directories to be read, equivalent to
# (/sbin/sysctl --system) option
SYSCTL_DIRS = [
'/etc/sysctl.d/*.conf',
'/run/sysctl.d/*.conf',
'/usr/local/lib/sysctl.d/*.conf',
'/usr/lib/sysctl.d/*.conf',
'/lib/sysctl.d/*.conf',
'/etc/sysctl.conf'
]
def __init__(self, module): def __init__(self, module):
self.module = module self.module = module
self.args = self.module.params self.args = self.module.params
self.sysctl_cmd = self.module.get_bin_path('sysctl', required=True) self.sysctl_cmd = self.module.get_bin_path('sysctl', required=True)
self.sysctl_file = self.args['sysctl_file'] self.sysctl_file = self.args['sysctl_file']
self.system_Wide = self.args['system_Wide']
self.proc_value = None # current token value in proc fs self.proc_value = None # current token value in proc fs
self.file_value = None # current token value in file self.file_value = None # current token value in file
@@ -299,15 +319,22 @@ class SysctlModule(object):
# https://github.com/ansible/ansible/issues/58158 # https://github.com/ansible/ansible/issues/58158
return return
else: else:
# system supports reloading via the -p flag to sysctl, so we'll use that if self.system_Wide:
sysctl_args = [self.sysctl_cmd, '-p', self.sysctl_file] for sysctl_file in self.SYSCTL_DIRS:
if self.args['ignoreerrors']: for conf_file in glob.glob(sysctl_file):
sysctl_args.insert(1, '-e') rc, out, err = self.module.run_command([self.sysctl_cmd, '-p', conf_file], environ_update=self.LANG_ENV)
if rc != 0 or self._stderr_failed(err):
self.module.fail_json(msg="Failed to reload sysctl: %s" % to_native(out) + to_native(err))
else:
# system supports reloading via the -p flag to sysctl, so we'll use that
sysctl_args = [self.sysctl_cmd, '-p', self.sysctl_file]
if self.args['ignoreerrors']:
sysctl_args.insert(1, '-e')
rc, out, err = self.module.run_command(sysctl_args, environ_update=self.LANG_ENV) rc, out, err = self.module.run_command(sysctl_args, environ_update=self.LANG_ENV)
if rc != 0 or self._stderr_failed(err): if rc != 0 or self._stderr_failed(err):
self.module.fail_json(msg="Failed to reload sysctl: %s" % to_native(out) + to_native(err)) self.module.fail_json(msg="Failed to reload sysctl: %s" % to_native(out) + to_native(err))
# ============================================================== # ==============================================================
# SYSCTL FILE MANAGEMENT # SYSCTL FILE MANAGEMENT
@@ -394,7 +421,8 @@ def main():
reload=dict(default=True, type='bool'), reload=dict(default=True, type='bool'),
sysctl_set=dict(default=False, type='bool'), sysctl_set=dict(default=False, type='bool'),
ignoreerrors=dict(default=False, type='bool'), ignoreerrors=dict(default=False, type='bool'),
sysctl_file=dict(default='/etc/sysctl.conf', type='path') sysctl_file=dict(default='/etc/sysctl.conf', type='path'),
system_wide=dict(default=False, type='bool'), # system_wide parameter
), ),
supports_check_mode=True, supports_check_mode=True,
required_if=[('state', 'present', ['value'])], required_if=[('state', 'present', ['value'])],

View File

@@ -46,12 +46,6 @@
path: "{{ test_dir }}" path: "{{ test_dir }}"
state: directory state: directory
mode: "0755" mode: "0755"
- name: Install acl package
ansible.builtin.package:
name: acl
state: present
############################################################################## ##############################################################################
- name: Grant ansible user read access to a file - name: Grant ansible user read access to a file
ansible.posix.acl: ansible.posix.acl:

View File

@@ -20,4 +20,5 @@
ansible.builtin.include_tasks: seboolean.yml ansible.builtin.include_tasks: seboolean.yml
when: when:
- ansible_selinux is defined - ansible_selinux is defined
- ansible_selinux
- ansible_selinux.status == 'enabled' - ansible_selinux.status == 'enabled'

View File

@@ -19,21 +19,23 @@
- name: Debug message for when SELinux is disabled - name: Debug message for when SELinux is disabled
ansible.builtin.debug: ansible.builtin.debug:
msg: SELinux is disabled msg: SELinux is disabled
when: ansible_selinux is defined and ansible_selinux.status == 'disabled' when: ansible_selinux is defined and not ansible_selinux
- name: Debug message for when SELinux is enabled and not disabled - name: Debug message for when SELinux is enabled and not disabled
ansible.builtin.debug: ansible.builtin.debug:
msg: SELinux is {{ ansible_selinux.status }} msg: SELinux is {{ ansible_selinux.status }}
when: ansible_selinux is defined when: ansible_selinux is defined and ansible_selinux
- name: Include_tasks for when SELinux is enabled - name: Include_tasks for when SELinux is enabled
ansible.builtin.include_tasks: selinux.yml ansible.builtin.include_tasks: selinux.yml
when: when:
- ansible_selinux is defined - ansible_selinux is defined
- ansible_selinux
- ansible_selinux.status == 'enabled' - ansible_selinux.status == 'enabled'
- name: Include tasks for selogin when SELinux is enabled - name: Include tasks for selogin when SELinux is enabled
ansible.builtin.include_tasks: selogin.yml ansible.builtin.include_tasks: selogin.yml
when: when:
- ansible_selinux is defined - ansible_selinux is defined
- ansible_selinux
- ansible_selinux.status == 'enabled' - ansible_selinux.status == 'enabled'

View File

@@ -229,6 +229,40 @@
ansible.builtin.assert: ansible.builtin.assert:
that: that:
- sysctl_test4 is failed - sysctl_test4 is failed
##
## sysctl --system
##
- name: Set vm.swappiness to 10 with --system option
ansible.posix.sysctl:
name: vm.swappiness
value: 10
state: present
reload: false
sysctl_set: true
system: true
register: sysctl_system_test1
- name: Check with sysctl command
ansible.builtin.command: sysctl vm.swappiness
changed_when: false
register: sysctl_check_system1
- name: Debug sysctl_system_test1 sysctl_check_system1
ansible.builtin.debug:
var: item
verbosity: 1
with_items:
- "{{ sysctl_system_test1 }}"
- "{{ sysctl_check_system1 }}"
- name: Validate results for --system option
ansible.builtin.assert:
that:
- sysctl_system_test1 is changed
- sysctl_check_system1.stdout_lines == ["vm.swappiness = 10"]
- name: Test on RHEL VMs - name: Test on RHEL VMs
when: when:
@@ -366,3 +400,33 @@
that: that:
- stat_result.stat.islnk is defined and stat_result.stat.islnk - stat_result.stat.islnk is defined and stat_result.stat.islnk
- stat_result.stat.lnk_source == '/tmp/ansible_sysctl_test.conf' - stat_result.stat.lnk_source == '/tmp/ansible_sysctl_test.conf'
# Test sysctl: --system
- name: Set vm.swappiness to 10 with --system option
ansible.posix.sysctl:
name: vm.swappiness
value: 10
state: present
reload: false
sysctl_set: true
system: true
register: sysctl_system_test1
- name: Check with sysctl command
ansible.builtin.command: sysctl vm.swappiness
changed_when: false
register: sysctl_check_system1
- name: Debug sysctl_system_test1 sysctl_check_system1
ansible.builtin.debug:
var: item
verbosity: 1
with_items:
- "{{ sysctl_system_test1 }}"
- "{{ sysctl_check_system1 }}"
- name: Validate results for --system option
ansible.builtin.assert:
that:
- sysctl_system_test1 is changed
- sysctl_check_system1.stdout_lines == ["vm.swappiness = 10"]

View File

@@ -1 +0,0 @@
tests/utils/shippable/timing.py shebang