Fix issue with VirtualBMC client path

If SELinux is enforcing we install VirtualBMC as a system Python
package. The module is executed using become, and root typically doesn't
have /usr/local/bin/ in it's PATH.

Use an absolute path to resolve this issue.

Change-Id: Ia278518d2c55351c55abca1122e7cad7179ad4d8
This commit is contained in:
Mark Goddard 2020-04-08 12:43:07 +01:00
parent 53246242e9
commit 1b01c94f15
2 changed files with 4 additions and 6 deletions

View File

@ -31,15 +31,13 @@ INTERVAL = 0.5
def _vbmc_command(module, args):
path_prefix = ("%s/bin" % module.params["virtualenv"]
if module.params["virtualenv"] else None)
cmd = ["vbmc", "--no-daemon"]
cmd = [module.params["vbmc_path"], "--no-daemon"]
if module.params["log_directory"]:
log_file = os.path.join(module.params["log_directory"],
"vbmc-%s.log" % module.params["domain"])
cmd += ["--log-file", log_file]
cmd += args
result = module.run_command(cmd, check_rc=True, path_prefix=path_prefix)
result = module.run_command(cmd, check_rc=True)
rc, out, err = result
return out
@ -150,7 +148,7 @@ def main():
log_directory=dict(type='str'),
state=dict(type=str, default='present',
choices=['present', 'absent']),
virtualenv=dict(type='str'),
vbmc_path=dict(type='str'),
),
supports_check_mode=True,
)

View File

@ -9,5 +9,5 @@
libvirt_uri: "{{ vbmc_libvirt_uri | default(omit, true) }}"
log_directory: "{{ vbmc_log_directory | default(omit, true) }}"
state: "{{ vbmc_state }}"
virtualenv: "{{ vbmc_virtualenv_path | default(omit, true) }}"
vbmc_path: "{{ vbmc_virtualenv_path | default('/usr/local', true) ~ '/bin/vbmc' }}"
become: true