4

我们目前正在设置 opscode chef,我们希望通过 Git 管理所有食谱、环境等。是否有最佳实践/自动化来确保通过仪表板进行的所有更改(例如新环境)都自动添加到版本控制中?

4

2 回答 2

1

这个确切的问题是我很少使用 Web 客户端的原因。相反,我有一个 git 存储库,我将我的 JSON 配置保存在存储库中,然后使用knife它的from file功能来更新节点、角色、环境和说明书。它让我更容易确保 git 和 chef 是最新的。

如果您必须使用 Web 界面,您可以设置一个 cron 作业以定期通过 Chef REST API 提取数据,然后将任何更改提交到您的 git 存储库。

于 2012-12-14T12:29:36.390 回答
1

我们设计的解决方案(但为了充分披露并没有超出 POC 的范围)是观察 couchdb 的变化(http://guide.couchdb.org/draft/notifications.html)以及每当文档发生变化时我们从 couchdb 中提取它并检查到 git 中。

您可以通过持续监听更改来完成此操作,也可以编写脚本并保留您更新的最后一条记录的指针。这意味着该解决方案对于更新 couchdb 中的文档的客户端是完全不可知的(即,knife/webui/recipes/命令行脚本都最终通过 api 注册它们的更改并进入 couchdb)

希望对你有用

于 2012-12-16T21:00:10.440 回答