公开
创建于 by 龙鑫

jenkins集成发布实践

系统环境:Centos 7

jenkins版本:Jenkins ver. 2.107.3

jdk版本:1.8.0_171

Part 1 在开始之前我们需要先处理必要的权限问题

因为代码编译发布都是通过jenkins,所以需要jenkins用户|组拥有相关的文件目录权限或执行权限,可使用以下命令来改变文件

#### 增加用户对文件的执行权限,比如.sh文件
chmod a+x file
#### 改变文件目录所属的用户或组
chown -R jenkins:jenkins /app

由于jenkins为非root用户在使用系统级命令如systemctl|service,会被询问授权密码,所有需要设置jenkins可以无密执行shell命令

vim /etc/sudoers增加一行jenkins ALL=(ALL) NOPASSWD: ALL在如下位置

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
jenkins ALL=(ALL) NOPASSWD: ALL

重启jenkins服务systemctl jenkins restart

Part 2 jenkins自动构建任务配置

1.新建jenkins任务

新建任务——>填写名称——>填写任务概述

2.jenkins构建之前git库配置

源码管理——>选择代码源(git|svn)——>填写代码源url——>配置代码源认证授权(如果需要的话) jenkins1

3.编写脚本将jar包以系统服务的方式运行

编写serviceName系统服务配置文件 /etc/systemd/system/{serviceName}.service,假设serviceName=actServer

[Unit]
Description=This actServer's service
[Service]
Type=forking
ExecStart=/app/actServer/start-actServer.sh
[Install]
WantedBy=multi-user.target

编写服务启动脚本start-actServer.sh

cd /app/actServer
nohup java -jar /app/actServer/securityplatform-act-server-0.0.1-SNAPSHOT.jar &

执行systemctl daemon-reload重新加载服务配置

经过以上便可以通过systemctl|service start命令来控制服务启动关闭

此外可以通过systemctl|service enable命令来控制服务自启动

4.配置构建触发器(非必须),构建环境(非必须),构建(重要)

目前我们通过执行shell脚本来实现代码编译部署,see build.sh

#! /bin/sh
cd /app/securityplatform/securityplatform
git pull
mvn clean install
mv -f /app/securityplatform/securityplatform/securityplatform-service/securityplatform-act-server/target/actServer.zip /app
cd /app
unzip -oq actServer.zip
sudo service actServer restart
编辑时间
62 Bytes
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论