Merge pull request #1115 from moreati/pr956
Initial support for templated `ansible_ssh_args`, `ansible_ssh_common_args`, and `ansible_ssh_extra_args`pull/1071/head
commit
fc7b7eaba1
@ -0,0 +1,48 @@
|
||||
- name: integration/ssh/args.yml
|
||||
hosts: issue905
|
||||
gather_facts: false
|
||||
tasks:
|
||||
# Test that ansible_ssh_common_args are templated; ansible_ssh_args &
|
||||
# ansible_ssh_extra_args aren't directly tested, we assume they're similar.
|
||||
# FIXME This test currently relies on variables set in the host group.
|
||||
# Ideally they'd be set here, and the host group eliminated, but
|
||||
# Mitogen currently fails to template when defined in the play.
|
||||
# TODO Replace LocalCommand canary with SetEnv canary, to simplify test.
|
||||
# Requires modification of sshd_config files to add AcceptEnv ...
|
||||
- name: Test templating of ansible_ssh_common_args et al
|
||||
block:
|
||||
- name: Ensure no lingering canary files
|
||||
file:
|
||||
path: "{{ ssh_args_canary_file }}"
|
||||
state: absent
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Reset connections to force new ssh execution
|
||||
meta: reset_connection
|
||||
|
||||
- name: Perform SSH connection, to trigger side effect
|
||||
ping:
|
||||
|
||||
# LocalCommand="touch {{ ssh_args_canary_file }}" in ssh_*_args
|
||||
- name: Stat for canary file created by side effect
|
||||
stat:
|
||||
path: "{{ ssh_args_canary_file }}"
|
||||
delegate_to: localhost
|
||||
register: ssh_args_canary_stat
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- ssh_args_canary_stat.stat.exists == true
|
||||
quiet: true
|
||||
success_msg: "Canary found: {{ ssh_args_canary_file }}"
|
||||
fail_msg: |
|
||||
ssh_args_canary_file={{ ssh_args_canary_file }}
|
||||
ssh_args_canary_stat={{ ssh_args_canary_stat }}
|
||||
always:
|
||||
- name: Cleanup canary files
|
||||
file:
|
||||
path: "{{ ssh_args_canary_file }}"
|
||||
state: absent
|
||||
delegate_to: localhost
|
||||
tags:
|
||||
- issue_905
|
@ -0,0 +1,39 @@
|
||||
[test-targets]
|
||||
{% for c in containers %}
|
||||
{{ c.name }} ansible_host={{ c.hostname }} ansible_port={{ c.port }} ansible_python_interpreter={{ c.python_path }}
|
||||
{% endfor %}
|
||||
|
||||
[test-targets:vars]
|
||||
ansible_user=mitogen__has_sudo_nopw
|
||||
ansible_password=has_sudo_nopw_password
|
||||
|
||||
{% for distro, hostnames in distros | dictsort %}
|
||||
[{{ distro }}]
|
||||
{% for hostname in hostnames %}
|
||||
{{ hostname }}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
{% for family, hostnames in families | dictsort %}
|
||||
[{{ family }}]
|
||||
{% for hostname in hostnames %}
|
||||
{{ hostname }}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
[linux:children]
|
||||
test-targets
|
||||
|
||||
[linux_containers:children]
|
||||
test-targets
|
||||
|
||||
[issue905]
|
||||
{% for c in containers[:1] %}
|
||||
ssh-common-args ansible_host={{ c.hostname }} ansible_port={{ c.port }} ansible_python_interpreter={{ c.python_path }}
|
||||
{% endfor %}
|
||||
|
||||
[issue905:vars]
|
||||
ansible_user=mitogen__has_sudo_nopw
|
||||
ansible_password=has_sudo_nopw_password
|
||||
ansible_ssh_common_args=-o PermitLocalCommand=yes -o LocalCommand="touch {{ '{{' }} ssh_args_canary_file {{ '}}' }}"
|
||||
ssh_args_canary_file=/tmp/ssh_args_{{ '{{' }} inventory_hostname {{ '}}' }}
|
Loading…
Reference in New Issue