zoukankan      html  css  js  c++  java
  • 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中.

  • 相关阅读:
    H3C IS-IS基础配置
    H3C OSPF实验大集合(IPv4)
    H3C OSPF实验大集合(IPv6)
    H3C RIP实验大集合
    H3C IPv4和IPv6负载均衡
    H3C IPv4与ipv6静态路由
    H3C 配置dns及arp
    H3C 配置DHCP服务器
    H3C 多生成树MSTP
    H3C 配置ftp服务器
  • 原文地址:https://www.cnblogs.com/v394435982/p/5279233.html
Copyright © 2011-2022 走看看