我刚刚开始学习 Ansible 的基础知识。在通过SSH。我创建了一个名为公共的html并将我的代码放入该文件夹并更改允许。当我尝试执行我的剧本时,它给了我以下错误
UNREACHABLE! => {"changed": false, "msg": "SSH 错误:无法将数据发送到远程主机。请确保可以通过 ssh 访问此主机", "unreachable"
而当我尝试平从用户主目录或 root 用户访问服务器,无需进入目录,即可完美 ping。以下是冗长输出 :
SSH:EXEC sshpass -d15 sftp -b - -C -vvv -o ForwardAgent=yes -o StrictHostKeyChecking=no -o User=root -o ConnectTimeout=10
配置文件是:
[default]
host_key_checking = False
我不知道我遗漏了什么。有人知道吗?
答案1
我最近解决了一个类似的问题,Ansible 仅在需要文件传输(例如复制、模板)的任务中遇到“UNREACHABLE!”错误,而对于其他任何任务,连接都很好。我通过在 [ssh_connection] 部分下向 ansible.cfg 添加以下指令来解决这个问题:
scp_if_ssh = True
您可能从该修复中猜到,该问题与目标服务器的 SFTP 配置有关。由于 Ansible 默认使用 SFTP 传输文件,因此配置错误的服务器在执行涉及文件传输的任何 Ansible 任务时都会遇到错误。因此,如果此更改使错误消失,我建议检查目标服务器的 sshd_config 文件中是否存在 SFTP 配置错误。