使用Node.js和Jenkins创建一个持续部署管道

栏目: 服务器 · 发布时间: 6年前

内容简介:使用Node.js和Jenkins创建一个持续部署管道

作者 | Nic Raboy

翻译 | 袁思思

来源 | DZone

原文 | https://dzone.com/articles/create-a-continuous-deployment-pipeline-with-nodej

之前我已经写过一个关于使用Jenkins来持续部署 Java 应用的文章,灵感来自于我为 Couchbase Connect 2016开发的一个主题演示。我知道Java不是现存的唯一的流行开发技术。Node.js是一个非常流行的技术,并且是使用Jenkins插入到持续部署管道中的完美候选者。

我们将看到 基于变更到GitHub资源库, 用Jenkins如何持续部署一个node.js应用。所以我们先弄清楚计划。我们将使用现有的node.js资源库,我已经上传到GitHub好一阵了。当变更到这个资源库,Jenkins将构建应用并且部署,或者运行应用。因为node.js的性质,构建进程将包括确保NPM模块的存在。

软件需求

为了成功运行这个指导,必须满足一些软件需求:

  • Node.js 6+

  • JDK 8+

  • Jenkins 2.32+

  • Couchbase Server 4.6+

因为这是个node.js管道,当然我们需要安装它。然而,因为Jenkins是一个Java应用,我们还需要安装Java。我的示例应用不用Couchbase,但这不是这次的重点。但是如果正在和我用一样的应用,你还是需要安装 Couchbase Server的。所有列出的软件都该放在同样的主机上。再生产环境中,你将可能希望它们分散在多台机器上。

作为NoSQL数据库

安装配置Couchbase Server

这时候,需要先下载好Couchbase Server。安装完后配置,需要创建一个名为restful-sample 的Bucket,这个Bucket可能需要一个主下标。关于Couchbase配置和Bucket创建的说明,可以看看我之前写过的关于这个主题的教程。它实际上是伴随创建Couchbase,Express Framework, Angular,和Node.js (CEAN) 堆栈应用的教程。当Couchbase准备好了,我们就能集中在配置Jenkins和创建工作流了。

用必要的插件配置Jenkins

到现在,你应该已经下载好Jenkins了。如果还没有,到Jenkins网站上获取WAR文件。开始Jenkins,执行下面的命令,从Command Prompt 或Terminal:

java -jar jenkins.war -httpPort=8080

这将让Jenkins可以从浏览器http://localhost:8080 进入。在第一次启动,将会出现配置向导。

使用Node.js和Jenkins创建一个持续部署管道

这个配置向导中的第一个屏幕将会问你Jenkins生成的密码。在屏幕上显示的地方找到它。第二屏将会问你想安装 哪个插件

使用Node.js和Jenkins创建一个持续部署管道

现在,我们将安装建议的插件。我们将在之后安装额外的插件。第三屏将会要求创建第一个管理员用户。从技术上讲,你所使用的密码是一个管理用户,但是你也许想创建一个新密码。

使用Node.js和Jenkins创建一个持续部署管道

在创建一个用户后,Jenkins已经准备好启动了。然而我们将要需要另一个插件,它可以根据我们所希望的创建和部署node.js应用变得不同。从Jenkins主屏幕,选择“Manage Jenkins”,看到一个管理选择列表。

使用Node.js和Jenkins创建一个持续部署管道

我们关心的是管理可用的插件。选择“Manage Plugins”后,我们希望所有并且安装一个名为Post-Build Script的插件。

使用Node.js和Jenkins创建一个持续部署管道

这个插件允许在创建阶段完成后执行 shell 命令或脚本。在这个例子里,我们将创建并部署到同样的主机,通过shell命令可以在本地运行所有。在生产环境中,你也许想要使用SSH插件来迁移代码到一个远程服务器,并且在那运行。通过可用的插件,让我们在Jenkins中为node.js创建持续部署工作流。

为Node.js创建Jenkins持续部署工作流

重申一下,我们的目标是创建一个工作流,将从GitHub上pull一个项目,通过安装所有相关内容构建它,并且在一个服务器上,在这种情况下,本地机器通过运行它进行部署。从创建一个新的项目开始,也就是所谓的新工作或工作流。

使用Node.js和Jenkins创建一个持续部署管道

我们将创建一个Freestyle Project,你可以任意起个名字。在下一屏上有三件事需要完成。工作区的资源将来自GitHub。在你自己的项目里,它可以从别处获取,但对于这个,我们需要定义资源控制信息。

使用Node.js和Jenkins创建一个持续部署管道

GitHub项目是一个我之前创建和编写的,之前提过。这个项目可以在下面这个地址找到:

https://github.com/couchbaselabs/restful-angularjs-nodejs

现在在生产环境中,将可能希望设置GitHub hooks来触发工作进程,但是因为这所有都在本地主机上,GitHub将不允许。相反,我们将手动触发工作。

使用Node.js和Jenkins创建一个持续部署管道

在配置资源控制部分后,将需要安装构建步骤。node.js安装只包含安装相关项,但是在这步里也可以简单的有单元测试和其他测试。在我之前的Java例子里,构建步骤有更多的内容。在这个node.js例子里我们有如下:

npm install

最后,我们将定义项目构建后的情况。

使用Node.js和Jenkins创建一个持续部署管道

在这个例子中,我们将在机器上部署本地应用。可能在你的生产情节中不是这样。所以需要在post-build步骤中注意,有下面的命令:

npm stop

npm start

在开始应用之前,我们将停止任何已经运行的实例。一旦停止,我们可以开始新版本。但是这些停止和启动任务从哪来?

"scripts": {

"start": "forever start app.js",

"stop": "forever stopall"

}

上面是从GitHub项目的package.json文件中获取的。为node.js每个任务开始和结束一个 forever 脚本。继续并试着运行工作,从选择列表里选择Build Now。它将获得项目,安装相关内容,并且让项目在 http://localhost:3000上可用。只要确保Couchbase Server是在为这个项目运行,否则将出现错误。

你已经看到如何使用Jenkins来持续部署你的node.js应用了,基于GitHub上已经做出的变更。这个指导的一个类似的版本,为了Java应用创建的,叫做Create a Continuous Deployment Pipeline with Jenkins and Java,如果你是个Java开发人员,值得一看。

上期回顾

私有云  |   混合云  |   自动化运维

关于BoCloud博云

BoCloud 博云,为企业级客户提供针对互联网化、大数据业务应用、去IOE 化(X86 服务器规模化应用)的底层云化架构和智能云运维系统,运用最新容器技 术协助企业完成IT 系统云架构的实施和运维, 帮助企业客户降低成本、提升效率、简化运维、提高系统可靠性和安全性。凭借对客户业务流程和应用的深刻理 解,以及先进技术产品的持续研发, BoCloud 博云以创新云技术支撑企业核心业务,促进企业IT 系统的不断进化。

www.bocloud.com.cn

使用Node.js和Jenkins创建一个持续部署管道


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Tagging

Tagging

Gene Smith / New Riders / 2007-12-27 / GBP 28.99

Tagging is fast becoming one of the primary ways people organize and manage digital information. Tagging complements traditional organizational tools like folders and search on users desktops as well ......一起来看看 《Tagging》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具