mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.2 KiB
YAML
68 lines
2.2 KiB
YAML
- slurp:
|
|
path: ~/.ssh/authorized_keys
|
|
register: akeys
|
|
|
|
- debug:
|
|
msg: '{{ akeys.content|b64decode }}'
|
|
|
|
- command: ansible-playbook -i {{ ansible_inventory_sources|first|quote }} -vvv {{ role_path }}/auto.yml
|
|
environment:
|
|
ANSIBLE_CALLBACK_RESULT_FORMAT: yaml
|
|
ANSIBLE_SSH_AGENT: auto
|
|
register: auto
|
|
|
|
- command: ps {{ ps_flags }} -opid
|
|
register: pids
|
|
# Some distros will exit with rc=1 if no processes were returned
|
|
vars:
|
|
ps_flags: '{{ "" if ansible_distribution == "Alpine" else "-x" }}'
|
|
|
|
- assert:
|
|
that:
|
|
- >-
|
|
'started and bound to' in auto.stdout
|
|
- >-
|
|
'SSH: SSH_AGENT adding' in auto.stdout
|
|
- >-
|
|
'exists in agent' in auto.stdout
|
|
- pids|map('trim')|select('eq', pid) == []
|
|
vars:
|
|
pid: '{{ auto.stdout|regex_findall("ssh-agent\[(\d+)\]")|first }}'
|
|
|
|
- command: ssh-agent -D -s -a '{{ output_dir }}/agent.sock'
|
|
async: 30
|
|
poll: 0
|
|
|
|
- command: ansible-playbook -i {{ ansible_inventory_sources|first|quote }} -vvv {{ role_path }}/auto.yml
|
|
environment:
|
|
ANSIBLE_CALLBACK_RESULT_FORMAT: yaml
|
|
ANSIBLE_SSH_AGENT: '{{ output_dir }}/agent.sock'
|
|
register: existing
|
|
|
|
- assert:
|
|
that:
|
|
- >-
|
|
'started and bound to' not in existing.stdout
|
|
- >-
|
|
'SSH: SSH_AGENT adding' in existing.stdout
|
|
- >-
|
|
'exists in agent' in existing.stdout
|
|
|
|
- name: test various agent failure modes
|
|
shell: ansible localhost -m ping
|
|
environment:
|
|
ANSIBLE_SSH_AGENT: auto
|
|
ANSIBLE_SSH_AGENT_EXECUTABLE: "{{ role_path }}/fake_agents/ssh-agent-{{ item }}"
|
|
ignore_errors: true
|
|
register: failures
|
|
loop: [not-found, hangs, incompatible, truncated-early-exit, bad-shebang]
|
|
|
|
- assert:
|
|
that:
|
|
- failures.results | select('success') | length == 0
|
|
- failures.results[0].stderr is search 'SSH_AGENT set to auto, but cannot find ssh-agent binary'
|
|
- failures.results[1].stderr is search 'Timed out waiting for expected stdout .* from ssh-agent'
|
|
- failures.results[2].stderr is search 'The ssh-agent output .* did not match expected'
|
|
- failures.results[3].stderr is search 'The ssh-agent terminated prematurely'
|
|
- failures.results[4].stderr is search 'Could not start ssh-agent'
|