- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用Capistrano 3自动化部署Web应用如果你部署过Web应用,你应该知道,很多时候并不是把源代码/war包放上服务器就了事的。你得修改配置,修改数据库结构,重启服务器,重启后台进程……人是很容易犯错的,步骤一多,就会记不住。如果你部署的是大型Web应用,几百台服务器各自负责不同的工作,那部署一次就能让你哭出来。有什么办法解决这个问题?自动化部署!计算机能够勤勤恳恳孜孜不倦地重复劳动,那为什么我们不把部署的任务交给它呢?于是乎,今天我就来讲讲怎么用Capistrano 3来实现自动化部署。先决条件Ruby = 1.9(Capistrano的运行环境,并不要求你的Web项目是Ruby的)SSH Server(服务器端),采用公钥验证SSH Client(开发机端)SCM(Source Controll Management,版本控制,推荐使用Git)如果使用Git,建议申请一个或的帐号安装Capistrano 3并将项目纳入Capistrano管理打开控制台(UNIX/Linux的Terminal、Windows用户可使用Git Bash),输入:$ gem install -v ‘~ 3.3’ capistrano$ cd $project_root$ cap install其中$project_root是你的项目的根。注:如果你从来没用过UNIX/Linux,每行开头的那个$是不用你打的。它是命令行提示符,相当于Windows里的C:\。中间的$xxx是变量,类似于Windows里的%xxx%。最后一条命令会帮你在项目的根下创建下述文件/目录结构:$project_root/||--Capfile||--config/||||--deploy.rb||||--deploy/||||--production.rb||--staging.rb||--lib/||--capistrano/||--tasks/Capfile是一个胶水文件,用来导入各种第三方库。这些第三方库往往已经定义好了各种任务,如数据库更新/回滚、远程控制台、等等等等。很多库也把任务整合进了部署/回滚流程(见下节)。config/deploy.rb可以看成是主配置文件,所有在部署/回滚中需要自动执行的自定义任务都可以挂在这里。虽然它其实是Ruby脚本,但是它提供了非常简洁的DSL,使得不懂Ruby的程序员也可以看得懂、写得出部署脚本。config/deploy/*.rb是针对每个不同环境(见下节)的配置,这里主要配置一些服务器端的IP、登录用户名之类的东西。由于这些文件会被提交至SCM,所以非常不建议把敏感信息(如密码、SSL私钥等)写在里面。敏感写在哪里下面会说。也正是由于这样的理由,建议SSH使用公钥验证,而非用户名+密码的验证方式。lib/capistrano/tasks文件夹给你存放自定义任务的脚本。这些脚本必须以.rake结尾。快速上手我们来看看如何以最少的配置、最快的速度部署项目。1. 进入项目根目录$ cd /path/to/my_app2. 把项目加入SCM(如果已经做过了,这一步可以省略。这里用Git,你也可以用SVN)$ git init$ git add --all .$ git commit -m ‘Initial commit’$ git remote add origin remote repo url$ git push origin master把项目Capistrano化(如果已经做过了,直接跳过)$ cap install修改config/deploy.rb里的这几行:set :application, my_app # my_app是你的项目名称,这决定部署的目录set :scm, :git # 如果你用SVN,把:git改成:svn就行set :repo_url, remote repo url # 你的remote仓库的urlset :deploy_to, /var/www/my_app # 默认部署到 /var/www/my_app目录修改config/deploy/staging.rb:注释掉下面这几行:# role :app, mailto:%w{admin@}%w{admin@}# role :web, mailto:%w{admin@}%w{admin@}# role :db, mailto:%w{admin@}%w{admin@}根据实际服务器的IP/域名和用户名修改下面这一行:server , user: admin, roles: %w{web app db}, my_variable: :my_value部署$ cap staging deploy这一步可能会出现一些权限问题,请确保服务器
您可能关注的文档
- 2014生产项目档案质量规.docx
- 2014生态农业智能温室大棚监测控制系统设计方案.doc
- 2014生态护坡工程施工技术要求.doc
- 2014生产运营管理作业.doc
- 2014生态放养鸡养殖技术规.doc
- 2014生态文明与建设10分题库答案整理.doc
- 2014生态文明建设6分作业题.doc
- 2014生态旅游现状与发展出路.doc
- 2014生态旅游学期末复习题.doc
- 2014生态旅游论文生态旅游政策法规研究.doc
- 第2课+西方国家古代和近代政治制度的演变+ 高二上学期历史统编版选择性必修1国家制度与社会治理.pptx
- 第4课+西汉与东汉——统一多民族封建国家的巩固 高一上学期统编版必修中外历史纲要上 (1).pptx
- 第3课+秦统一多民族封建国家的建立 高一上学期统编版必修中外历史纲要上 (3).pptx
- 第三单元+辽宋夏金多民族政权的并立与元朝的统一 高一上学期统编版必修中外历史纲要上.pptx
- 第2课+诸侯纷争与变法运动 高一上学期统编版必修中外历史纲要上 (3).pptx
- 第6课+从隋唐盛世到五代十国 高一上学期统编版必修中外历史纲要上 (1).pptx
- 第16讲+明至清中叶的经济与文化+课件--2026届高三统编版必修中外历史纲要上一轮复习.pptx
- 第9课+两宋的政治和军事+ 高一上学期统编版必修中外历史纲要上 (2).pptx
- 第10课+辽夏金元的统治 高一上学期统编版必修中外历史纲要上.pptx
- 第5课+中国古代官员的选拔与管理 高二上学期历史统编版选择性必修1国家制度与社会治理 (4).pptx
文档评论(0)