我創建了一本食譜,並用於manage.chef.io
託管和部署它。我已將食譜託管在 GitHub 私人儲存庫中。
考慮一個場景:
如果我對食譜做了一些更改knife cookbook upload
,但我忘記推到Github。
我如何確保它不會發生?甚至不是錯的。我如何確保每個人都可以隨時獲得最新的儲存庫,否則就不能knife upload
。就像git push
如果您沒有git pull
編輯更改就不能一樣。
我的同事從 GitHub 上拉取數據,但沒有看到任何變化。因此他做出了自己的改變knife cookbook upload
。但他會替換我的更改,因為他有舊版本。
那麼在多個 DevOps 之間管理一本說明書的最佳實踐是什麼?
答案1
最簡單的方法通常是讓 Chef Server 的推播由 Jenkins 等 CI 服務控制。這迫使圍繞原始碼控制進行序列化,因為沒有人有權運行說明書上傳。您也可以確保充分溝通以避免這種情況,但這更容易出錯。一些圍繞策略文件的 Chef 工作流程根本不使用正常的說明書上傳,因此不會出現此問題。