分布式

Jenkins自动化部署

2020-02-01  本文已影响0人  s1991721

环境搭建

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

设置节点

注意:认证策略、Java路径

设置SSH server

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

创建任务

任务中没有maven项目

需要下载Maven Integration插件

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

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

创建maven任务

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

最简单的命令构建

将构建好的jar文件传输到之前设置的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

上一篇下一篇

猜你喜欢

热点阅读