linux环境实现jenkins前端和后台自动化部署

2 篇文章 0 订阅
2 篇文章 0 订阅

linux环境实现jenkins前后台自动化部署

资料链接:https://pan.baidu.com/s/1d9oQw5F6uS1GytFjaoYQ3w
提取码:l70w

Jenkins内网环境搭建

由于内网环境无法下载jenkins插件,所以需要改变策略进行搭建。于是我使用外网下载插件,复制到内网的方式来安装jenkins。

Jenkins自动化部署原理

首先是从git,svn等的版本控制工具拉取代码,然后执行一段shell脚本,该脚本的主要功能是编译打包项目,上传打包好的所要执行的文件到另一台服务器,然后通过执行脚本执行另一台服务器的该文件,实现自动发布的功能

项目后台执行流程

1.	从git拉取代码
2.	编译打包项目 mvn clean install
3.	上传打包文件到另一台服务器 scp –r 要上传的文件 远程服务器用户@ip:/上传到的文件夹
4.	执行启动脚本 nohup java –jar *.jar &

项目前端执行流程

1.	从git拉取代码
2.	编译打包项目 npm run build
3.	上传打包文件到另一台服务器 scp –r 要上传的文件 远程服务器用户@ip:/上传到的文件夹
4.	执行nginx停止脚本 ./nginx –s stop 
5.	执行nginx启动脚本 ./nginx

搭建步骤

linux内网环境下搭建jenkins准备

  1. 安装jdk
    1)解压jdk

    tar –zxvf jdk-8u121-linux-x64.tar.gz
    

    2)配置jdk环境变量

    JAVA_HOME=/usr/local/jdk1.8.0_121
    CLASSPATH=$JAVA_HOME/lib/
    PATH=$PATH:$JAVA_HOME/bin
    export PATH JAVA_HOME CLASSPATH
    

    3) 检查java版本

    java –version
    

    java version “1.8.0_144”
    Java™ SE Runtime Environment (build 1.8.0_144-b01)
    Java HotSpot™ 64-Bit Server VM (build 25.144-b01, mixed mode)

  2. 安装maven
    1)解压maven

    tar –zxvf apache-maven-3.3.9-bin.tar.gz
    

    2)配置maven全局变量

    export MAVEN_HOME=/kingstar/software/maven
    export PATH=$PATH:$MAVEN_HOME/bin:/usr/local/git/bin
    
  1. 检查maven版本

    mvn -v
    

    Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
    Maven home: /kingstar/software/maven
    Java version: 1.8.0_144, vendor: Oracle Corporation
    Java home: /usr/java/jdk1.8.0_144/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: “linux”, version: “2.6.32-642.el6.x86_64”, arch: “amd64”, family: “unix”

  1. Tomcat安装
    解压tomcat

    unzip apache-tomcat-8.5.32.zip
    
  2. 安装git客户端

  1. 解压git客户端

    tar –zxvf git-2.9.5.tar.gz
    
  2. 编译

    cd git-2.9.5
    ./configure –-prefix=/usr/local –with-iconv=/usr/local/libiconv
    
  3. 安装

    make & make install
    
  4. 配置git全局

    vim /etc/profile 
    export PATH=$PATH:/usr/local/bin
    :wq退出后
    source /etc/profile
    
  5. 检查git 版本

    git -version
    
  1. 安装node环境
  1. 解压node

     tar –xvf node-v10.16.3-linux-x64.tar.xz
    
  2. 重命名

     mv node-v10.16.3-linux-x64 node
    
  3. 建立软连接

    ln -s /usr/local/node/bin/node /usr/local/bin/node // 创建node软连接
    ln -s /usr/local/node/bin/npm /usr/local/bin/npm // 创建npm软连接
    
  4. 查看node和npm版本

    node -v
    npm -v
    
  1. 安装git服务器
    1) 解压gitblit

    tar –zxvf gitblit-1.8.0.tar.gz
    

    2) 配置git服务器

    在Gitblit安装目录下data\gitblit.properties文件,右键用“记事本”打开
    修改httpPort即可
    

    3) 启动服务器

    ./gitblit即可
    

    4) 访问出现页面即是安装成功

    注意:Java环境需要两台服务器都有。

服务器间设置免密

1) 在目标jenkins服务器生成秘钥

进入到root用户
ssh-keygen -t rsa 回车 回车 回车
注意三下回车,不需要填写任何字符

2) 把目标服务器的id_rsa.pub复制到出来
3) 同样在应用服务器生成秘钥

进入到root用户
ssh-keygen -t rsa 回车 回车 回车
注意三下回车,不需要填写任何字符

4) 目标jenkins服务器的id_rsa.pub的字符串写入应用服务器的authorized_keys

这样就可以不输入密码在应用服务器上传文件到jenkins服务器了。

在外网环境下载插件

  1. 在外网windows环境下载jenkins.war安装包
  2. 把jenkins.war放入tomcat的webapp目录下
  3. 启动tomcat
  4. 访问该项目http://127.0.0.1:8080/Jenkins/
  5. 拿到jenkins的admin密码登录,下载默认的所有插件
  6. 如果需要下载其他插件,在插件管理页面提前下载
  7. 进入C:\Users\wbjinzhicai.jenkins打包.jenkins文件
  8. 把该文件搞到内网环境

离线环境安装插件

Jenkins所有插件都在.jenkins文件中,所以有的.jenkins文件就有了插件
安装jenkins插件要遵循以下步骤

  1. 首先确定linux虚拟机是否有java环境,建议jdk1.8以上
  2. 把.jenkins文件中的文件放到C:\Users\wbjinzhicai.jenkins中
  3. 把jenkins.war放入到linux环境的tomcat中
  4. 启动tomcat
  5. 访问该项目http://该机器IP:port/jenkins/
  6. 拿到jenkins的admin密码登录
  7. 你会发现自己的jenkins环境已经存在了插件
    后台项目自动化部署
    Jenkins项目构建
    新建任务→构建一个自由风格的软件项目→输入一个任务名称内填写名称→确定
    项目构建完毕。。。

Jenkins配置

  1. 使用git拉取代码

  2. 编写脚本
    —————————————————————————————————————

    ##1.进入到项目所在目录并打包项目为jar包
    cd /root/.jenkins/workspace/test/ouos-parent/
    ##2.替换配置文件
    for m in dataconfig gateway ;
    do
    echo $m be updated;
    cp -r /root/.jenkins/workspace/test/config-file-dev/$m/bootstrap.yml /root/.jenkins/workspace/test/ouos-parent/ouos-$m/src/main/resources/bootstrap.yml
    cp -r /root/.jenkins/workspace/test/config-file-dev/$m/dfzq-grpc-config.properties /root/.jenkins/workspace/test/ouos-parent/ouos-$m/src/main/resources/config/dfzq-grpc-config.properties
    done
    echo queryserver be updated;
    cp -r /root/.jenkins/workspace/test/config-file-dev/ouosserver/bootstrap.yml /root/.jenkins/workspace/test/ouos-parent/ouos-queryserver/src/main/resources/bootstrap.yml
    cp -r /root/.jenkins/workspace/test/config-file-dev/ouosserver/dfzq-grpc-config.properties /root/.jenkins/workspace/test/ouos-parent/ouos-queryserver/src/main/resources/config/dfzq-grpc-config.properties
    echo mvn clean install
    mvn clean install
    ##3.上传jar包文件到另一台服务器
    #########################################################################
    for i in ouos-dataconfig ouos-queryserver ouos-gateway ;
    do
    echo $i being to remote root@110.145.14.118;
    scp -r /root/.jenkins/workspace/test/ouos-parent/$i/target/$i-1.0-SNAPSHOT.jar root@110.145.14.118:/root/server
    done
    #########################################################################
    ##4.连接其他服务器
    ssh root@110.145.14.118 > /dev/null 2>&1 << eeooff
    ##5.查询并杀死所查微服务进程
    #FILENAME="ouos-dataconfig"
    #ID=`ps -ef|grep ${FILENAME} | grep -v "grep"`
    #kill -9 $ID
    echo kill all
    ps -ef|grep ouos-dataconfig | grep -v "grep"|awk '{print$2}'|xargs kill ;
    ps -ef|grep ouos-queryserver | grep -v "grep"|awk '{print$2}'|xargs kill ;
    ps -ef|grep ouos-ouos-gateway | grep -v "grep"|awk '{print$2}'|xargs kill ;
    echo sleepping!
    #sleep(10000)
    #ps -ef | grep ouos-dataconfig | awk '{print $2}' | xargs kill -9
    cd /root/server
    ##6.使用脚本启动项目
    #########################################################################
    #for n in ouos-dataconfig ouos-queryserver ouos-gateway ;
    #do
    #echo $n is to be started;
    #nohup java -jar $n-1.0-SNAPSHOT.jar &
    #done
    #########################################################################
    ####nohup java -jar ./ouos-dataconfig-1.0-SNAPSHOT.jar ${1} >logs/dataconfig.log 2>&1 &
    ####nohup java -jar ./ouos-queryserver-1.0-SNAPSHOT.jar ${1} >logs/queryserver.log 2>&1 &
    ####nohup java -jar ./ouos-gateway-1.0-SNAPSHOT-1.jar --server.port=8092 ${1} >logs/gateway1.log 2>&1 &
    ####nohup java -jar ./ouos-gateway-1.0-SNAPSHOT-2.jar --server.port=8093 ${1} >logs/gateway2.log 2>&1 &
    #########################################################################
    #BUILD=DONTKILLME
    ./start.sh
    #echo ouos-dataconfig-1.0-SNAPSHO is started
    #nohup java -jar ./ouos-dataconfig-1.0-SNAPSHOT.jar &
    #echo ouos-queryserver-1.0-SNAPSHO is started
    #nohup java -jar ./ouos-queryserver-1.0-SNAPSHOT.jar &
    #echo ouos-gateway-1.0-SNAPSHO is started
    #nohup java -jar ./ouos-gateway-1.0-SNAPSHOT.jar &
    #touch abcdefg.txt
    exit 0
    eeooff
    #sleep(100000)
    echo done!
    

—————————————————————————————————————
注意:java启动脚本最好放在linux服务器中,使用jenkins脚本去调用,否则jenkins会一直处在等待状态,日志打印一直打转,原因是由于jenkins脚本无法获取到子线程启动完毕而一直打转。

前端项目自动化部署

Jenkins项目构建

新建项目和git拉取代码同后台

Jenkins配置

脚本如下:
##1.从git拉取代码(记得设置git用户名和密码)
#git pull
##2.替换配置文件
cp -r /usr/local/devops/sit.env.js /root/.jenkins/workspace/test2/OrientSecuritiesWeb/config/sit.env.js
cd /root/.jenkins/workspace/test2/OrientSecuritiesWeb
##3.打包项目
npm install
npm run build
##4.修改打包dist项目名称(使用时需要看情况使用)
mv dist/ ouos
##5.上传修改好的项目到另一台服务器的对应地址
scp -r /root/.jenkins/workspace/test2/OrientSecuritiesWeb/ouos root@110.145.14.118:/usr/local/nginx/html
##6.进入另一台服务器
ssh root@110.145.14.118 > /dev/null 2>&1 << eeooff
##6.重新启动nginx
cd /usr/local/nginx/sbin
./nginx -s stop
./nginx 
eeooff
#sleep(100000)
echo done!

遗留的问题

  1. 脚本相对简单,不专业,遇到复杂的部署环境或许存在一定的问题
  2. 暂时没有把微服务项目分服务器
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值