哪一个更好 ?直接从控制机器执行脚本或在本地复制和执行?

时间:2016-04-15 06:27:14

标签: ansible ansible-playbook ansible-2.x

在目标计算机上运行脚本有以下两种方法:

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多台目标机器上运行游戏手册时。我想知道哪一个会更好?

如果我更喜欢其他人,那么性能损失是什么?

2 个答案:

答案 0 :(得分:2)

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

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

  1. 你不需要ssh到所有30台机器来复制脚本
  2. 你可以有一行代码来做同样需要2的代码 步骤(复制和执行)
  3. 没有性能差异,因为两种方法都是一样的 操作

答案 1 :(得分:0)

如果脚本必须在远程计算机上执行某些操作,那么复制它并直接在远程计算机上执行会更好。在这两种情况中,我认为你不会看到任何明显的性能下降。

唯一的问题是,在案例1中,你必须ssh到遥控器并执行你需要的命令,即ansible已经为你做的事情。