我们现在用 Rails 做开发,线上的环境配置非常繁琐。到现在仍然没有找到一个可以快速 setup 一个 server 的解决方案。以下是我们在部署一个新的 server 时要做的一些麻烦事,我希望有一天能够在半小时内不用 ssh 登陆服务器就能把这些事情做好。

我们现在全线使用阿里云来配置 qa, production, db, backup 这些环境。每次新拿到一个 vps,我们做的第一件事情就是配置 ssh,创建相关人员账户,设置 public key,关闭免密码登录。这一系列的动作我们使用了 chef 来做这件事情,基本上做到了一键设置。还有像一些 bash,hosts 文件配置,安装一些常用软件等着一些比较简单的事情 chef 也做得很好。但 chef 能做好的事情也仅仅只有这一些而已。一旦我们需要安装类似于 rvm,ruby,postgresql 这样配置比较复杂的软件时 chef 就完全不能胜任了。其中有很大一方面的原因是 chef 配置非常之复杂、繁琐。里面各种各样的依赖,和每个 node 之间相互不同的 attributes 很让人焦头烂额。每次修改配置的时间超过了 setup 一个 server 的时间。如果长时间不去维护里面的 cookbook,过一段后又要重新去翻文档配置。这就是 chef 的问题,它带来的问题比要解决的问题更多。

Click here to see the full blog post