厨师 - 只有git的食谱/角色管理?

时间:2015-08-05 20:44:24

标签: git chef puppet chef-solo devops

几年前我和Opscode Chef一起工作,我正考虑在我的新公司再次使用它 - 但我想知道我的一些与Chef的问题是否在此期间得到解决,或者我是否应该期待使用相同的解决方法。

虽然我喜欢服务器风味的许多功能,但我不喜欢这样的事实:我们的烹饪书和角色的版本管理与实际添加到厨师服务器的项目是分开的。在我看来,拥有这两个不同的步骤只是在有人从文件创建运行列表时遇到麻烦,然后忽略将这些更改提交到版本控制。我最终选择了chef-solo,在cron作业上运行并从我们的存储库中删除更改,然后从指向我们特定node.json配置的shell脚本运行。这样,将项目送入Chef的唯一方法就是将它们放在Git中。说实话,这似乎是唯一理智的方式:你不要为你的项目使用版本控制,而是将你的文件FTP到你的生产服务器。

较新版本的Chef是否只能从版本控制的存储库中读取配置更新?如果没有,是否有任何工具使用存储库上的提交钩子来更新Chef的配置?有没有人有类似的担忧,你是怎么解决的?

我也愿意使用Puppet(或任何其他基于拉的工具),我只是没有任何经验,所以这不是我的第一选择。 Ansible /任何基于推送的工具都不起作用。我们正在管理防火墙后面的机器,有时会有不可预测的网络连接。

2 个答案:

答案 0 :(得分:1)

看看chef-guard。它是一个模仿厨师api的中间层工具,但是拦截你的刀具命令并将源代码控制拉入混合。因此,当您上传新的运行列表,食谱,环境或任何内容时,它会确保在将其转发到厨师服务器之前处于源控制(并在烹饪书的情况下标记)。应该完全按照您的意愿行事。

答案 1 :(得分:0)

不幸的是,Chef对任何工作流程都没有意见。我会说建议的方法是在某处(例如Jenkins)实施连续交付管道,上传到厨师服务器。