• 2008-03-03 18:23:01
    标签:杂谈
     部署网络应用服务是很麻烦的事情,安装程序,升级数据库schema,切换版本,重启服务。步骤越多,人工参与越多,越容易出问题。

       Capistrano是ruby on rails提供的部署方案,原名叫SwitchTower,多好记的名字,结果和人重了,换成现在这个,估计是为了赌气才起成这样,反正我再也不能拼对 了。它集成了很多部署程序必须的步骤,借助ssh、版本管理系统(支持svn、cvs等等好几种)和rails的migration,只要做好配置,就可 以在很大程度上实现部署自动化。

      Capistrano的相关文档可以看这里。最简单的使用方法是:

      安装

      gem install capistrano

      加入capistrano支持

      cap --apply-to /path/to/my/app MyApplicationName

      修改配置文件

      修改config/deploy.rb文件。

      初始化服务器上的运行环境

      rake remote:exec ACTION=setup

      这一步会连上你的服务器,创建一些目录。

      部署

      rake deploy

      连接服务器,完成部署。

      说起来好像挺简单,麻烦的地方主要在于修改config/deploy.rb配置文件。一般来说主要配置的参数包括:

      application:应用名。

      repository:版本管理系统的链接URL。

      web:web服务器名列表。

      app:应用服务器列表。

      db:数据库服务器列表。

      user:ssh用户名。

      deploy_to:应用部署路径。

      如果你的svn链接需要用户名和密码,可以通过svn_username和svn_password配置,文档中没写,算我免费友情提示。

      除了setup和deploy,缺省支持的命令主要有:

      disable_web:生成maintenance.html,你的系统需要能够自检测这个文件。

      enable_web:删除maintenance.html。

      update_code:和版本管理器做代码同步。

      rollback_code:如果部署完发现有问题,可以用这个命令换回上一个。

      restart:重启,其实就是调用了reaper。

      migrate:在服务器端运行rake RAILS_ENV=#{rails_env} migrate。

      deploy:其实就是update_code+symlink+restart。

      deploy_with_migrations:update_code+migrate+symlink+restart。

      rollback: rollback_code + restart。

      还有一些其它的命令,具体可以查看gem capistrano安装目录下lib/recipes中的standard.rb。另外,可以自己在deploy.rb中定义新的命令。

      目前的capistrano(版本1.1.0)还有一些局限,比如你所有服务器都必须使用同样的账号,这个让我在dreamhost上部署碰到了一点麻烦。总的来说还是比较方便的。

::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


订阅 substack 体验古早写作:


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::