如何解决“无法访问"问题当通过ssh ping Windows时? [英] How to fix "Unreachable" when ping windows with ansible over ssh?

查看:96
本文介绍了如何解决“无法访问"问题当通过ssh ping Windows时?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将Ansible与ssh结合使用以与Windows计算机交互

I'm trying to use Ansible with ssh for interact with Windows machines

我已经在Windows机器上成功安装了OpenSSH,这意味着我可以使用以下方法从linux连接到Windows:

i have successfully install OpenSSH on a Windows machine that mean i can connect from linux to windows with:

 ssh username@ipAdresse

我尝试使用许多版本的ansible(2.6、2.7.12、2.7.14、2.8.5和2.8.6),并且我总是测试是否可以通过此行ping其他Linux机器(它工作):

i've tried using a lot of version of ansible (2.6, 2.7.12, 2.7.14, 2.8.5 and 2.8.6) and i always test if i can ping an other Linux machine with this line(it work):

ansible linux -m ping

有我的主机文件

[windows]
192.***.***.***

[linux]
192.***.***.***

[all:vars]
ansible_connection=ssh
ansible_user=root

[windows:vars]
ansible_ssh_pass=*******
remote_tmp=C:\Users\root\AppData\Local\Temp\
become_method=runas

存在详细错误:

[root@oel76-template ~]# ansible windows -m win_ping -vvv

ansible 2.8.6
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Aug  7 2019, 08:19:52) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39.0.1)]
Using /etc/ansible/ansible.cfg as config file
host_list declined parsing /etc/ansible/hosts as it did not pass it's verify_file() method
script declined parsing /etc/ansible/hosts as it did not pass it's verify_file() method
auto declined parsing /etc/ansible/hosts as it did not pass it's verify_file() method
Parsed /etc/ansible/hosts inventory source with ini plugin
META: ran handlers
<192.***.***.***> ESTABLISH SSH CONNECTION FOR USER: root
<192.***.***.***> SSH: EXEC sshpass -d8 ssh -C -o ControlMaster=auto -o ControlPersist=60s -o 'User="root"' -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/91df1ca379 192.168.46.99 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo C:/Users/root/AppData/Local/Temp/ansible-tmp-1571839448.66-279092717123794 `" && echo ansible-tmp-1571839448.66-279092717123794="` echo C:/Users/root/AppData/Local/Temp/ansible-tmp-1571839448.66-279092717123794 `" ) && sleep 0'"'"''
<192.***.***.***> (1, '', 'The system cannot find the path specified.\r\n')
<192.***.***.***> Failed to connect to the host via ssh: The system cannot find the path specified.

192.***.***.*** | UNREACHABLE! => {
"changed": false,
    "msg": "Authentication or permission failure. In some cases, you may have been able to authenticate and did not have permissions on the target directory. Consider changing the remote tmp path in ansible.cfg to a path rooted in \"/tmp\". Failed command was: ( umask 77 && mkdir -p \"` echo C:/Users/root/AppData/Local/Temp/ansible-tmp-1571839448.66-279092717123794 `\" && echo ansible-tmp-1571839448.66-279092717123794=\"` echo C:/Users/root/AppData/Local/Temp/ansible-tmp-1571839448.66-279092717123794 `\" ), exited with result 1",
    "unreachable": true
}

我不知道我在做什么错,我还尝试在ansible.cfg中更改remote_tmp,但仅此而已.

I don't know what i'm doing wrong, i also try to change the remote_tmp in ansible.cfg but nothing more.

remote_tmp = C的实际值:/Users/root/AppData/Local/Temp

Actual value for remote_tmp=C:/Users/root/AppData/Local/Temp

有什么主意吗?

推荐答案

好,问题解决了

ansible_ssh_pass=*****

正确的语法是

ansible_password=*****

这篇关于如何解决“无法访问"问题当通过ssh ping Windows时?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆