我们目前正在设立opscode厨师,我们希望通过Git管理所有食谱,环境等。是否有最佳实践/自动化以确保通过仪表板进行的所有更改(例如新环境)会自动添加到版本控制中?
答案 0 :(得分:1)
这个确切的问题是我很少使用Web客户端的原因。相反,我有一个git repo,我将我的JSON配置保存在repo中,然后使用knife
及其from file
功能来更新节点,角色,环境和烹饪书。这让我更容易确保git和chef是最新的。
如果必须使用Web界面,则可以设置cron作业以定期通过Chef REST API提取数据,然后将任何更改提交到git仓库。
答案 1 :(得分:1)
我们设计的解决方案(但为了完全公开并未超出POC)是观察couchdb的变化(http://guide.couchdb.org/draft/notifications.html)每当文档发生变化时,我们都会从couchdb中取出它并将其检入git。
您可以通过持续监听更改或编写脚本来执行此操作,只需保留指向您更新的最后一条记录的指针即可。这意味着该解决方案与客户端完全无关,该客户端在couchdb中更新文档(即刀/ webui / recipes /命令行脚本最终都通过api注册其更改并进入couchdb)
希望对你有所帮助