1. mina是什么?
开发完了网站要上线或正在开发,要测试,那得把应用部署到线上,也就是互联网上,那就是真实环境,客户或用户能访问到的环境。公司的测试人员也能在上面测试,你总不能用你的localhost环境映射ip地址后给非程序员的测试人员测试吧。所以需要把本地上的应用部署到线上。说到部署,其实就是让线上能跑通程序,最简单的,就是把代码上传到线上主机。以前,可能会用到ftp,这种最简单了,但太粗糙了,又麻烦,改一点东西就要打开ftp工具,然后上传。后来有了版本控制工具。虽然比ftp好。但还是不够灵活。每次改完东西,你就得登录主机,然后clone代码,做些操作,最后重启服务。这一系列的过程你不得不重复。老是重复一件相同的事,既浪费人力也浪费时间。所以有了自动化。反正做的事都是一样,就用程序来代劳吧。ruby on rails的自动化部署工具有capistrano。这个比较为大家所熟知,不过我们介绍的不是这个,是另一个,它的名字叫mina。
2. 为什么选择mina?
capistrano是很强大的,使用的人数也很多,插件也多,它慢慢地从部署工具上升到运维工具的层面了。我们不来比较capistrano,我们只说mina。mina很简单,上手很快,速度也比较快,也很灵活,插件也是有不少,功能也算比较强大。当你部署多台主机,多个环境(staging)时选择mina是不错的,用它写自定义脚本也是比较轻松的。下面会慢慢体会到,也会简单说说mina的部署原理,让你知其然又知其所有然。我们通过学习mina来理解自动化部署,你会了mina,理解了自动化部署,相信掌握capistrano也就不在话下,因为它们只不过是两种方式,思想是差不多的。
3. 使用mina
假设你已经拥有了一个rails项目,想要部署。
首先你得阅读一下mina官方github上的readme文件吧。
打开Gemfile文件,添加下面这行。
gem 'mina', require: false
执行bundle install,安装gem。