使用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创建一个持续部署管道


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

查看所有标签

猜你喜欢:

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

大象无形:虚幻引擎程序设计浅析

大象无形:虚幻引擎程序设计浅析

罗丁力、张三 / 电子工业出版社 / 2017-4 / 65

《大象无形:虚幻引擎程序设计浅析》以两位作者本人在使用虚幻引擎过程中的实际经历为参考,包括三大部分:使用C++语言进行游戏性编程、了解虚幻引擎本身底层结构与渲染结构、编写插件扩展虚幻引擎。提供了不同于官方文档内容的虚幻引擎相关细节和有效实践。有助于读者一窥虚幻引擎本身设计的精妙之处,并能学习到定制虚幻引擎所需的基础知识,实现对其的按需定制。 《大象无形:虚幻引擎程序设计浅析》适合初步了解虚幻......一起来看看 《大象无形:虚幻引擎程序设计浅析》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具