介绍
一个多月以来,我一直在运行以下命令:
ansible-playbook -vvvvi host_test rhel-tests.yml
通过 SSH 连接并在主机上成功运行测试,没有任何问题。
但截至最近几天,我在跑步时收到以下信息:
fatal: [10.2.16.2]: UNREACHABLE! => {
"changed": false,
"unreachable": true
}
MSG:
Failed to connect to the host via ssh: OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: auto-mux: Trying existing master
debug2: fd 3 setting O_NONBLOCK
debug2: mux_client_hello_exchange: master version 4
debug3: mux_client_forwards: request forwardings: 0 local, 0 remote
debug3: mux_client_request_session: entering
debug3: mux_client_request_alive: entering
debug3: mux_client_request_alive: done pid = 35742
debug3: mux_client_request_session: session request sent
debug1: mux_client_request_session: master session id: 2
debug3: mux_client_read_packet: read header failed: Broken pipe
debug2: Control master terminated unexpectedly
Shared connection to 10.2.16.2 closed.
即使我可以从我正在运行的主机建立从 bash 到 10.2.16.2 的正常 SSH 连接。
Details
的内容host_test
如下面所述:
[rhel]
10.2.16.2 node_type=xxx
[rhel:vars]
ansible_become=yes
ansible_become_method=su
ansible_become_user=root
ansible_connection=ssh
ansible_user=yyy
node_name=""
[cisco]
[cisco:vars]
node_name=""
[curtiss-wright]
[zzz]
[other]
[nmap:children]
rhel
cisco
curtiss-wright
other
zzz
[password-test]
这是我的ansible.cfg
:
[defaults]
ask_vault_pass = True
filter_plugins = filter_plugins
host_key_checking = False
retry_files_enabled = False
inventory = hosts
stdout_callback = debug
[paramiko_connection]
record_host_keys=False
[ssh_connection]
ssh_args = -o LogLevel=QUIET -o ControlMaster=auto -o ControlPersist=2m -o UserKnownHostsFile=/dev/null
scp_if_ssh = True
我的想法
- 目标上不断发生配置更改,因此可能在 ssh 中配置了某些内容以某种方式限制连接。
- 测试正在添加到
rhel-tests.yml
,因此现在可能会触发某种以前没有的超时。我尝试将 rhel7 的版本恢复到大约一个月前,但命令仍然失败,所以我相信这不太可能是原因。
- 我正在使用通过brew安装的ansible版本2.5.4。我尝试更新到 Ansible 2.6.2,但这似乎没有任何作用。
- 我尝试了网上找到的其他一些建议,包括使用
paramiko_ssh
连接类型,也失败。
- 我可以跑
ansible -i hosts_test -m ping 10.2.16.2
并拿回乒乓球
-
这个问题 https://stackoverflow.com/questions/43234911/ansible-ssh-error-during-play似乎与我的问题非常接近,但其中没有任何行
rhel-tests.yml
重新启动或关闭。
Question
是什么导致我的剧本失败?我该如何修复它?
由于您的游戏缺乏输出,连接可能会断开。
将以下内容添加到您的ssh_args
(v2.4 的文档 https://docs.ansible.com/ansible/2.4/intro_configuration.html#ssh-args) in ansible.cfg
:
-o ServerAliveInterval=50
这是什么ServerAliveInterval=50
当游戏缺少输出时,客户端每 50 秒向服务器发送一个空数据包,从而保持 ssh 连接处于活动状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)