前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Capistrano自动部署:入门教程

如何使用Capistrano自动部署:入门教程

原创
作者头像
何处惹尘埃
发布2018-08-13 18:13:34
2.2K0
发布2018-08-13 18:13:34
举报

介绍

制作基于Web的应用程序的关键领域之一是部署。如何部署,这项任务确实被视为一件苦差事,似乎对您的项目几乎没有任何直接或附加价值。然而,一个精心设计的部署过程肯定有助于减少开销,例如不会浪费时间在让产品上线。

除非您有一个非常具体(和改变)的要求,具有绝对的以域为中心的需求,当您的应用程序联机时,利用各种专用工具,自动化方法或脚本来帮助使你实际的开发工作更快- 好极了!

我们将详细介绍Capistrano:一种基于Ruby的远程服务器自动化工具,可以轻松地用于自动化普通部署和系统管理任务。使用Capistrano,您几乎可以完全自动执行通常用于生产产品的所有操作。

目录

1. Capistrano

  1. Ruby编程语言
  2. Capistrano操作方式
  3. 系统/服务器管理
  4. 应用程序部署

2. 安装Capistrano

  1. 准备系统
  2. 安装Ruby
  3. 安装Capistrano

3. Capistrano 入门

  1. Capistrano基础知识
  2. 在项目中启动Capistrano
  3. 创建用Capistrano进行部署的用户

Capistrano

Capistrano,如我们的介绍中所提到的,是一个基于Ruby的开源服务器管理工具。虽然它可能只是许多现有自动化解决方案的另一种替代方案,但由于其高级功能,它是一种非常出色的解决方案。

与其他自动化库类似,使用Capistrano可以在虚拟服务器上执行任意功能而不会有直接干扰 - 通过让Capistrano执行脚本(即操作方式)。但是,一般情况下,您可以将此工具视为您自己的部署助手,帮助您完成从部署计算机上获取代码到引导部署过程的几乎所有操作 -并且它可以在多个系统上同时或以循环方式执行。

看看互联网上的许多教程,你可能会觉得Capistrano是RoR的完美框架。但是,尽管是一个专注于Ruby的框架(或工具),您可以安全地使用它来处理许多不同类型的部署方案及其配方,包括部署PHP Web应用程序。

Ruby编程语言

Ruby是一种通用的(即不是为解决特定问题而创建的),动态编程语言随着Ruby-on-Rails Web应用程序开发框架的发布而大受欢迎。

Ruby编写脚本的简洁有序的方式帮助语言获得了巨大的动力。结合RoR框架的目标和心态,以及它作为面向对象编程(OOP)语言提供的功能(与当时可用的竞争对手相比),Ruby成为过去十年中最受欢迎的语言之一。如果您使用的是CentOS系统或者Windows系统,可以参考腾讯云开发者实验室在 Linux 上部署 Ruby On Rails 环境windows下搭建Ruby开发环境,腾讯云社区也提供Ruby中文开发者手册,欢迎使用。

Capistrano是一个基于Ruby的工具,它为用户提供了在编译部署配方时利用Ruby干净清晰的语法的可能性。

Capistrano 操作方式

Capistrano lingo中的操作方式转换为包含部署(或管理)应用程序和服务器的操作指示的文件。 可以修改这些配方以支持与Ruby(或Rails)无关的各种语言特定部署。 您可以将它们视为Capistrano用于执行其操作的脚本。

系统/服务器管理

如果您想知道Capistrano可能派上用场的方式,下面你可以找到一些例子。

系统和服务器管理作业(通常)包括与以下内容相关的几乎所有内容:

  • 构建服务器
  • 安装应用程序
  • 维护运行这些应用程序的系统
  • 监测

当您开始使用自己的VPS(这是一个完全控制/访问的完全成熟的虚拟化服务器)时,看起来很神秘的东西很快就会变得熟悉。

随着您的应用程序开始流行并且事情开始增多,管理多个CVM并且一遍又一遍地重复所有内容的需求不再变得有趣。当您部署应用程序并处理其维护时,很自然地会发现您会遇到一些问题 - 特别是开销和时间浪费。

Capistrano可以帮助他们处理大多数(如果不是全部) - 从应用程序部署开始。

应用程序部署

部署应用程序(无论是网站,API还是服务器)通常意味着从头开始(或从及时拍摄的快照)设置系统,通过更新所有内容,下载依赖项,设置文件来准备它结构和权限,然后最终上传您的代码库 - 或使用源控制管理器(SCM)(如Git)下载它。

在开发过程中,您可能需要在每个步骤中定期执行命令(例如,在进入部署周期之前)。

能够以有逻辑的组织编写这些任务(本地和远程)的脚本,最重要的,在你意识到浪费了多少时间不断重复相同的步骤,在此过程中呈现一切容易出错的情况之后,编程方式很快被证明是非常有价值的。

安装Capistrano

注意:在本文中,我们将重点放在运行在CentOS 6.5操作系统上的VPS上安装Capistrano。如果您正在使用其他类型(例如Ubuntu),则会应用相同的逻辑,但建议您查看此处官方Capistrano文档以进行安装。

准备系统

为了安装Ruby(和Capistrano),我们需要准备我们最小的CentOS CVM,为其安装开发工具,以便安装其他应用程序和工具(例如,从源代码安装Ruby的编译器)。有关CVM腾讯云服务器的相关知识可以具体参考腾讯云学院中腾讯云服务器CVM的基础应用课程

让我们从更新系统开始。

运行以下命令以更新基于CentOS的CVM的默认工具:

代码语言:javascript
复制
yum -y update

通过执行以下命令安装包含开发工具的软件包:

代码语言:javascript
复制
yum groupinstall -y 'development tools'

安装Ruby

我们将使用Ruby Version Manager RVM来下载和安装“rubies”(一个Ruby解释器,由RVM引用)。

运行以下两个命令来安装RVM并为Ruby创建系统环境:

代码语言:javascript
复制
curl -L get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh

最后,为了在我们的系统上完成Ruby,让我们让RVM下载并安装Ruby版本2.1.0:

代码语言:javascript
复制
rvm reload
rvm install 2.1.0

为了验证Ruby确实已安装和设置,请运行以下命令:

代码语言:javascript
复制
ruby --version 
# ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux]

安装Capistrano

一旦我们准备好系统,RubyGems就可获得Capistrano的最新版本。

您只需使用以下内容即可获得Capistrano版本3:

代码语言:javascript
复制
gem install capistrano

如果您想使用最新版本,可以链接到Github存储库:

代码语言:javascript
复制
git clone https://github.com/capistrano/capistrano.git
cd capistrano
gem build *.gemspec
gem install *.gem

你可以用类似于Ruby的方式来验证你的Capistrano安装:

代码语言:javascript
复制
cap --version
?
# Capistrano Version: 3.1.0 (Rake Version: 10.1.0)

Capistrano 入门

一旦设置好所有必要的组件并准备就绪,我们就可以在我们入门文章的最后一部分继续介绍Capistrano的基础知识。

Capistrano 基础知识

与Capistrano合作的关键是将您的项目提交到外部Git存储库,可以在部署期间下载它。

您可以选择任何提供商(如Github)来执行此操作。

注意:所推荐的Capistrano,包含你仓库内的任何敏感信息(如数据库连接的安全凭证)。

在项目中启动Capistrano

启动Capistrano版本3与版本2略有不同,包含以下命令:

代码语言:javascript
复制
# Usage:
# Enter the project directory: cd [project-name]
# Initiate Capistrano:         cap install
cd  myapp
cap install

创建使用Capistrano进行部署的用户

使用Capistrano进行部署时,执行配方的好方法是使用默认root以外的用户。首先,我们将创建一个部署者组,并授予他们继续的权限。

要向CVM添加新组,请运行以下命令:

代码语言:javascript
复制
groupadd deployers

现在,我们可以继续将用户添加到deployers具有特权访问权限的组中。

让我们将部署者添加为部署者:

代码语言:javascript
复制
# Usage: sudo usermod -a -G deployers [name]
sudo usermod -a -G deployers deployer

最后,要为部署者组授予权限,请运行以下命令并编辑/etc/sudoers文件:

代码语言:javascript
复制
nano /etc/sudoers

在组之后添加以下行:

代码语言:javascript
复制
..
## Allows people in group wheel to run all commands
%deployers      ALL=(ALL) ALL
?
..

就是这样!我们现在准备使用Capistrano进行部署。


参考文献: 《 How To Use Capistrano to Automate Deployments: Getting Started》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
    • 1. Capistrano
      • 2. 安装Capistrano
        • 3. Capistrano 入门
        • Capistrano
          • Ruby编程语言
            • Capistrano 操作方式
              • 系统/服务器管理
                • 应用程序部署
                • 安装Capistrano
                  • 准备系统
                    • 安装Ruby
                      • 安装Capistrano
                      • Capistrano 入门
                        • Capistrano 基础知识
                          • 在项目中启动Capistrano
                            • 创建使用Capistrano进行部署的用户
                            相关产品与服务
                            云服务器
                            云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                            http://www.vxiaotou.com