ssh配置导致Ansible并发失败

  Ansible并发失败原因,  fork=100. 执行playbook时候没有并发

vim /usr/lib/python2.7/site-packages/ansible/runner/connection_plugins/ssh.py

299     ┊   if C.HOST_KEY_CHECKING and not_in_host_file:
300     ┊   ┊   # lock around the initial SSH connectivity so the user prompt about whether to add
301     ┊   ┊   # the host to known hosts is not intermingled with multiprocess output.
302     ┊   ┊   fcntl.lockf(self.runner.process_lockfile, fcntl.LOCK_EX)
303     ┊   ┊   fcntl.lockf(self.runner.output_lockfile, fcntl.LOCK_EX)
304          
305     ┊   # create process
306     ┊   (p, stdin) = self._run(ssh_cmd, in_data)

以上代码可以看出, 如果ansible配置HOST_KEY_CHECKING=true. 并且要链接的机器没有在~/.ssh/known_hosts里面, 一个进程就会锁死~/.ssh/known_hosts文件. 这样ansible就不能并发.

检查自己的ssh conf. 发现"    UserKnownHostsFile /dev/null"

这样就不会有机器在~/.ssh/known_hosts中, 所以每个task都不能并发.

最终解决方案:

host_key_checking = False 在ansible.cfg中.

转载于:https://www.cnblogs.com/v394435982/p/5279233.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值