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

介绍


生產基於網頁的應用程式的關鍵領域之一,許多大型公司自豪的是部署,更準確地說,如何部署。這項任務,有些人確實認為是一項工作,可能似乎對您的項目增加了很少或沒有直接或額外的價值。

除非你有非常具体的(和不断变化的)需求,完全以域为中心的需求,当时间到来时,把你的应用程序在线,利用各种专用的工具,自动化方法或脚本将帮助你回到你的实际工作发展更快 - 很大!

在这篇DigitalOcean文章中,我们将仔细研究Capistrano:一个基于Ruby的远程服务器自动化工具,可以很容易地用于自动化日常部署和系统管理任务。

内容表


第一章 卡斯特兰


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

2. 安装 Capistrano


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

开始与Capistrano


  1. Capistrano 基本
  2. 启动 Capistrano 内部项目
  3. 创建用户与 Capistrano 部署

卡普拉诺


Capistrano,正如我们介绍中提到的,是一个基于Ruby的开源服务器管理工具,虽然它可能只是许多现有的自动化解决方案的另一种替代品,但由于其伟大的功能,它是一个很好的使用。

与其他自动化库类似,使用Capistrano任意功能可以在虚拟服务器上执行,而无需直接干扰 - 通过让Capistrano执行脚本(即配方)。

观看互联网上的许多教程,你可能会觉得Capistrano是Ror的完美框架,但尽管它是一个以Ruby为重点的框架(或工具),但你可以安全地使用它来处理许多不同类型的部署场景,包括部署PHPWeb应用程序。

Ruby 编程语言


Ruby是一个通用(即不是用来解决特定问题)的动态编程语言,随着Ruby-on-Rails Web 应用程序开发框架的发布而获得了显著的普及。

简洁而有序的方式可以使用Ruby来编写脚本(由于语言的设计方式)有助于语言获得巨大的动力. 加上RoR框架的目标和思维,以及它作为一个对象导向编程(OOP)语言提供的功能(与当时的竞争对手相比),Ruby成为了过去十年中最受欢迎的语言之一。

Capistrano是一个基于Ruby的工具,它为用户提供了利用Ruby的清洁和清晰语法来编译其部署的食谱的可能性。

Capistrano 食谱


Capistrano 语言中的食谱翻译为包含部署(或管理)应用程序和服务器的操作指令的文件. 这些食谱可以修改以支持各种不同语言的特定部署,而不是与 Ruby (或 Rails) 相关的。

系统/服务器管理


如果你想知道在什么情况下卡普斯特拉诺可能有用,下面你可以找到几个例子。

系统和服务器管理工作(通常)包括几乎所有与:

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

当你开始使用你自己的VPS(这是一个完全虚拟化的服务器,具有完整的控制 / 访问),看起来像是一个谜团的东西很快就会开始熟悉你。

随着您的应用程序开始获得一些普及和事情开始增长,管理多个滴滴和重复一切的需要不再变得有趣。

Capistrano可以帮助他们大多数,如果不是全部 - 从应用部署开始。

应用部署


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

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

能够以一个逻辑上组织和最重要的是可编程的方式编写这些任务(本地和远程),在你意识到在不断重复相同步骤时浪费了多少时间后不久就证明是无价的。

安装 Capistrano


** 注意:** 在本文中,我们专注于在 CentOS 6.5 操作系统上运行的 VPS 上安装 Capistrano. 如果您正在使用其他类型的操作系统(例如 Ubuntu),同样的逻辑会适用,但建议您检查 官方 Capistrano 文档在这里进行安装。

** 注: ** 本节,我们设置目前可用的最新版本的 Ruby 是我们专门的文章的摘要 - [如何在 CentOS 6.5 上安装 Ruby 2.1.0(LINK0))。

准备系统


为了安装Ruby(和Capistrano),我们需要准备我们最少发货的CentOS滴,配备用于安装其他应用程序和工具的开发工具(例如从源头安装Ruby的编译器)。

让我们先更新我们的系统。

运行以下操作来更新您的 CentOS 基于 dropplet 的默认工具:

1yum -y update

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

1yum groupinstall -y 'development tools'

安装 Ruby


我们将使用Ruby版本管理器,RVM,下载和安装rubies(Ruby翻译器,如RVM所称)。

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

1curl -L get.rvm.io | bash -s stable
2source /etc/profile.d/rvm.sh

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

1rvm reload
2rvm install 2.1.0

若要验证 Ruby 是否确实安装并设置,请执行以下操作:

1ruby --version 
2# ruby 2.1.0p0 (2013-12-25 revision 44422) [i686-linux]

安装 Capistrano


一旦我们有我们的系统准备好了,通过RubyGems获得Capistrano的最新版本是一个风雨。

您可以简单地使用以下方法来获取 Capistrano 版本 3:

1gem install capistrano

如果你想使用最新的版本,你可以链接到Github库:

1git clone https://github.com/capistrano/capistrano.git
2cd capistrano
3gem build *.gemspec
4gem install *.gem

您可以以类似于 Ruby 的方式验证您的 Capistrano 安装:

1cap --version
2# Capistrano Version: 3.1.0 (Rake Version: 10.1.0)

与Capistrano开始


一旦所有必要的组件都已设置并准备好,我们可以在我们开始文章的最后一节中继续使用Capistrano的基本知识。

卡巴斯基基本


与Capistrano合作的关键是将您的项目委托到一个外部Git存储库中,在部署过程中可以下载。

您可以选择任何提供商,如GitHub来这样做。

或者,您可以访问 这里来查看DigitalOcean在Git上的社区文章,了解如何在VPS上托管私人Git存储库,或者了解如何使用Git。

** 注意:** 如 Capistrano 建议,您不应该 ** 包含任何敏感信息(例如数据库连接的安全身份证件)在您的存储库中。

启动 Capistrano 项目内部


启动 Capistrano 版本 3 略有不同于版本 2 并由以下命令组成:

1# Usage:
2# Enter the project directory: cd [project-name]
3# Initiate Capistrano:         cap install
4cd myapp
5cap install

使用 Capistrano 创建用户部署


在使用 Capistrano 进行部署时,执行配方的好方法是使用非默认的用户,首先我们将创建一个部署者组,并允许他们继续。

若要将新组添加到您的滴,请执行以下操作:

1groupadd deployers

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

让我们将 _deployer 作为部署器添加:

1# Usage: sudo usermod -a -G deployers [name]
2sudo usermod -a -G deployers deployer

最后,要给部署者组授权,请运行以下操作并编辑 /etc/sudoers 文件:

1nano /etc/sudoers

将下列行添加到组之后:

1..
2## Allows people in group wheel to run all commands
3%deployers ALL=(ALL) ALL
4
5..

更多信息


** 注意:** 有关 SSH 和 sudo 的更多信息,请参阅 Linux Basics上的 DigitalOcean 社区文章。

现在我们已经准备好使用Capistrano进行部署了,继续我们的下一篇Capistrano文章,看看如何在各种部署场景中使用该工具。

Submitted by: O.S. Tezer
Published At
Categories with 技术
comments powered by Disqus