使用Jenkins自动部署nodejs应用 (转载)-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

使用Jenkins自动部署nodejs应用 (转载)

简介:
+关注继续查看

想必部署过nodejs应用的朋友都有过这样的经历:

1、通过ssh登录服务器

2、进入nodejs目录

3、执行:git pull 命令拉取最新代码

4、执行:npm install 安装新依赖

5、执行:pm2 restart all 重新启动所有nodejs进程

如果我们只有一台机器,并且更新不是很频繁,似乎这样的操作还是可以接受,但是如果我们有4台nodejs应用的服务器,每次的代码改动将是灾难!

好在我们有Jenkins帮助我们做这些事情,Jenkins是一个可以自动远程部署,执行远程脚本命令的工具,它被称为持续集成工具,我们可以通过docker来快速搭建一个Jenkins服务。

 

一、安装docker,拉取images,启动container

 

在centos7下,只需要执行

1
2
3
yum install docker
service docker start
ps -ef|grep docker

在centos6下,需要分别执行

1
2
3
4
5
yum install sudo
sudo yum install -y epel-release
sudo yum install -y docker-io
service docker start
ps -ef|grep docker

 

进入 jenkins 的官方docker镜像地址:

https://registry.hub.docker.com/_/jenkins/

然后根据说明执行:

1
docker pull jenkins

拉取好镜像之后,我们先创建目录,然后启动docker的container

1
2
mkdir /var/jenkins_home
docker run -d --name myjenkins -p 49001:8080 -v /var/jenkins_home:/var/jenkins_home jenkins

 

二、安装nginx

安装并启动nginx,把如下代码放在配置文件中,添加一个server节点,反向代理到docker

1
2
3
4
5
6
7
8
9
10
11
upstream app {
    server 127.0.0.1:49001;
}
server {
    listen 80;
    server_name jenkins.your-domain.com;
 
    location / {
        proxy_pass http://app;
    }
}

这样打开浏览器我们就可以看到jenkins的首页了

三、配置jinkens

我们首先需要进入jinkens添加用户,这里不累述了,根据提示一步步即可完成。

然后我们要安装插件,依次进入:

系统管理 -> 插件管理 -> 高级(选项卡)-> 底部立即获取按钮

 稍等片刻,就可以把可用插件更新下来,然后我们选择安装如下几个插件:

1
2
3
4
5
6
7
8
GIT client plugin
GIT plugin
Git server plugin
GitHub API Plugin
GitHub plugin
SSH Credentials Plugin
SSH plugin
Publish Over SSH

安装完成后,重新启动 jenkins。如果无法自动重启,可以输入 '/restart' 在地址栏,即可手动重启。

四、添加remote计算机

我们jenkins是安装在docker中的,所以就算部署到本机,对于jenkins也是remote外部的机器,需要使用ssh来连接,我们需要添加ssh主机,来让jenkins联入。

依次进入  系统管理 -> 系统设置

如下图增加remote server,这个是增加ssh remote 插件的服务器

 

下图是增加远程拷贝文件的remote server

 

 

五、创建项目

我现在在github上建了一个nodejs的helloworld项目:

https://github.com/DoubleSpout/jenkinsNodejs

我们需要在jenkins中也创建一个相应的项目来,依次点击:新建 ->  取名为 nodejsPublish

 进入项目,点击配置,我们就可以对这个项目进行配置,让它自动部署

1、设置 git 仓库路径:

如下图,因为是公共仓库,所以不需要验证用户名,密码:

 

2、构建完毕之后,将代码打包保存

我们先如下图,增加一个构建完毕的shell脚本执行

然后些如下图脚本,打包代码,然后移动到workspace目录下

3、接着我们需要连接到部署服务器上,将原来的服务暂时暂停,删除上一次部署的压缩包,选择添加远程shell脚本执行,如下图:

 

写如下脚本,将pm2服务停止,这里大家可以根据自己的要求暂停脚本

 4、最后我们要把打包好的代码发送到服务器上,然后执行安装依赖包操作,并且启动nodejs服务,选择通过ssh发送文件并执行命令到远程服务器,如图:

 下图的 source files 的默认当前路径就是workspaces,remote directory的当前路径就是之前添加服务器设置的,这里我设置为 /var/nodejs

下面的命令很简单,解压代码,执行依赖包安装,然后通过pm2启动nodejs服务。

 

5、开始构建

配置好上述命令之后,我们点击保存,然后点击立即构建,出现蓝色的球,就表示构建成功,红色的球表示构建失败,黄色的球表示执行构建命令失败,如下图,就是正在构建和发布:

 

 

不论构建成功还是失败,我们可以通过查看控制台输出看到构建的结果:

 

如果我们有多台设备,就只需要配置一次,然后以后每次有代码变更,手动点击立即构建即可自动部署到目标服务器,免去我们枯草的重复劳动。当然其他语言,例如python,php都是可以这样来部署的。

 


本文转自 zbill 51CTO博客,原文链接:http://blog.51cto.com/dek701/1966929,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
python+soket实现 TCP 协议的客户/服务端中文(自动回复)聊天程序
【吐槽】 网上的代码害死人,看着都写的言之凿凿,可运行就是有问题。 有些爱好代码、喜欢收藏代码的朋友,看到别人的代码就粘贴复制过来。可是起码你也试试运行看啊大哥   【正文】 昨日修改运行了UDP协议的C/S聊天程序,可是TCP协议的怎么都不行。
1143 0
GitHub Actions 的机器学习推理上线,推进测试部署高度自动化
在看到最近新推出的 GitHub Actions 后,我的第一个想法是创建一个简单的示例项目,在这个项目中,我们“部署”一个使用了这个新特性的机器学习模型。当然,这不是一个“真正的部署”,但是可用此模型在存储库中测试你的模型,而不需要任何额外的编码。
481 0
沃尔玛如何使用OneOps、Jenkins、Nexus和Kubernetes管理200+配送中心
本文讲的是沃尔玛如何使用OneOps、Jenkins、Nexus和Kubernetes管理200+配送中心【编者的话】本文介绍了沃尔玛公司针对全球200+配送中心云化升级的具体情况,包括使用的方案、如何处理原来的虚拟机资源以及改造后的成效。
1515 0
【阿里在线技术峰会】魏鹏:基于Java容器的多应用部署技术实践
在首届阿里巴巴在线峰会上,阿里巴巴中间件技术部专家魏鹏为大家带来了题为《基于Java容器的多应用部署技术实践》的分享,主要分享内容首先是阿里Java容器的发展历程,接着与大家分享目前Java容器的基础架构,最后与大家探讨经过这样的改变之后,它能够完成的一些高阶的特性。
8075 0
在Ubuntu 14.04使用cron实现作业自动化
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/47276899 在Ubuntu 14.04使用cron实现作业自动化 作者:chszs,版权所有,未经同意,不得转载。
728 0
《Node.js 实战》预售: 实例讲解 Node.js 在实战开发中的应用
CNode 社区的 4 位大牛合力撰写的 《Node.js 实战》一书,现在当当、京东、亚马逊、互动等各大网店火热预售中。
118 0
使用Electron开发基于Node.js的桌面应用
跨平台桌面应用很难吗?遇到node.js ,一切都变得如此简单...
6628 0
内存溢出导致jenkins自动部署到tomcat失败
原文地址:http://openwares.net/java/jenkens_deploy_to_tomcat_error_of_outofmemoryerror.html jenkins自动部署war到tomcat 7应用服务器时很不稳定,经常出现错误: 1 2 3 4 5 6 7 ERROR: Publisher hudson.
1279 0
8434
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载