默认情况下,Ansible会为每个任务创建一个SSH连接并在任务完成后关闭它。因此,对于复制操作,它会为每个文件创建一个新的SSH连接。然而,可以通过设置'ssh_args”选项来更改这个行为并使用复用SSH连接来提高性能。
这里是一个示例,展示了如何使用'ssh_args”选项来启用SSH连接复用:
- hosts: all
gather_facts: no
tasks:
- name: Copy files using SSH connection reuse
copy:
src: '/path/to/local/file'
dest: '/remote/path/'
# Enable SSH connection reuse
ssh_args: '-o ControlMaster=auto -o ControlPersist=yes -o ControlPath=/tmp/ansible-ssh-%%h-%%p-%%r'
上述代码将为每个主机创建一个SSH连接,并为复制操作复用这些连接。要使用不同的'ControlPath”路径,只需修改'ssh_args”选项的值即可。