参考文档:
https://my.oschina.net/u/1433006/blog/1622893
1. 安装 sshpass
运行下列命令安装:
- tar -zxvf sshpass-1.05.tar.gz
- cd sshpass-1.05
- ./configure
- make && make install
安装完成后输入 sshpass 出现如下提示即安装成功
- #sshpass
- Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
- -f filename Take password to use from file
- -d number Use number as file descriptor for getting password
- -p password Provide password as argument (security unwise)
- -e Password is passed as env-var "SSHPASS"
- With no parameters - password will be taken from stdin
- -h Show help (this screen)
- -V Print version information
- At most one of -f, -d, -p or -e should be used
/etc/ansible/hosts 文件中添加用户密码, 认证 ssh 连接
- [test]
- 127.0.0.1 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=123456
- 192.168.1.137 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass=123456
2. 错误汇总:
- [root@localhost ~]# ansible test -m ping
- 127.0.0.1 | FAILED! => {
- "msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this hosts fingerprint to your known_hosts file to manage this host."
- }
- 192.168.1.103 | FAILED! => {
- "msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this hosts fingerprint to your known_hosts file to manage this host."
- }
3. 原因和解决办法:
ssh 第一次连接的时候一般会提示输入 yes 进行确认为将 key 字符串加入到 ~/.ssh/known_hosts 文件中而本机的~/.ssh/known_hosts 文件中并有 fingerprint key 串
解决方法: 在 ansible.cfg 文件中更改下面的参数:
#host_key_checking = False 将 #号去掉即可
来源: http://www.bubuko.com/infodetail-2515991.html