微信号:rigongyizu365

介绍:一线码农不端不装的「日拱一卒」,关注技术、书籍、创业、GTD、以及一切个人成长周边的话题,每周一到五更新.

利器: 如何让Chef做好「部署」这道菜(四)

2015-12-28 23:41 lazybios

前面的文章,已经把Chef-Solo说的差不多了,不过之前的例子都用的自己定制的食谱,今天这篇来说一说Berkshelf

Chef也有一个类似与Rubygems的在线Cookbook市场,管理gem包我们会选择用Bundle,Chef对于Cookbook的管理也有类似Bundle一样的包管理工具,即Berkshelf。它可以像Bundle管理Gem一样帮你打理好第三方食谱的版本和依赖关系。当然,Chef同类型的包管理工具还有一个叫librarian-chef的工具,不过对比了一下二者的Github情况,后者好像好久千左右维护了,还是Berkshelf比较活跃。

安装

gem install berksfile

使用

初始化

在使用Knife-Solo初始化食谱的时候,Knife会自动检测当前系统是否有安装Berkshelflibrarian-chef,并会将第三方食谱安装位置写到.chef/knife.rb配置文件中。我们这里显然用到的是Berkshelf,所以使用knife solo init生成的目录结构如下:

执行knife solo init .


PS: 请无视上面的警告语句

生成的目录结构


.chef/knife.rb中的内容

修改Berksfile

初始化好之后,就能像编辑Gemfile一样,编辑Berksfile,并且其执行上也很像Bundle。编辑Berksfile,添加如下内容,并运行berks install,运行后会在Berksfile同级目录下生成一个Berksfile.lock的文件,用来记录食谱之间的版本依赖关系。

source "https://supermarket.chef.io"

cookbook "nginx", "~> 2.6"
berks install之后的目录结构

可以看出除了我们要求安装的Nginx之外,还安装了一些其它的依赖食谱,并且其存放位置就在我们的cookbooks目录之下,这个在昨天也说过cookbookssite-cookbooks的区别,前者用来存放第三方食谱,后者存放自定义的食谱,由于每次我们执行的时候都会刷新一遍cookbooks,所以其中的内容并不持久,如果把自定义的放到这里,一些修改很容易被覆盖掉。

安装好后,你就能针对性的对一些食谱进行修修补补,改成符合你自己需求的样子,除此之外其它地方跟你自己写食谱一样,只是可能比你写的要更加全面一些。当然,DRY是我们所追求的,并且学习好的范式也是进步的一种渠道。食谱搞定了,剩余的就是上传食谱到Node客户端节点执行,这根前一篇Knife-Solo所说的没啥区别。

-待续-

你还可以看:

利器: 如何让Chef做好「部署」这道菜(一)

利器: 如何让Chef做好「部署」这道菜(二)

利器: 如何让Chef做好「部署」这道菜(三)

利器: Mac自带的图片工具Sips

利器: 图像批处理工具ImageMagick

利器: 说说Mac上 OS X上的常用快键键

利器: 通过Mackup高效的管理你的RC文件

利器: 用Siege做Web服务器压测

代码搜索利器: The Silver Searcher


参考引用

  • http://berkshelf.com/



 
日拱一卒 更多文章 Objective-C中的块(block)语法初步 MPMoviePlayerController视频播放器初步 UIViewController(视图控制器)的生命周期 关于SQL中的Join Vim中的搜索与替换
猜您喜欢 规则破坏者 没听过IBM全球网格大联盟的"公益众筹计算"? 你Out了 ! —— 人人公益,助力破解净水难题 Build MicroService With Spring Cloud And Rancher 【完结】测试趋势下,老司机带你怎么寻找学习方向 CBD商圈人群分析——北上广深商圈人群画像分析