文章目录
jenkins安装
环境
- jdk 8:推荐解压安装
安装
- 官网下载并运行:https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/
- 运行命令:
java -jar jenkins.war --httpPort=8080
- 运行后控制台会打印一串管理员密码
- 运行后浏览器访问jenkins服务,
http://localhost:8080
,进行初始化,输入控制台打印的管理员密码 - 点击:安装推荐的插件
- 插件安装完成后,出现:创建第一个管理员用户 页面,填写表单信息
- 安装完成
环境准备、安装及配置插件
构建项目准备
- 在git服务器拉取代码
- git环境:用yum安装即可:
yum install -y git
- git环境:用yum安装即可:
- 用 maven 构建项目:推荐解压安装
- maven环境
- 配置本地仓库地址
- 配置中央仓库的镜像地址
- maven环境
jenkins 安装 maven插件
Manage Jenkins(系统管理)
–Manage Plugins(插件管理)
–可选插件
- 安装
Maven Integration
插件
jenkins 配置 maven
Manage Jenkins(系统管理)
–Global Tool Configuration(全局工具配置)
–Maven(在后面,不是第一个)
–Maven 安装
–新增Maven
- Name:写一个名字
- 取消自动安装,Maven Home:
/usr/maven/apache-maven-3.8.6
jenkins 安装 SSH插件
-
作用:将构建好的程序包发送的到远程服务器
-
安装
Publish Over SSH
插件
jenkins 配置 SSH
Manage Jenkins(系统管理)
–Configure System
–Publish over SSH(在后面,先安装插件)
–SSH Servers
–新增
- Hostname:ip地址
- Username:用户名(root)
- 点击高级,选中 Use password authentication, or use a different key,选择Passphrase / Password:服务器的密码
- 点击后面的Test Configuration:测试连接是否成功
- Remote Directory:将文件发送到远程服务器时的前缀,默认为当前用户的家目录(root)
- 保存
jenkins 安装 Build Authorization Token Root 插件
- 作用:通用url构建项目,不需要认证,配合gitlab钩子方法等
- 安装
Build Authorization Token Root
构建项目
构建maven项目(基础)
- 返回到首页,新建任务,选择
构建一个maven项目
,构建,进入到下一个页面 - 源码管理,选择git
- Repository URL:项目地址,不需要在此处配置git的用户名密码,可以采用SSH或者账户密码的形式,但是都不需要在这里配置,提前在机器上配置好
- Branches to build:指定分支
- 构建触发器、构建环境、Pre Steps 默认
- Build:未配置maven会让先配置maven
- Root POM:pom.xml 文件的位置,项目名目录下的相对路径
- 其它默认
配置Post Steps
- 打开项目,选择配置,选择
Post Steps
- 选择
Run regardless of build result
(第3个) Add post-build step
下拉框,选择Send files or execute commands over SSH
(需要先装插件)- name:选择之前配置的远程服务器
- Source files:当前服务器,用jenkins编译好的jar包的路径,默认前缀是当前任务的工作空间(/root/.jenkins/workspace/xx),
target/*.jar
- Remove prefix:去除目录层级,默认发送到目标服务器与source files 的相对目录层级一致,可以去掉一部分目录,
target
- Remote directory:目标服务器,存放发过来jar包的路径,前缀为配置
Publish Over SSH
时Remote Directory
的值,/project/xx
- Exec command:在目标服务器上执行命令,jenkins远程执行命令可能无法读取环境变量,比如:java可以使用全路径
shell脚本
#!/bin/bash
#删除历史数据
#rm -rf xxoo
appname=$1
#获取传入的参数
echo "arg:$1"
#获取正在运行的jar包的pid
pid=`ps -ef | grep $1 | grep 'java -jar' | awk '{printf $2}'`
echo $pid
#如果pid为空,提示一下,否则,执行kill命令
if [ -z $pid ];
#使用-z 做空值判断
then
echo "$appname not started"
else
kill -9 $pid
echo "$appname stopping ..."
check=`ps -ef | grep -w $pid | grep java`
if [ -z $check ];
then
echo "$appname pid:$pid is stop"
else
echo "$appname stop failed"
fi
fi
配置构建触发器
触发远程构建
- 打开项目,选择配置,选择
构建触发器
- 选择
触发远程构建
- 身份验证令牌:填写一个字符串(token)
- 访问链接(上面有提示):
JENKINS_URL/job/项目名/build?token=xxx
,访问这个链接就可以触发构建了,但是这个链接需要登录验证
- 利用
Build Authorization Token Root
插件免登录,使用新的链接:JENKINS_URL/buildByToken/build?job=项目名&token=xxx
,仍然需要将触发远程构建
打开,token就是触发远程构建
的token - 可配合gitlab的钩子方法使用
定期检查代码变更/Poll SCM
- 使用cron表达式定时检查代码变更,变更后构建job
- 类cron表达式,H表示根据项目名算出的hash值,不同项目名算出的hash值一般不同,可避免同时执行定时任务
邮件通知
- 安装插件:
Extended E-mail Notification
,安装jenkins时,选择推荐插件安装会包含该插件 Manage Jenkins(系统管理)
–Configure System
–Jenkins Location
- 配置 Jenkins URL
- 配置系统管理员邮件地址
Manage Jenkins(系统管理)
–Configure System
–Extended E-mail Notification
- 配置 SMTP server
- Default Triggers:事件触发器
Manage Jenkins(系统管理)
–Configure System
–邮件通知
- 系统级别的
- 打开项目,选择配置,选择
构建后操作
增加构建后操作步骤
–Editable Email Notification
,点击后面的Advanced Settings