Ansible 打开数百个 SSH 连接,而不是重复使用一个连接

Ansible opens hundreds of SSH connections instead of reusing a single one

我有一个简单的 ansible 剧本,它可以在远程主机上部署一些软件。当我 运行 它与 -vvv 我看到数百条以下消息:

[2020-04-07 17:22:29] <54.234.19.60> ESTABLISH SSH CONNECTION FOR USER: centos

每个部署大约需要半秒,每次部署总共需要几分钟。

如何让 Ansible 在工作开始时为每个主机打开一个 SSH 连接,通过此连接执行所有操作,并在所有工作完成后关闭它?

尝试添加:

[ssh_connection]
pipelining = True

ansible.cfg

https://docs.ansible.com/intro_configuration.html#pipelining

此外,您可以尝试添加 ControlPersist:

[ssh_connection]
pipelining = True
control_path = /tmp/ansible-ssh-%%h-%%p-%%r
#or simply:
#control_path = /tmp

到 cfg 文件中的相同部分。