Puppet VS Ansible +什么是最好的自动远程任务工具

有许多自动化任务的远程工具,如puppetansible

我的目标是在Linux机器上执行许多远程任务,如下所示:

  1. 运行Linux命令块,

  2. 将主机中的文件复制到远程Linux机器上

  3. 在远程Linux机器上运行脚本

等等

自动化和远程指挥是相当不同的用例。 在select这样的工具时要考虑的事情是,你需要多快的速度才能使你的整个机器群体达到相同的状态,以及你计划改变命令集的速度有多快。

木偶和厨师(可能是其他configurationpipe理)系统是:

  • 松散的收敛 。 一切都看到更新可能需要半小时。 有时候没关系。 有时候,这很不是。
  • 不要处理特别的命令 。 如果你现在需要在一个给定的目录下运行一个git-pull,那么需要付出相当的努力。
  • 强大的编程方式确定机器types 。 这减轻了“什么需要什么”的问题。
  • 基本上以代理为基础 。 节点轮询中央系统的更新,而不是中央系统按计划调度更新。 这是“宽松一致性”的很大一部分。

Ansible和其他非制造系统:

  • 允许特设命令作为主要function 。 需要运行apt-get update openssl的一切? 简单!
  • 允许更紧密的收敛 。 你可以在30分钟内做到这一点 ,也可以做一切正确的血腥
  • 一般需要库存pipe理stream程 。 像puppet这样的东西可以用来在RAMSIZE> = 2048GB的机器上部署nginx ,它可以用于任何这样的系统,Ansible和类似的需要被告知这个系统需要nginx 。 这使得什么需要什么问题变得复杂。

我不打算进入可扩展性,因为所有这些都可以很容易地处理1000个节点。 当你进入10000个节点时,情况会有所不同。

我知道部署的系统除了Ansible之外还使用了Puppet / Chef系统。 木偶/厨师用于在系统上维护一个基准configuration,而这个安全系统用于远程命令以及需要更严格一致性的任务(例如应用程序代码部署)。 有时候最好的是两者。