【问题标题】:Difference between chef server vs. chef repo?厨师服务器与厨师回购之间的区别?
【发布时间】:2023-08-24 08:56:02
【问题描述】:

我是 Chef 的新手,并且已经成功配置了我的三个节点 - 工作站、客户端和服务器。 Chef 文档提到了一个主厨“repo”,其内容看起来与主厨服务器非常相似。两者有什么区别,或者它们是同义词?我之所以问,是因为我公司中一直在使用 chef 的其他人,已经在 subversion 中设置了一个 chef-repo 目录,并且这个框与我设置的 chef 服务器不同。谢谢!

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    它们是不同的。

    “Chef Repo”是“代码”的集合——食谱、食谱等。这是您的代码库。打个比方,这是您将推送到 SCM(如 GitHub 或 BitBucket)的原始代码。如果你正在构建一个包,这将是一堆代码。

    除其他外,“Chef Server”是神器商店。它包含最终的版本化工件(cookbooks),它们是从“Chef Repo”打包的。如果您正在构建一个包,这将是 .deb.rpm

    您的节点将仅与 Chef 服务器通信。因此,在工件被打包并上传到 Chef 服务器之前,您在 Chef Repo 中所做的本地开发不会应用。

    【讨论】:

    • 我明白了。当我配置我的客户端(通过knife configure -i)时,它要求提供一个厨师回购位置,我将其留空。我现在可以在 knife.db 中添加它吗?
    • 是的。只需将 cookbook_path 属性设置为食谱的路径即可。
    • “大厨超市”如何融入其中?例如,如果我的组织有自己的私人“Chef Supermarket”,这是在“Chef Repo”之外还是充当“Chef Repo”?对不起,如果我误解了,因为我对 Chef 很陌生。
    【解决方案2】:

    当塞斯瓦戈已经发言时,还有什么要说的,让我继续补充我的观点。在您的场景中,您有四台机器正在运行,您希望通过厨师、工作站、厨师服务器和厨师存储库配置的实际客户端。

    1. 工作站:工作站是您编写食谱的地方。因此,您将在此处安装所有 IDE,如 RubyMine、VIM 或 Sublime Text,并使用它们写下一些配置节点的方法。这是您的本地计算机。

    2. Chef Repo:这是一个版本控制系统,如 github、bitbucket 或 mercurial。这是您将定期(每天阅读)推送代码的地方,以便您可以确保代码安全,与其他开发人员协作编写代码等。这可以是工作中的公共服务器,也可以是 Internet。

    3. 客户端:这是您要使用 chef 配置的框。这是您要安装的软件的接收者,或者是您将对基础设施进行的所有干预。

    4. Chef Server:您编写的食谱需要在某个时间点下拉到客户端。因此,客户端将从这里提取代码并执行它。

    我希望这就是你的意思。

    【讨论】: