From c7e22260355b4c08b6563fb98ebb6bf12dae5ff8 Mon Sep 17 00:00:00 2001 From: Maciej Delmanowski Date: Mon, 19 Nov 2018 13:40:06 +0100 Subject: [PATCH] Do not require TTY for 'apt-key' operations (#48580) The 'gpg' command supports the '--no-tty' option, which disables any use of a TTY during its execution. This parameter is sometimes required for non-interactive operation to avoid any questions for the user. The 'apt-key adv' command can pass additional parameters to the underlying 'gpg' command. This patch adds the '--no-tty' option to avoid issues with APT key imports when Ansible pipelining active, which disables the use of a dedicated TTY. --- lib/ansible/modules/packaging/os/apt_key.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ansible/modules/packaging/os/apt_key.py b/lib/ansible/modules/packaging/os/apt_key.py index 137404ec70..b5af75f8a6 100644 --- a/lib/ansible/modules/packaging/os/apt_key.py +++ b/lib/ansible/modules/packaging/os/apt_key.py @@ -216,9 +216,9 @@ def download_key(module, url): def import_key(module, keyring, keyserver, key_id): if keyring: - cmd = "%s --keyring %s adv --keyserver %s --recv %s" % (apt_key_bin, keyring, keyserver, key_id) + cmd = "%s --keyring %s adv --no-tty --keyserver %s --recv %s" % (apt_key_bin, keyring, keyserver, key_id) else: - cmd = "%s adv --keyserver %s --recv %s" % (apt_key_bin, keyserver, key_id) + cmd = "%s adv --no-tty --keyserver %s --recv %s" % (apt_key_bin, keyserver, key_id) for retry in range(5): lang_env = dict(LANG='C', LC_ALL='C', LC_MESSAGES='C') (rc, out, err) = module.run_command(cmd, environ_update=lang_env)