SSH Pipeline 与连接复用
减少每个任务的额外开销
SSH Pipeline 与连接复用 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。
SSH 开销不断累积
每个任务都可能需要通过SSH重新登录、复制文件并执行。任务和主机数量一多,这些开销就会占据运行时间的主要部分。
任务通常如何运行
默认情况下,系统会将模块复制到主机上,运行模块,然后清理文件。每一步都需要一次SSH往返,而这些往返通常可以避免。
管道传输来帮忙
使用管道传输时,系统会通过现有 SSH 会话串流模块,而不是先写入临时文件,从而减少每个任务所需的连接次数。
[ssh_connection]
pipelining = True强制终端设置的陷阱
管道传输需要在没有 TTY 的情况下执行提权,因此远程提权配置不能强制启用强制终端设置。现代发行版通常没有问题,但某些加固系统需要调整配置。
复用连接
OpenSSH 的ControlPersist会保持主连接打开,并让后续任务通过该连接传输,从而避免每次都进行全新的握手。
调整 SSH 参数
系统通过SSH 参数启用连接复用。ControlPersist 值决定最后一个任务完成后,共享套接字还会保持多久。
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s套接字存放在哪里
共享连接位于控制路径套接字文件中。请保持该路径较短,以避开操作系统对套接字名称长度的限制。
[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%r管道传输与连接复用
它们解决的是不同的开销:管道传输减少单个任务内部的往返,而 ControlPersist 则在多个任务之间复用 SSH 会话。
同时使用两者
管道传输和持久连接可以叠加使用。对大型剧本而言,同时启用两者是最显著且风险最低的加速方式之一。
事实收集也能更快
如果不需要事实信息,请禁用事实收集以跳过初始化模块。这样可以从每个剧本的开始阶段移除一个开销较大的步骤。
衡量改进效果
启用任务分析回调来记录每个任务的耗时。它会准确显示时间花在哪里,让您确认调整确实带来了帮助。
快速检查
您希望每个任务通过 SSH 运行前都避免写入临时文件。
回顾
启用管道传输以减少往返,并启用 ControlPersist 以复用 SSH 会话。两者结合,可以大幅削减大型剧本中的连接开销。⚡
常见问题解答
「SSH Pipeline 与连接复用」课时是免费的吗?
是的 — 「SSH Pipeline 与连接复用」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。
「SSH Pipeline 与连接复用」这节课中我会学到什么?
减少每个任务的额外开销 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 DevOps Bootcamp 需要有经验吗?
无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「SSH Pipeline 与连接复用」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 DevOps Bootcamp 课中编写并运行代码吗?
能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- forks 与并行度调优
- 策略:linear、free 与 host_pinned
- SSH Pipeline 与连接复用
- serial 与滚动批次执行