2012-12-14 46 views
4

目前,我们正在建立Opscode公司的厨师,我们要管理所有食谱,环境等通过Git的。是否有最佳实践/自动操作来确保通过仪表板进行的所有更改(例如新环境)都自动添加到版本控制中?厨师:如何将通过仪表板进行的更改添加到Git?

+0

这是我不认为这是对如何解决这个问题达成共识一个很好的问题。 –

+0

您是否与Hosted Chef合作?或者你有自己的厨师服务器? –

回答

1

这个确切的问题是,为什么我很少使用Web客户端。相反,我有一个混帐回购协议,我救我的JSON配置在回购协议,然后使用knife及其from file功能更新节点,角色,环境和食谱。这让我更容易确保git和厨师是最新的。

如果你必须使用Web界面,您可以设置一个cron作业,通过厨师REST API定期提取数据,然后提交给你的混帐回购协议的任何改变。

+1

然而''knife node from file'有一个问题 - 它会删除所有的节点属性(包括IP),直到你运行chef-client。 –

+0

你是对的。但是出于我的版本控制目的,这不是一个很大的限制。 –

1

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

您可以通过具有连续变化收听或有它的脚本,只是让你更新的最后一条记录的指针做到这一点。这意味着解决方案是完全不可知的客户端更新在couchdb中的文件(即刀/ webui /食谱/命令行脚本都结束了通过API注册到couchdb他们的变化)

希望这有一些用途你

相关问题