zoukankan      html  css  js  c++  java
  • Jenkins配置详解

    Jenkins一键部署思路与实现

    • 从版本管理工具(SVN、Git)拉取最新代码到中间服务器(Jenkins服务器)

    • 代码在中间服务器编译打成war包

    • 把war包复制到目标服务器临时位置

    • 将临时位置的war包利用 .sh 脚本复制到指定的tomcat下 并启动服务

      目标服务器是指 : war包运行的服务器

    部署Java

    1、新建任务

    在Jenkins控制台新建任务,输入新建的任务名称,然后选择“构建一个自由风格的软件项目”,点击OK。

    2、实现部署

    2.1、Generl

    不进行操作

    2.2、源码管理

    选择Subversion

    Repository URL : SVN的地址@HEAD @HEAD获取最新本版代码

    Credentials :凭证,赋予访问SVN仓库的用户

    Local module directory :选填

    2.3、构建触发器

    不进行操作

    2.4、构建环境&构建

    clean package -Dmaven.test.skip=true 打包并且跳过测试

    此时已经在中间服务器中将拉取的文件打成war包。

    2.5、构建后操作

    选择 Send build artifacts over SSH

    配置 SSH Server

    Name : 使用的服务器 ,在系统管理-> 系统设置 -> SSH Server 点击增加配置

    ​ Name : 名称

    ​ Host Name : 主机地址

    ​ UserName : 使用的根地址

    ​ Remote Directory : 服务目录 de 地址

    ​ 点击“高级”设置服务器密码 链接的端口号 以及超时时间等信息 点击Test Configuration 测试链接

    ​ 上述几个地址就构成接下来操作的根路劲

    Transfers :

    ​ Source files : 源文件 指本次任务中在中间服务器的war包位置

    通常使用:
    		**/*.war
    

    ​ Remove Prefix : 删除前缀 不填

    ​ Remote directory : 远程目录 是指 将中间服务器的war包复制到目标服务器指定的临时位置

    ​ Exec command :执行的 .sh 脚本文件的地址

    点击保存

    3、附: sh 文件

    #!/bin/bash
    
    export JAVA_HOME=/home/software/jdk/jdk1.8.0_162
    rm -rf  /tomcat/tomcat-9-plan-report/webapps/ROOT.war
    rm -rf  /tomcat/tomcat-9-plan-report/webapps/ROOT/
    rm -f   /tomcat/tomcat-9-plan-report/logs/*
    cp /tomcat/jenkins_files/planreport-online-war/PlanReport/target/ROOT.war       /tomcat/tomcat-9-plan-report/webapps/
    rm -rf  /tomcat/jenkins_files/tomcat-9-plan-report/*
    
    cd /tomcat/tomcat-9-plan-report/bin/
    
    
    TOMCAT_PATH=/tomcat/tomcat-9-plan-report/bin
    
    echo "TOMCAT_PATH is $TOMCAT_PATH"
    
    PID=`ps aux | grep /tomcat/tomcat-9-plan-report/bin | grep java | awk '{print $2}'`
    
    if [ -n "$PID" ]; then
            echo "Will kill tomcat: $PID"
            sh "$TOMCAT_PATH/shutdown.sh"
            sleep 6
    else echo "No Tomcat Process $PID"
    fi
    
    PID2=`ps aux | grep /tomcat/tomcat-9-plan-report/bin | grep java | awk '{print $2}'`
    
    if [ -n "$PID2" ]; then
            kill -9 $PID2
            echo "Try to kill $PID2"
    else echo "No Tomcat Process $PID2"
    fi
    
    sh "$TOMCAT_PATH/startup.sh"
    sleep 3
    
    PID=`ps aux | grep /tomcat/tomcat-9-plan-report/bin | grep java | awk '{print $2}'`
    if [ -n "$PID" ]; then
            echo "
    Restart tomcat successfully!"
    else
            echo "
    Fail to startup tomcat"
            exit 1
    fi
    
    
    
    解析:

    3.1、删除tomcat下webapps下的文件和日志

    3.2、复制文件

    3.3、删除临时位置的war文件

    3.4、进入tomcat的bin下

    3.5、得到进程号

    3.6、将进程杀掉 并停掉tomcat

    3.7、启动tomcat。

    部署JS

    基本同上

    不同点:

    1、 构建环境不选

    2、构建选择“执行shell”

    echo $PATH
    node -v
    npm -v
    cd code
    npm install
    npm run testbuild 
    
    

    3、看图

    部署时可能遇见的问题:

    SSH: Connecting from host [jenkins]
    SSH: Connecting with configuration [167] ...
    SSH: EXEC: STDOUT/STDERR from command [/home/jenkins_file/planreport_online-deply.sh] ...
    bash: /home/jenkins_file/planreport_online-deply.sh: Permission denied
    SSH: EXEC: completed after 201 ms
    SSH: Disconnecting configuration [167] ...
    ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [126]]
    Build step 'Send build artifacts over SSH' changed build result to UNSTABLE
    Finished: UNSTABLE
    

    jenkins自动化构建时,执行远程SSH时,返回错误状态码 126.

    原因: 对应的.sh 脚本权限不足,修改需执行的脚本权限即可、

    ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [1]]
    Build step 'Send build artifacts over SSH' changed build result to UNSTABLE
    

    发布时,异常消息[Exec退出状态不为零。状态1.

    原因:未知,解决:再次部署一遍、

    -bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory
    

    原因:在window下创建的文件,后将后缀修改为.sh,因此在Linux系统中会出现文件的格式是dos,只要将文件格式修改为unix就OK了

    具体操作步骤

    1、查看文件格式 用vim 打开出错的文件 按 ESC键 再按shift+冒号 输入 set ff 回车 可以看见 该文件的格式 fileformat=dos
    2、按shift + 冒号 输入 set ff=unix 回车 发现没反应,那就对了。
    3、可以按 shift + 冒号 set ff 查看 fileformat=unix

  • 相关阅读:
    UVa 1354 天平难题 (枚举二叉树)
    广西邀请赛总结
    UVa 12118 检查员的难题 (dfs判连通, 构造欧拉通路)
    UVA
    Uva 127 "Accordian" Patience (模拟)
    UVA 10539 Almost Prime Numbers( 素数因子)
    HDU 1272 小希的迷宫(并查集)
    HDU 1213 How Many Tables (并查集)
    POJ 2236 Wireless Network(并查集)
    HDU 1233 还是畅通工程 ( Kruskal或Prim)
  • 原文地址:https://www.cnblogs.com/dyaqi/p/13153127.html
Copyright © 2011-2022 走看看