diff --git a/library/packaging/apt_key b/library/packaging/apt_key index de4ada8c399..831d49a0b14 100644 --- a/library/packaging/apt_key +++ b/library/packaging/apt_key @@ -37,6 +37,11 @@ options: default: none description: - identifier of key + file: + required: false + default: none + description: + - keyfile path url: required: false default: none @@ -110,9 +115,9 @@ def download_key(module, url): module.fail_json(msg="error getting key id from url", traceback=format_exc()) -def add_key(module, key): - cmd = "apt-key add -" - (rc, out, err) = module.run_command(cmd, data=key, check_rc=True) +def add_key(module, key, data=None): + cmd = "apt-key add %s" % (key) + (rc, out, err) = module.run_command(cmd, data=data, check_rc=True) return True def remove_key(module, key_id): @@ -127,6 +132,7 @@ def main(): id=dict(required=False, default=None), url=dict(required=False), data=dict(required=False), + file=dict(required=False), key=dict(required=False), state=dict(required=False, choices=['present', 'absent'], default='present') ), @@ -136,6 +142,7 @@ def main(): key_id = module.params['id'] url = module.params['url'] data = module.params['data'] + file = module.params['file'] state = module.params['state'] changed = False @@ -149,14 +156,14 @@ def main(): if key_id and key_id in keys: module.exit_json(changed=False) else: - if not data: + if not file and not data: data = download_key(module, url) if key_id and key_id in keys: module.exit_json(changed=False) else: if module.check_mode: module.exit_json(changed=True) - add_key(module, data) + add_key(module, (file if file else "-"), data) changed=False keys2 = all_keys(module) if len(keys) != len(keys2):