mirror of
https://github.com/ansible-collections/ansible.posix.git
synced 2026-01-11 15:15:26 +01:00
170 lines
5.4 KiB
YAML
170 lines
5.4 KiB
YAML
---
|
|
# Additional tests specifically for system_wide parameter functionality
|
|
|
|
- name: Test system_wide parameter comprehensive functionality
|
|
block:
|
|
# Test system_wide with reload=true
|
|
- name: Set vm.dirty_expire_centisecs with system_wide=true
|
|
ansible.posix.sysctl:
|
|
name: vm.dirty_expire_centisecs
|
|
value: 3000
|
|
state: present
|
|
reload: true
|
|
system_wide: true
|
|
register: sysctl_system_wide_reload_test
|
|
|
|
- name: Check vm.dirty_expire_centisecs value
|
|
ansible.builtin.command: sysctl -n vm.dirty_expire_centisecs
|
|
changed_when: false
|
|
register: sysctl_check_dirty_expire
|
|
|
|
- name: Validate system_wide with reload=true
|
|
ansible.builtin.assert:
|
|
that:
|
|
- sysctl_system_wide_reload_test is changed
|
|
- sysctl_check_dirty_expire.stdout == "3000"
|
|
|
|
# Test system_wide=false behavior (default)
|
|
- name: Create custom sysctl file for testing system_wide=false
|
|
ansible.builtin.copy:
|
|
content: |
|
|
# Custom sysctl test file
|
|
vm.dirty_background_ratio=5
|
|
dest: "{{ output_dir_test }}/custom_sysctl.conf"
|
|
mode: "0644"
|
|
|
|
- name: Set vm.dirty_background_ratio with system_wide=false
|
|
ansible.posix.sysctl:
|
|
name: vm.dirty_background_ratio
|
|
value: 10
|
|
state: present
|
|
reload: true
|
|
system_wide: false
|
|
sysctl_file: "{{ output_dir_test }}/custom_sysctl.conf"
|
|
register: sysctl_system_false_test
|
|
|
|
- name: Check custom sysctl file content
|
|
ansible.builtin.command: cat {{ output_dir_test }}/custom_sysctl.conf
|
|
changed_when: false
|
|
register: custom_sysctl_content
|
|
|
|
- name: Validate system_wide=false behavior
|
|
ansible.builtin.assert:
|
|
that:
|
|
- sysctl_system_false_test is changed
|
|
- "'vm.dirty_background_ratio=10' in custom_sysctl_content.stdout"
|
|
|
|
# Test system_wide with check mode
|
|
- name: Test system_wide in check mode
|
|
ansible.posix.sysctl:
|
|
name: vm.swappiness
|
|
value: 25
|
|
state: present
|
|
reload: true
|
|
system_wide: true
|
|
check_mode: true
|
|
register: sysctl_system_wide_check_mode
|
|
|
|
- name: Validate check mode works with system_wide
|
|
ansible.builtin.assert:
|
|
that:
|
|
- sysctl_system_wide_check_mode is changed
|
|
|
|
# Test system_wide with missing directories (should not fail)
|
|
- name: Test system_wide with potentially missing directories
|
|
ansible.posix.sysctl:
|
|
name: vm.overcommit_memory
|
|
value: 1
|
|
state: present
|
|
reload: true
|
|
system_wide: true
|
|
ignoreerrors: true
|
|
register: sysctl_system_wide_missing_dirs
|
|
|
|
- name: Validate system_wide handles missing directories
|
|
ansible.builtin.assert:
|
|
that:
|
|
- sysctl_system_wide_missing_dirs is not failed
|
|
|
|
- name: Test system_wide with multiple configuration files (RHEL/CentOS only)
|
|
when:
|
|
- ansible_facts.os_family == 'RedHat'
|
|
- ansible_facts.virtualization_type != 'docker'
|
|
block:
|
|
# Test that system_wide processes multiple configuration files
|
|
- name: Create test sysctl.d file
|
|
ansible.builtin.copy:
|
|
content: |
|
|
# Test system-wide sysctl reload
|
|
vm.dirty_writeback_centisecs=500
|
|
dest: /etc/sysctl.d/99-ansible-test.conf
|
|
mode: "0644"
|
|
backup: true
|
|
register: test_sysctl_file
|
|
|
|
- name: Apply setting with system_wide to test multiple file processing
|
|
ansible.posix.sysctl:
|
|
name: vm.overcommit_memory
|
|
value: 1
|
|
state: present
|
|
reload: true
|
|
system_wide: true
|
|
register: sysctl_multifile_test
|
|
|
|
- name: Verify both settings are applied
|
|
ansible.builtin.shell: |
|
|
sysctl -n vm.dirty_writeback_centisecs
|
|
sysctl -n vm.overcommit_memory
|
|
changed_when: false
|
|
register: sysctl_multifile_check
|
|
|
|
- name: Validate multiple file processing
|
|
ansible.builtin.assert:
|
|
that:
|
|
- sysctl_multifile_test is changed
|
|
- "'500' in sysctl_multifile_check.stdout"
|
|
- "'1' in sysctl_multifile_check.stdout"
|
|
|
|
- name: Cleanup test sysctl.d file
|
|
ansible.builtin.file:
|
|
path: /etc/sysctl.d/99-ansible-test.conf
|
|
state: absent
|
|
|
|
- name: Test system_wide parameter combinations
|
|
block:
|
|
# Test system_wide with sysctl_set
|
|
- name: Test system_wide with sysctl_set=true
|
|
ansible.posix.sysctl:
|
|
name: vm.swappiness
|
|
value: 15
|
|
state: present
|
|
reload: true
|
|
system_wide: true
|
|
sysctl_set: true
|
|
register: sysctl_system_wide_set_test
|
|
|
|
- name: Check vm.swappiness value after system_wide + sysctl_set
|
|
ansible.builtin.command: sysctl -n vm.swappiness
|
|
changed_when: false
|
|
register: sysctl_check_swappiness_set
|
|
|
|
- name: Validate system_wide with sysctl_set
|
|
ansible.builtin.assert:
|
|
that:
|
|
- sysctl_system_wide_set_test is changed
|
|
- sysctl_check_swappiness_set.stdout == "15"
|
|
|
|
# Test system_wide with reload=false (should not trigger system reload)
|
|
- name: Test system_wide with reload=false
|
|
ansible.posix.sysctl:
|
|
name: vm.dirty_ratio
|
|
value: 25
|
|
state: present
|
|
reload: false
|
|
system_wide: true
|
|
register: sysctl_system_wide_no_reload
|
|
|
|
- name: Validate system_wide with reload=false
|
|
ansible.builtin.assert:
|
|
that:
|
|
- sysctl_system_wide_no_reload is changed
|