背景 我正在运行chef-client –local-mode,将cookbook路径设置为./berks-cookbooks这些烹饪书,在运行厨师之前已经由berkshelf下载了. (厨师sdk 4.0.0,berkshelf 3.2.3) 在运行我的脚本之前,厨师必须运行“
我正在运行chef-client –local-mode,将cookbook路径设置为./berks-cookbooks这些烹饪书,在运行厨师之前已经由berkshelf下载了. (厨师sdk 4.0.0,berkshelf 3.2.3)
在运行我的脚本之前,厨师必须运行“Synchronizing Cookbooks”,此步骤需要2到3分钟.据我所知,厨师正在下载相关的烹饪书,并检查他们的哈希值.
我的问题
如果我正在使用berkshelf并且已经在本地保存了烹饪书,为什么厨师花这么长时间下载Cookbook?
有人知道加速它的方法吗?
我也想知道这一点,最后对厨师 – 客户流程进行了分析,看看它在做什么.对于在本地模式下运行时厨师客户可用的每本食谱,它会读取所有其他可用烹饪书中的文件(并且更糟糕的是,似乎每个食谱不止一次).这意味着以本地模式同步烹饪书的时间将随着可用烹饪书数量的平方而增长.
你可以做的最小化这个时间的一件事是在运行之前删除所有不必要的烹饪书 – 即.手动同步手册并删除不使用的手册.
由于我没有检查代码,我不知道为什么会这样做,但真正的解决方法是将代码更改为不重复读取相同的文件.