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: