I forgot that ansible_ssh_port and ansible_ssh_host may be unset.  This 
version should work:

  # this will force Ansible to create new connection(s) so that changes in 
ssh
  # settings will have effect (normally Ansible uses ControlPersist feature 
to
  # reuse one connection for all tasks). Note that the path to the socket 
must
  # be the same as what is configured in ansible.cfg.
- name: kill cached ssh connection
  local_action: >
    shell ssh -O stop {{ hostvars[item].ansible_ssh_host|default(
inventory_hostname) }}
    -o ControlPath=~/.ansible/cp/ansible-ssh-{{ hostvars[item].
ansible_ssh_host|default(inventory_hostname) }}-{{ hostvars[item].
ansible_ssh_port|default('22') }}-{{ hostvars[item].ansible_ssh_user }}
  run_once: yes
  register: socket_removal
  failed_when: >
    socket_removal|failed
    and "No such file or directory" not in socket_removal.stderr
  with_items: "{{ play_hosts }}"




On Tuesday, March 29, 2016 at 3:35:51 PM UTC+2, jan.w...@codilime.com wrote:
>
> Hello,
>
> thanks a lot!  For the sake of people having the same problem as me, 
> here's a complete task that kills connections to all hosts from the current 
> play:
>
>   # this will force Ansible to create new connection(s) so that changes 
> in ssh
>   # settings will have effect (normally Ansible uses ControlPersist 
> feature to
>   # reuse one connection for all tasks). Note that the path to the socket 
> must
>   # be the same as what is configured in ansible.cfg.
> - name: kill cached ssh connection
>   local_action: >
>     shell ssh -O stop {{ hostvars[item].ansible_ssh_host }}
>     -o ControlPath=/tmp/ansible-ssh-{{ hostvars[item].ansible_ssh_user 
> }}-{{ hostvars[item].ansible_ssh_host }}-{{ hostvars[item].ansible_ssh_port 
> }}
>   run_once: yes
>   register: socket_removal
>   failed_when: >
>     socket_removal|failed
>     and "No such file or directory" not in socket_removal.stderr
>   with_items: "{{ play_hosts }}"
>
> If you have any further suggestions, let me know!
>
> best,
> Jan
>
>
> On Friday, March 18, 2016 at 9:26:08 PM UTC+1, Brian Coca wrote:
>>
>> you can run a command to kill the connection locally:
>>
>> ssh -O stop <hostname>-o 
>> ControlPath=~/.ansible/cp/ansible-ssh-<hostname>-22-<user> 
>>
>>
>> ----------
>> Brian Coca
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/0da7b7c3-fccb-4c7d-bd1e-4c6e46295f95%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to