ansible - Ansible:加快查找和链接文件的速度
问题描述
目前,我正在使用代码将某些目录中的二进制文件链接到/usr/local/bin
- name: Find the files to link in /usr/local/bin
find:
paths:
- "/usr/local/java/jdk1.8.0_171/bin/"
- "/usr/local/java/apache-maven-3.3.3/bin"
register: usrlocalbinfiles
- name: Link SDK files
file:
src: "{{item.path}}"
dest: "/usr/local/bin/{{item.path|basename}}"
state: link
with_items: "{{usrlocalbinfiles.files}}"
become: yes
如果我使用此代码和调试选项 (-vvv) 检查剧本的执行情况,我会看到 ansible 使用列表中的每个项目连接到远程主机。我~/.ansible.cfg
有下一个选项来启用共享 ssh 连接
[defaults]
host_key_checking = False
become=True
become_method='su'
[ssh_connection]
ssh_args=-o ControlMaster=auto -o ControlPersist=120s -o ControlPath=/tmp/ansible-ssh-%h-%p-%r -o ForwardAgent=yes
是否可以加快使用此代码的剧本?问题是使用的循环with_item
:每个项目使用 ssh 的连接。
解决方案
还添加
[ssh_connection]
pipelining = true
如果您看到多个 ssh 调用,则说明未使用流水线。如果有单个ssh
呼叫:
SSH: EXEC ssh ... python && sleep 0
然后流水线工作。
推荐阅读
- angular - 如何使用 Angular 8 将按钮单击时的数据从一个组件传递到另一个组件?
- javascript - JavaScript函数没有将我的参数传递给其他函数
- php - 在同一页面上显示 Wordpress 查询两次,1 次不分页,另一次分页
- firebase - 为什么较大的视频流比较小的视频更快?
- linux - 使用 REST API 可以看到 Spark 应用程序的进度百分比吗
- jsf - 如何在 JSF 的浏览器中使用加载微调器直接显示可打印的 PDF?
- oracle - CAS 实施到 Oracle APEX
- python - 读取文件夹中的多个 csv 文件
- azure - 如何为在 Azure 上的 Kubernetes 集群中运行的 Grafana 安装自定义插件
- c++ - 默认初始化的 std::atomic
vs 无锁栈