jenkins通过pipeline发布nodejs web项目+nginx代理

一,实验环境

 

 

1,需要两台centos7的系统
       192.168.136.128    安装jenkins,git ,nodejs

       192.168.136.129    安装nginx     

安装软件的步骤省略

2,jenkins需要安装以下插件

3,nodejs的安装可以到官网下载

官网下载地址:https://nodejs.org/dist/latest/
wget https://nodejs.org/dist/latest/node-v10.10.0-linux-x64.tar.gz

4,解压安装

  tar -xvf node-v10.10.0-linux-x64.tar.gz -C /usr/local

 重命名

 cd /usr/local

 mv node-v10.10.0-linux-x64 nodejs

 配置环境

vim  /etc/profile

export PATH=/usr/local/nodejs/bin:$PATH

source /etc/profile

安装cnmp与配置淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

Jenkinsèªå¨åé¨ç½²nodejs项ç®ï¼å端项ç®ï¼

查看npm,cnpm,node版本号

Jenkinsèªå¨åé¨ç½²nodejs项ç®ï¼å端项ç®ï¼

npm和 cnpm区别:
npm(node package manager)是nodejs的包管理器,用于node插件管理(包括安装、卸载、管理依赖等) npm安装插件过程:从http://registry.npmjs.org下载对应的插件包(该网站服务器位于国外,所以经常下载缓慢或出现异常)。
cnpm是国内的淘宝团队分享的镜像,同步频率目前为 10分钟 一次以保证尽量与官方服务同步。
cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm。

5,需要192.168.136.128这台机器向192.168.136.129发送公钥实现免密登录(过程省略)

     Jenkins实现凭证配置(两种方式都行用户名密码或者私钥认证)

   Publish over SSH配置用来发送文件到192.168.136.129这台机器

    

 

6,jenkins的nodejs配置(Global Tool Configuration)

 7,新建一个项目(名称就是项目的名字)pipeline流水

8,主要的配置如下:

配置一个参数,如果以后还有项目,构建的时候可以灵活选择

pipeline如下:

pipeline{
    agent any   
stages {
  stage('checkout'){   //通过git把代码拉取下来
    steps {
    checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'aa23ce80-8140-4b17-b17b-f1cb82718f8a', url: 'https://github.com/cpaqyx/fastwave.cloud.framework.git']]])
   }
  }
  stage('build') {     //安装并运行nodejs
           steps {
              nodejs('node10') {    //node10就是前面jenkins中配置的nodejs别名
                   sh '''
                         cd ${single_project_name}
                          rm -rf dist
                          npm install 
                          npm run build
                          cd dist
                          JENKINS_NODE_COOKIE=dontKillMe nohup npm start &
                      '''
               }
           } 
        }
        
    stage('publish'){  //把项目的文件推送到nginx的工作目录/usr/share/nginx/html
            steps{
                
                sshPublisher(publishers: [sshPublisherDesc(configName: 'web_client', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/usr/share/nginx/html', remoteDirectorySDF: false, removePrefix: 'fastwave-web-admin/dist/', sourceFiles: 'fastwave-web-admin/dist/**')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
    
                
            }
 
        }
    }

}

以上checkout的pipeline语法可以如下生成:

以上publish的pipeline语法可以如下生成:

9,构建成功

10,如果192.168.136.129这台nginx没启动需要启动,启动不用管

访问192.168.136.129,直接点击登录即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值