检查Ansible的流水线是否启用/工作

15

当启用管道功能时,Ansible 可以更快地运行。但是,要使其正常工作,有一些要求。必须在 ansible.cfg 或清单文件中启用管道,同时禁用 requiretty。

我已经使用-vvvv 进行了检查,没有显示出关于“管道”的信息。此外,我没有注意到任何速度上的差异。

因为这一切,我想知道:有没有一种方法可以验证 Ansible 是否正在使用管道功能?

1个回答

18

要检查是否使用了流水线处理,请运行命令:ansible test-server -vvv -m shell -a 'echo ok'

如果您只看到一个 SSH: EXEC ssh 记录,并且类似于 /bin/sh -c '/usr/bin/python && sleep 0'这样的内容,则表示在使用流水线处理。

如果您看到三至五个SSH: EXEC ssh/SSH: EXEC sftp/PUT记录,从临时路径执行command.py,则表示未激活流水线模式。


4
确保在ssh_connection而不是defaults下定义pipelining = True。 - Johno Crawford
奇怪的是,我不得不将它放在“defaults”下才能被识别,而不是“ssh_connection”。我刚刚验证了使用此答案中描述的方法运行管道是否有效,并通过运行“ansible-config dump | grep PIPE”来验证。我的“ansible --version”返回“2.11.6”。也许有一个回归? - Illya Moskvin
启用流水线传输后,copy 仍然非常缓慢。复制单个文件时,输出中会看到 x10 个 "SSH: EXEC",启用流水线传输后则为 x8 个。其中一两个是预热内容,但如果您要复制目录,则大多数都是为 每个 文件执行的!您可以使用同步功能,但 copy 不应该如此缓慢。 - spinkus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接