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

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

有许多用于自动化任务的远程工具,如 puppet 或 ansible

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

  1. Linux 命令的运行块,

  2. 将文件从主机复制到远程 Linux 机器

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

等等

答案1

自动化和远程命令是截然不同的用例。选择此类工具时需要考虑的是,您需要多快让所有机器达到相同状态,以及您计划多快更改命令集。

Puppet 和 Chef(以及其他配置管理)系统包括:

  • 松散收敛。可能需要半小时才能看到所有内容的更新。有时这没问题。有时则不然。
  • 不能很好地处理临时命令. 如果你需要在给定目录中运行 git-pull现在,这样做需要付出相当大的努力。
  • 通过编程确定机器类型的稳健方法.这简化了“什么需要什么”的问题。
  • 主要基于代理。节点轮询中央系统以获取更新,而不是中央系统按计划调度更新。这是“松散一致性”的很大一部分。

Ansible 和其他非代理系统:

  • 允许临时命令作为主要功能。需要apt-get update openssl在所有设备上运行?简单!
  • 允许更紧密的收敛. 你可以同时做这两件事30分钟内完成并且现在就把所有事情都做好
  • 通常需要库存管理流程. 可以使用 puppet 之类的东西来做以下事情在 RAMSIZE >= 2048GB 的​​机器上部署 nginx并且它可以适用于任何这样的系统,Ansible 和类似的东西需要被告知本系统需要 nginx. 这使得需要什么的问题变得更加复杂。

我不打算讨论可扩展性,因为所有这些都可以轻松处理 1000 个节点。当节点数量达到 10,000 个时,情况就不同了。

我知道已部署的系统除了使用 Ansible 之外,还使用类似 Puppet/Chef 的系统。Puppet/Chef 用于维护系统上的基线配置,而 ansible 系统用于远程命令和需要更严格一致性的任务(例如应用程序代码部署)。有时最好两者兼而有之。

相关内容