2012-12-14 48 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他們的變化)

希望這有一些用途你

相關問題