最近学习了下 chef,
发现这个东西学习曲线太陡了,对于效率的提高也不是很明显,有些软件还不如直接用 shell 脚本或者手工安装来得方便。
平时开发中大家使用 chef 或者 puppet 频率多吗?这种东西感觉有点华而不实,并没有所说的那么神奇,可能是我还没上手的原因吧,有人觉得 chef 很好用吗?谢谢!
多个应用就用 Chef 或 Puppet,需要单独作为一个应用。
单个 VPS 可以用 Chef solo 和 Knife。我用过 chef solo。第一次麻烦点,以后很好用。
@wcc526 流程写出来好多。你可以看看那本部署之道的书。也不是很陡,掌握概念就行了,无非是流程自动化。然后大量使用 DSL
我的做法大致是这样:
某 app 第一次部署先设定 staging, 可以是本地 vagrant 或者在线的。然后以下均基于 staging,除非特别声明。
chef 文件单独做 git。然后设好所有选项。
安装 chef 到服务器。knife prepare
cap deploy staging
这样基本就好了,人工看看大致没有问题就 cook 到 production, 以及 cap deploy production
修改服务器设置的时候改本地 chef git,然后 cook。不需要动 capistrano 就不动。
@wcc526 我看了一下我的那个本地文件夹,核心逻辑和密码什么的都在 nodes/里面,都 ignore 了 :)。你可以看看这个https://github.com/TalkingQuickly/rails-server-template 我基本是照这个改的。
实在有困难就先手动吧,这个东西就像@blacktulip 说的也是个锦上添花,不是必要的。
@wcc526 最近我也在学习,遇到了不少坑,不过最近比较顺利了,个人觉得还是不错,对于多台服务器的部署都 ok,我在用 chef+vagrant 来练习多台 server 部署,入门可以参考http://gogojimmy.net/2013/06/01/Chef-Solo-Basic-with-Vagrant/。