diff --git a/library/packaging/apt_key b/library/packaging/apt_key index d773bf28b8..25c90b7100 100644 --- a/library/packaging/apt_key +++ b/library/packaging/apt_key @@ -42,6 +42,11 @@ options: default: none description: - keyfile contents + file: + required: false + default: none + description: + - keyfile path url: required: false default: none @@ -67,6 +72,9 @@ EXAMPLES = ''' # Remove a Apt specific signing key - apt_key: id=473041FA state=absent + +# Add a key from a file on the Ansible server +- apt_key: data="{{ lookup('file', 'apt.gpg') }}" state=present ''' @@ -121,9 +129,15 @@ def download_key(module, url): module.fail_json(msg="error getting key id from url", traceback=format_exc()) +<<<<<<< HEAD def add_key(module, key): cmd = "apt-key add -" (rc, out, err) = module.run_command(cmd, data=key, check_rc=True, binary_data=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) +>>>>>>> 77159d21da40f6fcb0bfdcb1886f57acf68ea4f4 return True def remove_key(module, key_id): @@ -138,6 +152,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') ), @@ -147,6 +162,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 @@ -160,14 +176,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):