美文网首页分布式
Jenkins自动化部署

Jenkins自动化部署

作者: s1991721 | 来源:发表于2020-02-01 14:49 被阅读0次

    环境搭建

    Java安装

    服务器发布操作中Java环境的安装

    Jenkins安装

    下载地址:https://jenkins.io/zh/download/

    这里下载长期支持版本

    运行Jenkins

    java -jar jenkins.war

    注意防火墙端口的关闭

    Git安装

    Git服务器搭建中git安装

    Maven安装

    下载地址:https://maven.apache.org/download.cgi

    将压缩包放入要安装的目录,这里我放在/usr/local

    解压 tar -xvf 压缩包

    修改环境变量

    vi /etc/profile

    添加如下

    export MAVEN_HOME=/usr/local/apache-maven-3.6.3
    export CLASSPATH=$CLASSPATH:$MAVEN_HOME/lib
    export PATH=$PATH:$MAVEN_HOME/bin
    

    生效环境变量

    source /etc/profile

    配置操作

    进入首页后显示

    根据提示查看密码进行登录操作

    后续操作较为耗时,需要下载相关的依赖

    先安装默认的插件,后续需要再增添

    紧接着添加管理员

    确认访问url

    大功告成

    Jenkins主页面

    紧接着进行全局配置

    i

    设置JDK、Git、Maven的路径

    多机器的概念

    多机器分为:节点、SSH server

    • 节点:能独立执行Job,意味着节点上需要拉取代码、构建项目、运行项目 即节点需要安装各种环境支持。

    • SSH server:相比节点而言,SSH server就显得能力弱了点。指能通过ssh协议连接的机器。

    设置节点

    注意:认证策略、Java路径

    设置SSH server

    下面有测试连接按钮,测试是否可以正常连接。

    创建任务

    任务中没有maven项目

    需要下载Maven Integration插件

    还需要发布到对应的机器需要:Publish over SSH插件

    搜索需要的插件安装即可,完成后

    创建maven任务

    设置源码的来源(特别注意,这里认证失败可能不提示!坑了我很长时间)

    最简单的命令构建

    将构建好的jar文件传输到之前设置的SSH Server上,需要指定源文件路径(自行查找自己的项目)

    • Remove prefix 移除路径前缀
    • 目标路径Remote directory(之前SSH Server设置的是根路径,由调用者自行管理)
    • Exec command 在SSH Server上需要执行的指令。

    完成后即可执行构建任务,项目clone的目录可在工作区查看。

    构建时可查看控制台输出。

    在SSH server上执行命令的步骤关闭旧服务、启动新服务,如下所示

    #!/bin/bash
    echo "停止旧服务"
    pid=`ps -ef | grep web.jar | grep -v grep | awk '{print $2}'` #查找旧服务的PID
    echo "旧应用进程id:$pid"
    if [ -n "$pid" ]
    then
    kill -9 $pid
    fi
    
    export JAVA_HOME=/usr/local/jdk1.8.0_241 #即使设置过JAVA_HOME还需要再导出一次,否则找不到java命令
    echo ${JAVA_HOME}
    echo "启动新服务"
    cd /usr/local/download/web/target
    nohup ${JAVA_HOME}/bin/java -jar web.jar > /dev/null & #采用非独占方式运行,即后台运行,否则Jenkins的控制台一直处于监听状态
    echo "启动成功"
    
    # 最!最!最!重要的!如果上述命令在win下编写后上传至服务器,注意文件格式。win下sh的文件格式为dos,而CentOS下为unix。
    # 文件格式问题会导致sh脚本无法运行,最好是在服务器上验证过脚本以保证其正常性
    

    修改sh文件格式:

    • set ff查看文件格式
    • set ff=unix 修改文件格式

    后续

    1、Jenkins存在内存泄露的问题,导致响应缓慢,后续优化!

    2、每次都得进入管理页面,单击构建,麻烦!,正确的姿势应该为Webhook

    相关文章

      网友评论

        本文标题:Jenkins自动化部署

        本文链接:https://www.haomeiwen.com/subject/vintzctx.html