Rundeck 和厨师

Rundeck and Chef

据我所知,Chef 是关于拉模式的,意味着将食谱上传到 Chef 服务器,当 运行在节点上执行 chef-client 命令时,将在 Chef 客户端下载并安装食谱。

Rundeck 是一个推送模型,意味着 运行deck 可以安装在一台机器上,我们可以将节点注册到那个 运行deck。 Rundeck 将 运行 基于应用的过滤器在节点上进行作业。

现在我的问题是:

If we can install rundeck and push jobs towards nodes then why we need chef?

使用运行甲板,您可以执行命令。 Chef 遵循期望状态 模型并应用该期望状态,类似于 Puppet、CFEngine 和 Ansible 等工具。

这包括幂等性的概念:想象一下,您有干净的服务器和较旧的服务器,并希望确保在所有服务器上都配置了特定状态。 运行 使用 运行deck 的几个命令现在可以在干净的节点上运行,但在较旧的节点上会失败,因为它已经在一段时间前完成了。相比之下,Chef 的模型会识别出系统已经处于所需状态并且什么都不做。

Why will we integrate rundeck with chef?

恕我直言,您会将其集成到节点上的 运行 chef-client,即切换到更多推送模型,而不是等待 chef-client 启动(通常以30 分钟)。

What is the thing which chef can do and rundeck can't?

见上文。相反,Rundeck 允许执行单个 ad-hoc 命令,例如 "what's the CPU load on my servers"。厨师不支持此功能。

Does chef also support push jobs?

有点,不是真的。有 Chef Push Jobs, which allow you to run pre-configured commands, e.g., to kick off chef-client on your nodes. There was a recent blog article 解释说 Chef Inc. 将此视为 Chef Push Jobs 的主要目标,并且不打算进一步扩展它。所以你不能用那个 运行 ad-hoc 命令。

Rundeck 不能与厨师相提并论。 Chef 是 运行deck 使用的工具。将 运行deck 视为 运行 异构环境,其中之一是厨师。 运行 "commands" 是一个非常小的功能,如果你问我,来自 运行 平台。重要的是工作。

"What list of steps can we take using these 10 tools to solve this problem for a customer?"

第 1 步。(构建阶段) 定义运行套牌工作 第 2 步。(运行 阶段开始) 运行deck 配置为仅与 chef 对话以获取节点信息,因此我们可以 运行 针对这些客户端进行编码 与金库交谈 用 CI 做这个 用 CD 做这个 等等

Chef 只​​是 运行deck 工具提供的 ebonflow 中的一小部分。这只是 运行 列表中的一个可能步骤。