1

在目标机器上运行脚本有以下两种方式:

1.  - name: run the script from the control machine directly.
      script: "{{path_to_scripts}}/script.sh"

2.  - name: Copying the script from target machine.
      copy: src="{{path_to_scripts}}/script.sh" dest="{{path_to_scripts}}/script.sh" mode=0777

    - name: Execute script locally.
      command: /bin/sh {{path_to_scripts}}/script.sh

当我针对 30 多台目标机器运行剧本时。我想知道哪一个会是更好的选择?

如果我更喜欢一个而不是另一个,那么性能损失是多少?

4

2 回答 2

2

如果您从 ansible 机器执行脚本,ansible 服务器会将脚本复制到远程机器的临时位置以执行。

因此,更好的选择是“直接从控制机器运行脚本”,原因如下

  1. 你不需要 ssh 到所有 30 台机器来复制脚本
  2. 你可以用一行代码来做同样的事情,需要 2 个步骤(复制和执行)
  3. 没有性能差异,因为两种方法都在执行相同的操作
于 2016-04-15T10:46:03.963 回答
0

如果脚本必须在远程机器上执行某些操作,最好将其复制并直接在远程机器上执行。我认为在这两种情况下您都不会看到任何明显的性能下降。

唯一的问题是,在第 1 种情况下,您将不得不通过 ssh 连接到远程并执行您需要的命令,这是 ansible 已经为您做的事情。

于 2016-04-15T08:23:25.390 回答