ansible SSH连接失败
我试图在多台服务器上运行ansible角色,但出现错误: 致命:[192.168.0.10]:无法访问!=>{“已更改”:false,“msg”: “无法通过ssh连接到主机。”,“不可访问”:true} 我的/etc/ansible/hosts文件如下所示:ansible SSH连接失败,ssh,connection,ansible,Ssh,Connection,Ansible,我试图在多台服务器上运行ansible角色,但出现错误: 致命:[192.168.0.10]:无法访问!=>{“已更改”:false,“msg”: “无法通过ssh连接到主机。”,“不可访问”:true} 我的/etc/ansible/hosts文件如下所示: 192.168.0.10 ansible_sudo_pass='passphrase' ansible_ssh_user=user 192.168.0.11 ansible_sudo_pass='passphrase' ansible_s
192.168.0.10 ansible_sudo_pass='passphrase' ansible_ssh_user=user
192.168.0.11 ansible_sudo_pass='passphrase' ansible_ssh_user=user
192.168.0.12 ansible_sudo_pass='passphrase' ansible_ssh_user=user
我不知道发生了什么-一切看起来都很好-我可以通过SSH登录,但ansible ping返回相同的错误
详细执行日志:
为用户建立SSH连接:USER
SSH:EXEC SSH-C-vvv-o ControlMaster=auto-o ControlPersist=60s-o
KbdInteractiveAuthentication=no-o
PreferredAuthentications=带麦克风的gssapi、gssapi keyex、基于主机、公钥
-o PasswordAuthentication=no-o User=User-o ConnectTimeout=10-o ControlPath=/root/.ansible/cp/ansible ssh-%h-%p-%r 192.168.0.10
“/bin/sh-c”“”(umask 22&&mkdir-p“echo
$HOME/.ansible/tmp/ansible-tmp-146351813.31-15663025033829
”&&
回声“echo
$HOME/.ansible/tmp/ansible-tmp-146351813.31-15663025033829
”
)“”““”
你能帮我个忙吗?如果我必须在本地模式(-c local)下使用ansible,那么它是无用的
我试图删除ansible_sudo_pass和ansible_ssh_用户,但没有帮助。您需要更改
ansible_ssh_pass
以及ssh密钥,例如,我在清单文件中使用此密钥:
192.168.33.100 ansible_ssh_pass=vagrant ansible_ssh_user=vagrant
之后,我可以连接到远程主机:
ansible all -i tests -m ping
结果如下:
192.168.33.100 | SUCCESS => {
"changed": false,
"ping": "pong"
}
希望这对你有帮助
编辑:
ansible\u ssh\u pass
&ansible\u ssh\u用户
在最新版本的ansible中不工作。它已更改为ansible\u user
和ansible\u pass
尝试将主机文件修改为:
192.168.0.10
192.168.0.11
192.168.0.12
ansible_ssh_端口在重新加载vm时发生更改 ==>默认值:正在启动VM ==>默认值:等待机器启动。这可能需要几分钟
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
因此,我必须按如下方式更新inventory/hosts文件:
default ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user='centos' ansible_ssh_private_key_file=<key path>
default ansible\u ssh\u host=127.0.0.1 ansible\u ssh\u port=2222 ansible\u ssh\u user='centos'ansible\u ssh\u private\u key\u文件=
转到您的playbook目录,运行ansible all-m ping或ansible ping-m“服务器组名称”我遇到了这个问题,但原因与其他答案中记录的不同。我试图部署到的主机只有通过跳转框才能使用。最初,我认为这是因为Ansible无法识别我的SSH配置文件,但事实确实如此。我的解决方案是确保SSH配置文件中的用户与Ansible playbook中的用户匹配。这为我解决了问题。
$ansible-m ping all-vvv
在Ubuntu或CentOS上安装ansible后。
你可以在下面留言。不要惊慌,您必须拥有对用户[/home/user\u name/.ansible/tmp/
]的文件/tmp
的访问权限。
“身份验证或权限失败
”
这个预分解将解决这个问题
[Your_server ~]$ ansible -m ping all
rusub-bm-gt | SUCCESS => {
"changed": false,
"ping": "pong"
}
Your_server | SUCCESS => {
"changed": false,
"ping": "pong"
}
我的最佳实践是使用SSH密钥访问服务器主机 1.在目录文件夹中创建主机文件 [示例] 例1.com 例2.com 例3.com 二,。创建ansible playbook文件playbook.yml --- -主持人: -全部 -角色: -示例 三,。让我们尝试使用多台服务器主机部署ansible playbook
ansible playbook playbook.yml-i清单/主机示例——用户流浪者是!我缺少ansible\u ssh\u pass变量。现在一切都很有魅力。非常感谢你!根据这一点,它应该是
ansible\u-user
而不是ansible\u-ssh\u-user
。如果搜索ansible\u-ssh\u-user
,您可以在上述链接中找到,它在ansible 1.9中使用,但在ansible 2.0中,他们已将其更改为ansible_用户
,但ansible_ssh_用户
在两者中仍然有效。我拥有的主机
文件只有IP地址。在我用ansible\u ssh\u pass=vagrant ansible\u ssh\u user=vagrant
作为后缀后,ping开始工作。谢谢@Matthias这些变量适用于ssh模块和ansible 2.9(目前最新版本),两者都很好。请,请参阅,解释答案如何解决ssh连接问题。请解释答案与ssh连接问题有什么关系,以及为什么本地主机上的vagrant是相关的。
[Your_server ~]$ ansible -m ping all
rusub-bm-gt | SUCCESS => {
"changed": false,
"ping": "pong"
}
Your_server | SUCCESS => {
"changed": false,
"ping": "pong"
}