使用Jenkins自动部署nodejs应用 (转载)
2017-09-19 18:41
357 查看
想必部署过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下,只需要执行
在centos6下,需要分别执行
进入 jenkins 的官方docker镜像地址:
https://registry.hub.docker.com/_/jenkins/
然后根据说明执行:
拉取好镜像之后,我们先创建目录,然后启动docker的container
二、安装nginx
安装并启动nginx,把如下代码放在配置文件中,添加一个server节点,反向代理到docker
这样打开浏览器我们就可以看到jenkins的首页了
三、配置jinkens
我们首先需要进入jinkens添加用户,这里不累述了,根据提示一步步即可完成。
然后我们要安装插件,依次进入:
系统管理 -> 插件管理 -> 高级(选项卡)-> 底部立即获取按钮
稍等片刻,就可以把可用插件更新下来,然后我们选择安装如下几个插件:
安装完成后,重新启动 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都是可以这样来部署的。
2、进入nodejs目录
3、执行:git pull 命令拉取最新代码
4、执行:npm install 安装新依赖
5、执行:pm2 restart all 重新启动所有nodejs进程
如果我们只有一台机器,并且更新不是很频繁,似乎这样的操作还是可以接受,但是如果我们有4台nodejs应用的服务器,每次的代码改动将是灾难!
好在我们有Jenkins帮助我们做这些事情,Jenkins是一个可以自动远程部署,执行远程脚本命令的工具,它被称为持续集成工具,我们可以通过docker来快速搭建一个Jenkins服务。
一、安装docker,拉取images,启动container
在centos7下,只需要执行
https://registry.hub.docker.com/_/jenkins/
然后根据说明执行:
安装并启动nginx,把如下代码放在配置文件中,添加一个server节点,反向代理到docker
三、配置jinkens
我们首先需要进入jinkens添加用户,这里不累述了,根据提示一步步即可完成。
然后我们要安装插件,依次进入:
系统管理 -> 插件管理 -> 高级(选项卡)-> 底部立即获取按钮
稍等片刻,就可以把可用插件更新下来,然后我们选择安装如下几个插件:
我们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都是可以这样来部署的。
相关文章推荐
- 使用Jenkins自动部署nodejs应用
- 实现Weblogic应用的灵活、自动、快速部署:使用wlst+ant+jython+xbean
- 使用Docker+Jenkins 搭建CI 自动部署
- 使用gitlab+jenkins+saltstack+rsync自动部署Web应用
- Docker实践 - 使用maven插件自动部署web应用至Docker容器的tomcat
- jenkins里面使用批处理命令进行自动部署
- 使用Maven自动部署Java Web应用到Tomcat服务器
- jenkins+docker+nodejs项目的自动部署环境(案例)
- Docker实践-使用maven插件自动部署web应用至Docker容器的tomcat
- 使用Jenkins自动编译部署web应用
- jenkins里面使用批处理命令进行自动部署
- 【转载】使用TFS来自动部署站点和Window Service
- 使用Jenkins 自动部署发布 推荐
- 使用Maven自动部署Java Web应用到Tomcat服务器
- node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用提高nodejs调试效率
- 打造jenkins+docker+nodejs项目的自动部署环境(webhook)
- centos6.5下,Jenkins自动部署nodeJS程序
- Jenkins进阶-Gitlab使用Webhook实现Push代码自动部署(3)
- 使用gitlab+jenkins+saltstack+rsync自动部署Web应用
- 使用jenkins自动部署java工程到jboss-eap6.3 -- 1.环境搭建