diff --git a/lib/ansible/module_common.py b/lib/ansible/module_common.py index a8083100ea..fb07049eaa 100644 --- a/lib/ansible/module_common.py +++ b/lib/ansible/module_common.py @@ -859,7 +859,7 @@ class AnsibleModule(object): self.cleanup(tmp_dest) self.fail_json(msg='Could not replace file: %s to %s: %s' % (src, dest, e)) - def run_command(self, args, check_rc=False, close_fds=False, executable=None, data=None): + def run_command(self, args, check_rc=False, close_fds=False, executable=None, data=None, binary_data=False): ''' Execute a command, returns rc, stdout, and stderr. args is the command to run @@ -895,7 +895,8 @@ class AnsibleModule(object): stderr=subprocess.PIPE) if data: cmd.stdin.write(data) - cmd.stdin.write('\\n') + if not binary_data: + cmd.stdin.write('\\n') out, err = cmd.communicate() rc = cmd.returncode except (OSError, IOError), e: diff --git a/library/packaging/apt_key b/library/packaging/apt_key index de4ada8c39..d996a61a95 100644 --- a/library/packaging/apt_key +++ b/library/packaging/apt_key @@ -112,7 +112,7 @@ def download_key(module, url): def add_key(module, key): cmd = "apt-key add -" - (rc, out, err) = module.run_command(cmd, data=key, check_rc=True) + (rc, out, err) = module.run_command(cmd, data=key, check_rc=True, binary_data=True) return True def remove_key(module, key_id):