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中.

  • 相关阅读:
    HBase 在HDFS上的物理目录结构
    Hbase-site.xml
    hbase-default.xml(Hbase 默认参数翻译)
    flink-conf.yaml
    Spark Standalone spark-default.conf
    Spark Standalone spark-env.sh
    windows linux 文件编码转换
    Hbase G1 gc 调优最终参数
    python
    python
  • 原文地址:https://www.cnblogs.com/v394435982/p/5279233.html
Copyright © 2011-2022 走看看