据我所知,Chef是关于拉模型的,意味着将烹饪书上传到厨师服务器,在节点上运行chef-client命令时,将下载烹饪书并安装在厨师客户端上。
Rundeck是推模型,意味着可以在机器上安装rundeck,我们可以将节点注册到该rundeck。 Rundeck将根据应用的过滤器在节点上运行作业。
现在我的问题是:
答案 0 :(得分:7)
如果我们可以安装rundeck并将作业推向节点那么为什么我们需要厨师?
使用rundeck,您可以执行命令。 Chef遵循所需的状态模型并应用所需的状态,类似于Puppet,CFEngine和Ansible等工具。
这包括幂等性的想法:想象一下,你有干净的服务器和较旧的服务器,并希望确保在所有这些服务器上配置某个状态。使用rundeck运行几个命令现在可以在干净的节点上运行,但是在旧的节点上运行失败,因为它已经在不久前完成了。相比之下,Chef的模型将是它认识到系统已处于所需状态并且什么都不做。
为什么我们要将rundeck与厨师合并?
恕我直言,您可以将其集成到您的节点上运行chef-client,即切换到更多推送模式,而不是等待厨师 - 客户端启动(通常间隔30分钟)。
厨师可以做什么,rundeck可以做什么?
见上文。相反,Rundeck允许执行单个ad-hoc命令,例如,"我的服务器上的CPU负载是什么"。厨师不支持此。
厨师是否也支持推送工作?
有点,不是真的。有Chef Push Jobs,允许您运行预配置的命令,例如,启动节点上的chef-client
。最近blog article解释说,Chef Inc.认为这是Chef Push Jobs的主要目标,并不打算进一步扩展它。因此,您无法使用该命令运行ad-hoc命令。
答案 1 :(得分:0)
Rundeck不能与厨师相提并论。 Chef是rundeck使用的工具。将rundeck视为运行异构环境,其中之一就是厨师。如果您问我,从rundeck运行“命令”是一个非常小的功能。重要的是工作。
“我们可以使用这10种工具为客户解决此问题的哪些步骤清单?”
第1步(构建阶段) 定义梯级作业 步骤2。(运行阶段开始) 将rundeck配置为与Chef交谈只是为了获取节点信息,以便我们可以针对那些客户端运行代码 与金库交谈 使用CI执行此操作 用CD来做 等等
厨师只是rundeck工具提供的ebonflow中的一小部分。这只是运行列表中的一个可能步骤。