From e4ebca09452d78046618f67208405652ce6cc889 Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Fri, 22 Jul 2022 13:54:15 +0200 Subject: [PATCH] Fix ssh-agent tests (#493) * Work around stupid ssh-agent output format. * Workaround for Ansible 2.9. * Old jinja2... * Jinja2 on CentOS 6 is really annoying. --- .../targets/setup_ssh_agent/meta/main.yml | 1 + .../targets/setup_ssh_agent/tasks/main.yml | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/tests/integration/targets/setup_ssh_agent/meta/main.yml b/tests/integration/targets/setup_ssh_agent/meta/main.yml index 79897f1e..231aee9d 100644 --- a/tests/integration/targets/setup_ssh_agent/meta/main.yml +++ b/tests/integration/targets/setup_ssh_agent/meta/main.yml @@ -5,3 +5,4 @@ dependencies: - setup_ssh_keygen + - prepare_jinja2_compat diff --git a/tests/integration/targets/setup_ssh_agent/tasks/main.yml b/tests/integration/targets/setup_ssh_agent/tasks/main.yml index 9252a52e..2e224fb8 100644 --- a/tests/integration/targets/setup_ssh_agent/tasks/main.yml +++ b/tests/integration/targets/setup_ssh_agent/tasks/main.yml @@ -9,13 +9,22 @@ #################################################################### - name: Start an ssh agent to use for tests - shell: eval $(ssh-agent)>/dev/null&&echo "${SSH_AGENT_PID};${SSH_AUTH_SOCK}" - register: openssh_agent_env_vars + shell: ssh-agent -c | grep "^setenv" + register: openssh_agent_stdout + +- name: Convert output to dictionary + set_fact: + openssh_agent_env: >- + {{ + openssh_agent_stdout.stdout_lines | map('regex_replace', '^setenv ([^ ]+) ([^ ]+);', '\1') + | zip(openssh_agent_stdout.stdout_lines | map('regex_replace', '^setenv ([^ ]+) ([^ ]+);', '\2')) + | list | items2dict(key_name=0, value_name=1) + }} - name: Register ssh agent facts set_fact: - openssh_agent_pid: "{{ openssh_agent_env_vars.stdout.split(';')[0] }}" - openssh_agent_sock: "{{ openssh_agent_env_vars.stdout.split(';')[1] }}" + openssh_agent_pid: "{{ openssh_agent_env.SSH_AGENT_PID }}" + openssh_agent_sock: "{{ openssh_agent_env.SSH_AUTH_SOCK }}" - name: stat agent socket stat: