mirror of
https://github.com/ansible-collections/ansible.posix.git
synced 2026-03-08 10:35:22 +01:00
Merge e5733c5e49 into d36a289deb
This commit is contained in:
commit
d693e5bcdb
3 changed files with 38 additions and 2 deletions
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
bugfixes:
|
||||
- sysctl - fix sysctl to work properly on symlinks (https://github.com/ansible-collections/ansible.posix/issues/111).
|
||||
|
|
@ -366,7 +366,7 @@ class SysctlModule(object):
|
|||
# Completely rewrite the sysctl file
|
||||
def write_sysctl(self):
|
||||
# open a tmp file
|
||||
fd, tmp_path = tempfile.mkstemp('.conf', '.ansible_m_sysctl_', os.path.dirname(self.sysctl_file))
|
||||
fd, tmp_path = tempfile.mkstemp('.conf', '.ansible_m_sysctl_', os.path.dirname(os.path.realpath(self.sysctl_file)))
|
||||
f = open(tmp_path, "w")
|
||||
try:
|
||||
for l in self.fixed_lines:
|
||||
|
|
@ -377,7 +377,7 @@ class SysctlModule(object):
|
|||
f.close()
|
||||
|
||||
# replace the real one
|
||||
self.module.atomic_move(tmp_path, self.sysctl_file)
|
||||
self.module.atomic_move(tmp_path, os.path.realpath(self.sysctl_file))
|
||||
|
||||
|
||||
# ==============================================================
|
||||
|
|
|
|||
|
|
@ -332,3 +332,36 @@
|
|||
that:
|
||||
- sysctl_invalid_set1 is failed
|
||||
- "'vm.mmap_rnd_bits' not in sysctl_invalid_conf_content.stdout"
|
||||
|
||||
# Test sysctl: sysctl_file is symlink
|
||||
- name: Create link source
|
||||
copy:
|
||||
content: |
|
||||
# Testing Ansible Sysctl module on symlink.
|
||||
dest: /tmp/ansible_sysctl_test.conf
|
||||
|
||||
- name: Create symlink to the conf file
|
||||
file:
|
||||
src: /tmp/ansible_sysctl_test.conf
|
||||
dest: /tmp/ansible_sysctl_test_symlink.conf
|
||||
state: link
|
||||
|
||||
- name: Use sysctl module with symlink sysctl file
|
||||
sysctl:
|
||||
name: 'kernel.randomize_va_space'
|
||||
value: '1'
|
||||
sysctl_file: /tmp/ansible_sysctl_test_symlink.conf
|
||||
state: present
|
||||
sysctl_set: false
|
||||
reload: false
|
||||
|
||||
- name: Stat sysctl file
|
||||
stat:
|
||||
path: /tmp/ansible_sysctl_test_symlink.conf
|
||||
register: stat_result
|
||||
|
||||
- name: Ensure the sysctl file remains a symlink
|
||||
assert:
|
||||
that:
|
||||
- stat_result.stat.islnk is defined and stat_result.stat.islnk
|
||||
- stat_result.stat.lnk_source == '/tmp/ansible_sysctl_test.conf'
|
||||
|
|
|
|||
Loading…
Reference in a new issue