介绍
生产基于Web的应用程序的关键领域之一是许多主要公司的自豪感,它是部署。 更精确地说, 如何部署 。 这个任务,有些人确实认为是一个杂事,似乎对您的项目增加很少或没有直接或额外的价值。 然而,精心设计的[部署]过程肯定有助于减少开销,例如浪费时间来获得在线产品。
除非你有一个非常具体(和不断变化的)需求,绝对需要领域,当时间来到把你的应用程序在线,利用各种专用工具,自动化方法或脚本将帮助你回到你的实际开发工作更快 - 大大!
在这篇DigitalOcean文章中,我们将对Capistrano:一个基于Ruby的远程服务器自动化工具进行一个很好的了解,它可以很容易地用于自动化的部署和系统管理任务。 使用Capistrano,您几乎可以完全自动化您通常采取的所有操作,以使您的产品。
目录
1. Capistrano
- Ruby编程语言
- CapistranoRecipe
- 系统/服务器管理
- 应用程序部署
2.安装Capistrano
- 准备系统
- 安装Ruby
- 安装Capistrano
3. Capistrano入门
- Capistrano基础
- 在项目内启动Capistrano
- 创建用于使用Capistrano部署的用户
Capistrano
Capistrano,正如我们的介绍中提到的,是一个基于Ruby的开源服务器管理工具。 虽然它可能出来作为许多现有自动化解决方案的另一个替代品,它是一个优秀的使用感谢其伟大的[高级]功能。
与其他自动化库类似,使用Capistrano任意函数可以在虚拟服务器上执行,而不会直接干扰 - 通过Capistrano执行脚本(即配方)。 但是,一般来说,您可以将此工具视为您自己的部署助手,几乎可以帮助您从部署机器上的代码引导部署过程,并且可以在多个系统上同时或在循环时尚。
看看在互联网上的许多教程,你可能会得到的印象是,卡皮斯特拉诺是RoR的匹配制天堂。 然而,尽管是一个Ruby为重点的框架(或工具),你可以放心地使用它来处理多种不同类型的部署方案,其Recipe ,其中包括部署PHP Web的应用程序。
Ruby编程语言
Ruby是一个通用目的(即不是为了解决一个特定的问题而创建的),动态编程语言已经通过发布Ruby-on-Rails web应用程序开发框架而获得了显着的普及。
简洁有序的方式,可以使用Ruby编写脚本(感谢语言的设计方式)帮助语言获得巨大的势头。 结合RoR框架的目标和心态,以及作为面向对象编程(OOP)语言提供的特性(与当时可用的竞争对手相比),Ruby成为过去十年中最受欢迎的语言之一。
Capistrano是一个基于Ruby的工具,它为用户提供了在编译其部署配方时利用Ruby干净清晰的语法的可能性。
CapistranoRecipe
Capistrano lingo中的Recipe翻译成包含部署(或管理)应用程序和服务器的操作说明的文件。 这些配方可以修改,以支持各种各样的语言特定部署,而不是Ruby(或Rails)相关。 你可以把它们想象成一个Capistrano用来执行它的动作的脚本。
系统/服务器管理
如果你想知道在什么情况下,Capistrano可能会派上用场,下面你可以找到几个例子。
系统和服务器管理作业(通常)包括几乎所有与之相关的事情:
构建服务器
安装应用程序
运行这些应用程序的系统的维护
和监控
当你开始使用自己的VPS(这是一个完全成熟的虚拟化服务器,具有完全的控制/访问),显示为一个谜的东西将很快开始变得熟悉你。
当你的应用程序开始获得一些受欢迎程度,事情开始增长,管理多个Droplet和重复一遍又一遍的需要停止了变得有趣。 当您部署应用程序并处理其维护时,很自然地期望您将遇到一些问题,特别是开销和时间浪费。
Capistrano可以帮助他们与大多数,如果不是所有的 - 从应用程序部署开始。
应用程序部署
部署应用程序(不管是网站,API还是服务器)通常意味着从头开始设置系统(或从时间拍摄的快照),通过更新一切,准备下载依赖关系,设置文件结构和权限,最后上传您的代码库,或者使用源代码控制管理器(SCM)(如Git)下载它。
在开发过程中,你可能需要在每个步骤(例如在进入部署周期之前)定期执行命令。
能够以逻辑组织和最重要的可编程方式对这些任务(本地和远程)进行脚本化,在你意识到浪费了多少时间不断地重复相同的步骤之后,证明是非常有价值的,倾向于在过程中。
安装Capistrano
注:在本文中,我们的重点是在一个VPS上安装Capistrano的,在CentOS 6.5操作系统上运行。 如果您正在使用另外一种(如Ubuntu的)工作,同样的逻辑也适用,但建议您在检查这里正式Capistrano的文件进行安装。
注意:此部分,因此我们成立了目前已经上市,最新的Ruby版本是我们关于这个问题的专门文章概要- 如何安装Ruby 2.1.0在CentOS 6.5 。
准备系统
为了安装Ruby(和Capistrano),我们需要准备我们的最低运费的CentOSDroplet,为其安装用于安装其他应用程序和工具(例如,从源代码安装Ruby的编译器)的开发工具。
让我们从更新我们的系统开始。
运行以下更新基于CentOS的Droplet的默认工具:
yum -y update
通过执行以下命令安装包含开发工具的软件包:
yum groupinstall -y 'development tools'
安装Ruby
我们将使用Ruby版本管理器RVM来下载并安装“rubies”(一个Ruby解释器,由RVM引用)。
运行以下两个命令来安装RVM并为Ruby创建一个系统环境:
curl -L get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
最后,要在我们的系统上完成Ruby,让我们让RVM下载并安装Ruby版本2.1.0:
rvm reload
rvm install 2.1.0
为了验证Ruby是否确实已安装和设置,请运行以下命令:
ruby --version
# ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux]
安装Capistrano
一旦我们的系统准备好了,获得Capistrano的最新版本感谢RubyGems是一件轻而易举的事。
您可以简单地使用以下方式获取Capistrano版本3:
gem install capistrano
如果你想使用绝对最新的版本,你可以链接到Github存储库:
git clone https://github.com/capistrano/capistrano.git
cd capistrano
gem build *.gemspec
gem install *.gem
您可以按照与Ruby类似的方式验证您的Capistrano安装:
cap --version
# Capistrano Version: 3.1.0 (Rake Version: 10.1.0)
Capistrano入门
一旦所有必要的组件设置并准备就绪,我们可以继续Capistrano的基础知识在我们入门文章的最后一部分。
Capistrano基础
与Capistrano合作的关键是将您的项目提交到一个外部Git存储库,在部署期间可以下载它。
你可以选择任何提供者,如Github这样做。
另外,您也可以通过访问看到的Git DigitalOcean社区文章这里了解托管在一个VPS私人Git仓库或者了解如何使用Git工作。
注意:建议Capistrano的,你不应该包含你的资料库中的任何敏感信息(如数据库连接安全凭据)。
在项目内启动Capistrano
启动Capistrano版本3与版本2稍有不同,包含以下命令:
# Usage:
# Enter the project directory: cd [project-name]
# Initiate Capistrano: cap install
cd myapp
cap install
创建用于使用Capistrano部署的用户
当使用Capistrano的部署,执行菜谱的好方法是通过使用比默认的用户root
。 首先,我们将创建一个部署者组,并授予他们继续操作的权限。
要向Droplet中添加新组,请运行以下命令:
groupadd deployers
现在,我们可以继续将用户添加到我们的deployers
组特权。
让我们添加部署为部署:
# Usage: sudo usermod -a -G deployers [name]
sudo usermod -a -G deployers deployer
最后,给部署者组的权限,运行以下和编辑/etc/sudoers
文件中:
nano /etc/sudoers
将以下行添加到组后面:
..
## Allows people in group wheel to run all commands
%deployers ALL=(ALL) ALL
..
更多信息
注意:要了解更多有关SSH和sudo的,请在社区DigitalOcean文章Linux基础 。
就这样! 我们现在准备使用Capistrano进行部署。 继续我们的下一个Capistrano文章,了解如何在各种部署场景中使用此工具。