快速部署 ruby/rails 环境,包含 rvm
, ruby
, mysql
, nginx
, unicorn
.
Fire Up!
https://github.com/SaitoWu/fireup
Fire up 本地 vagrant 测试部署一台 ubuntu 12.04 precise 耗时 699 秒,最主要的时间耗费在下载 ruby 源码与编译上面。如果这里能提速的话,1 分钟应该没问题。
Fire Up 最好的使用方式是 Fork, 因为每个人/公司的部署方式各不不同,不可能整出大一统的解决方案,Fire Up 本身只提供最基础的 Rails 应用部署 ( ruby, unicorn, mysql, nginx ). 类似 redis, mongodb, memcached 可以 Fork 后自行添加。
因为之前是在 vagant box 上进行测试,vagrant box 默认有一个 post_install.sh 的脚本,运行后可以预备环境。我把 vagrant 的脚本裁减了一下 steal 到 install.sh 里面。所以已经不需要 #4 楼 @huacnlee 的步骤了.. 系统环境千变万化,欢迎大家 PR, 或者直接提 issue.
立刻在新的虚拟机上面测试了一下,过程还有很多问题
/var/lib/gems/1.8/bin/
需要加入 PATH 环境变量全新的 Ubuntu Server 上面执行,起码需要下面这些动作
sudo apt-get install rubygems1.8 git
git clone git://github.com/SaitoWu/fireup.git
sudo gem install puppet
sudo export PATH=/var/lib/gems/1.8/bin/:$PATH
cd fireup
git submodule update --init
./install.sh
vagrant 还是有些不方便的地方,主要是 windows 上,本来有了虚拟机就可以屏蔽差别,结果我试了一下好像安装本身也不是很顺利,不知道是不是人品问题
https://github.com/SaitoWu/fireup/blob/master/install.sh
提交了新的 VPS 单独安装脚本。大家可以测试一下,给个反馈之类的。
这个测试脚本是从 vagrant 里面的 post_install.rb 里面抠出来的。
#32 楼 @yedingding 哦。其实主要是一些配置的问题。比如 nginx.conf 文件你怎么配置?
真正上线产品的时候,数据库参数可能需要手动调整。
这个就略麻烦了一点。只是安装的话 Deb 包足够了..
我之前 puppet 版本的是有 nginx unicorn 的配置文件的,现在这个 chef 版的还没加进来。
#34 楼 @yedingding 嗯,还是要用 chef, 我以为你不用。
用一些现成的 cookbook 还是有些好处的,一个是解决了 ubuntu 不同版本 包版本不一致的问题 (这个自己解决的话得自己找三方包), 再一个是他们内部一般都集成了配置文件,在 json 里面配置写一下就好了。