问题描述:
通过ansible的ping命令测试多台机器的网络状态,直接显示报错
UNREACHABLE!: Failed to connect to the host via ssh: root@host4: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
解决方式:
1、以单向的ssh免密验证
ssh-keygen:输入命令之后一路回车
ssh-copy-id host1:host1这里可以用你想连接的ip地址代替
2、测试,这里发现只有配置过的host1单向免密验证是成功的,其它都是失败的
3、使用ansible webserver -m ping -u root -k -o命令重新验证一下,显示成功
4、后面进行各种命令操作的时候,都需要加-k参数不然不会成功
5、针对4的解决办法,再配置文件里将其密码配置进去就可以了
去到/etc/ansible/hosts文件配置其密码
如果多台机器的密码不一样的话可以按照以上方式来写,如果多台机器的密码是一样的,可以写成下面这样
[webserver]
[host1:4] ansible_ssh_user='root' ansible_ssh_pass='111111'