我正在尝试编排,并给自己设定了挑战:
- 构建 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 进行自我配置。默认配置位于以下属性文件中:
您可以在以下位置看到 Bookshelf 默认的 data_dir 属性:
希望这可以帮助。