使用Jenkins自动部署nodejs应用

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

一、经过ssh登陆服务器
二、进入nodejs目录
三、执行:git pull 命令拉取最新代码
四、执行:npm install 安装新依赖
五、执行:pm2 restart all 从新启动全部nodejs进程
若是咱们只有一台机器,而且更新不是很频繁,彷佛这样的操做仍是能够接受,可是若是咱们有4台nodejs应用的服务器,每次的代码改动将是灾难!
好在咱们有Jenkins帮助咱们作这些事情,Jenkins是一个能够自动远程部署,执行远程脚本命令的工具,它被称为持续集成工具,咱们能够经过docker来快速搭建一个Jenkins服务。
 
1、安装docker,拉取images,启动container
 
在centos7下,只须要执行
yum install docker
service docker start
ps -ef|grep docker

在centos6下,须要分别执行node

yum install sudo
sudo yum install -y epel-release
sudo yum install -y docker-io
service docker start
ps -ef|grep docker
 
进入 jenkins 的官方docker镜像地址:
而后根听说明执行:
docker pull jenkins

拉取好镜像以后,咱们先建立目录,而后启动docker的containerpython

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

 

2、安装nginx
安装并启动nginx,把以下代码放在配置文件中,添加一个server节点,反向代理到docker
upstream app {
    server 127.0.0.1:49001;
}
server {
    listen 80;
    server_name jenkins.your-domain.com;

    location / {
        proxy_pass http://app;
    }
}

这样打开浏览器咱们就能够看到jenkins的首页了nginx

使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
3、配置jinkens
咱们首先须要进入jinkens添加用户,这里不累述了,根据提示一步步便可完成。
而后咱们要安装插件,依次进入:
系统管理 -> 插件管理 -> 高级(选项卡)-> 底部当即获取按钮
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
 稍等片刻,就能够把可用插件更新下来,而后咱们选择安装以下几个插件:
GIT client plugin
GIT plugin
Git server plugin
GitHub API Plugin
GitHub plugin
SSH Credentials Plugin
SSH plugin
Publish Over SSH

安装完成后,从新启动 jenkins。若是没法自动重启,能够输入 '/restart' 在地址栏,便可手动重启。git

4、添加remote计算机
咱们jenkins是安装在docker中的,因此就算部署到本机,对于jenkins也是remote外部的机器,须要使用ssh来链接,咱们须要添加ssh主机,来让jenkins联入。
依次进入  系统管理 -> 系统设置
以下图增长remote server,这个是增长ssh remote 插件的服务器
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
 
下图是增长远程拷贝文件的remote server
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
 
 
5、建立项目
我如今在github上建了一个nodejs的helloworld项目:
咱们须要在jenkins中也建立一个相应的项目来,依次点击:新建 ->  取名为 nodejsPublish
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
 进入项目,点击配置,咱们就能够对这个项目进行配置,让它自动部署
一、设置 git 仓库路径:
以下图,由于是公共仓库,因此不须要验证用户名,密码:
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
 
二、构建完毕以后,将代码打包保存
咱们先以下图,增长一个构建完毕的shell脚本执行
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
而后些以下图脚本,打包代码,而后移动到workspace目录下
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
三、接着咱们须要链接到部署服务器上,将原来的服务暂时暂停,删除上一次部署的压缩包,选择添加远程shell脚本执行,以下图:
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
 
写以下脚本,将pm2服务中止,这里你们能够根据本身的要求暂停脚本
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
 四、最后咱们要把打包好的代码发送到服务器上,而后执行安装依赖包操做,而且启动nodejs服务,选择经过ssh发送文件并执行命令到远程服务器,如图:
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
 下图的 source files 的默认当前路径就是workspaces,remote directory的当前路径就是以前添加服务器设置的,这里我设置为 /var/nodejs
下面的命令很简单,解压代码,执行依赖包安装,而后经过pm2启动nodejs服务。
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
 
五、开始构建
配置好上述命令以后,咱们点击保存,而后点击当即构建,出现蓝色的球,就表示构建成功,红色的球表示构建失败,黄色的球表示执行构建命令失败,以下图,就是正在构建和发布:
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
 
 
不论构建成功仍是失败,咱们能够经过查看控制台输出看到构建的结果:
使用Jenkins自动部署nodejs应用 - snoopyxdy - snoopyxdy的博客
 
若是咱们有多台设备,就只须要配置一次,而后之后每次有代码变动,手动点击当即构建便可自动部署到目标服务器,免去咱们枯草的重复劳动。固然其余语言,例如python,php都是能够这样来部署的。
相关文章
相关标签/搜索