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 文件中的相同部分。
我有一个简单的 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 文件中的相同部分。