我已经创build了一本食谱,并使用manage.chef.io来托pipe和部署它。 我已经在GitHub私人回购中托pipe了食谱。
考虑一个场景:
如果我在cookbook和knife cookbook upload做了一些更改,但是我忘了把它推到Github上。
我如何确保它不会发生? 甚至不是错误的。 我如何确保每个人都有最新的回购,否则knife upload不能knife upload 。 就像你不能git push改变一样。
我的同事从GitHub拉,但没有看到变化。 于是他做出了自己的改变,把knife cookbook upload下来。 但是他会replace我的改变,因为他有一个旧版本。
那么,在多个DevOps中pipe理食谱的最佳做法是什么?
最简单的方法通常是推动厨师服务器在Jenkins的CI服务的控制下。 由于没有人有权限运行食谱上传,所以强制在源代码控制周围进行序列化。 你也可以确保你足够的沟通,以避免这种情况,但这更容易出错。 有些策略文件的Chef工作stream程根本没有使用正常的食谱上传。