厨师服务器上的食谱存储在文件系统的什么位置

厨师服务器上的食谱存储在文件系统的什么位置

我正在尝试编排,并给自己设定了挑战:

  • 构建 Chef 服务器
  • 之后构建由 chef 服务器配置的大量节点

问题是,chef 服务器需要使用所有相关的食谱来构建,我需要配置其余的环境。由于在 chef 服务器上 git clone 一大堆东西,然后将 knife 食谱上传到本地主机似乎有点愚蠢,我想知道食谱是否在 chef 服务器文件系统的某个简单目录中,这样就可以简单地下载单个 repo 作为正在构建的实例的一部分,并将所有食谱放到一个位置,chef 服务器然后会“托管”该位置。我在 Ubuntu 12.04 和 chef 服务器 v11.12.8 上搜索了好久,但还是找不到任何文件,尽管服务器上有一个食谱(我可以在食谱列表中看到)。

我开始认为它们是以其他格式(可能是二进制)存储的,这意味着我无法以我想要的方式实现我想要的东西。

有人曾经见过这些文件吗?

另外,我已经看到了这一点,但这并没有真正的帮助:https://stackoverflow.com/questions/15330678/where-are-the-cookbooks-stored-in-chef-server

答案1

Chef-Server 使用 Erlang 实现的内置 S3 API 兼容对象存储,称为 Bookshelf。默认存储路径应为

/var/opt/opscode/bookshelf/数据

Chef-Server 使用 chef cookbooks 进行自我配置。默认配置位于以下属性文件中:

https://github.com/chef/chef-server/blob/master/omnibus/files/private-chef-cookbooks/private-chef/attributes/default.rb

您可以在以下位置看到 Bookshelf 默认的 data_dir 属性:

https://github.com/chef/chef-server/blob/master/omnibus/files/private-chef-cookbooks/private-chef/attributes/default.rb#L486

希望这可以帮助。

相关内容