diff --git a/changelogs/fragments/42786-sysvinit-fix-2-issues.yml b/changelogs/fragments/42786-sysvinit-fix-2-issues.yml new file mode 100644 index 00000000000..8b260d3efb1 --- /dev/null +++ b/changelogs/fragments/42786-sysvinit-fix-2-issues.yml @@ -0,0 +1,4 @@ +bugfixes: +- "sysvinit module: handle values of optional parameters (https://github.com/ansible/ansible/pull/42786). + Don't disable service when `enabled` parameter isn't set. + Fix command when `arguments` parameter isn't set." diff --git a/lib/ansible/modules/system/sysvinit.py b/lib/ansible/modules/system/sysvinit.py index 95c1fe6bcee..c39e2866ec1 100644 --- a/lib/ansible/modules/system/sysvinit.py +++ b/lib/ansible/modules/system/sysvinit.py @@ -259,7 +259,7 @@ def main(): elif location.get('chkconfig'): (rc, out, err) = module.run_command("%s --level %s %s off" % (location['chkconfig'], ''.join(runlevels), name)) else: - if enabled != runlevel_status["enabled"]: + if enabled is not None and enabled != runlevel_status["enabled"]: result['changed'] = True result['status']['enabled']['changed'] = True @@ -300,7 +300,9 @@ def main(): def runme(doit): - cmd = "%s %s %s %s" % (script, doit, name, module.params['arguments']) + args = module.params['arguments'] + cmd = "%s %s %s" % (script, doit, "" if args is None else args) + # how to run if module.params['daemonize']: (rc, out, err) = daemonize(cmd)