From 62da550c6c31778097889a5e15308c2a09912503 Mon Sep 17 00:00:00 2001 From: "patchback[bot]" <45432694+patchback[bot]@users.noreply.github.com> Date: Fri, 22 Jul 2022 14:00:53 +0200 Subject: [PATCH] Fix ssh-agent tests (#493) (#494) * Work around stupid ssh-agent output format. * Workaround for Ansible 2.9. * Old jinja2... * Jinja2 on CentOS 6 is really annoying. (cherry picked from commit e4ebca09452d78046618f67208405652ce6cc889) Co-authored-by: Felix Fontein --- .../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 dc973f4e..89dd6395 100644 --- a/tests/integration/targets/setup_ssh_agent/meta/main.yml +++ b/tests/integration/targets/setup_ssh_agent/meta/main.yml @@ -1,2 +1,3 @@ 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 fe552825..bf2a0583 100644 --- a/tests/integration/targets/setup_ssh_agent/tasks/main.yml +++ b/tests/integration/targets/setup_ssh_agent/tasks/main.yml @@ -5,13 +5,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: