## :-: 打包发布远程执行
#### **第一步:配置jenkins**
1、jenkins安装完成后,首先进行插件的下载(Jenkins页面→Manage Jenkins→Manage Plugins)需要安装的插件有:Publish Over SSH;Maven Integration;GitLab Plugin;GitLab Hook Plugin;GitLab Authentication plugin;GitLab API Plugin;Git;Git client Plugin;Git Parameter Plug-In
![](https://img.kancloud.cn/04/2f/042f1ea9e4cc981be81cfb3c6ab4fef0_1593x764.png)
2、插件安装完成后,我们进行全局的配置(Jenkins页面→Manage Jenkins→Global Tool Configuration),其中包括Maven、jdk、git的配置
![](https://img.kancloud.cn/ad/f6/adf6996f245cc9169e27683d62a36f9d_994x377.png)
安装git
```
yum install git
```
![](https://img.kancloud.cn/cc/ed/cced1ba6f41706ce75ce71a3dfe4b343_899x493.png)
![](https://img.kancloud.cn/c6/50/c65097404c754c2d8be4ce68cd114f6c_985x333.png)
![](https://img.kancloud.cn/6a/a7/6aa764f8b31c53c592343fa95c9f9918_980x375.png)
3、全局配置完成之后,进行系统配置(Jenkins页面→Manage Jenkins→Configure System),主要是配置ssh服务
我通过http登录的方式连接的,直接输入用户名和密码即可,也可以通过点击高级进行ssh方式的连接,给当前的root用户生成密钥,将私钥配置配置给Jenkins用户,将公钥配置到目标服务器
#### **第二步:创建任务**
**1、创建任务**
因为我们需要对项目进行打包,所以我们选择构建一个maven项目,然后对项目进行一系列的配置
![](https://img.kancloud.cn/c0/6b/c06b901f91a96dcf02f5f3ba09a84180_897x413.png)\*\*\*\*
**2、配置任务**
**A:git源码配置**
#### ![](https://img.kancloud.cn/94/dc/94dc1e45816460dd4d8023459c9eca99_943x573.png)\*\*\*\*
**B : 构建触发器**
*****
![](https://img.kancloud.cn/be/b0/beb0291acb7e46e845f35225b5d6481d_977x569.png)\*\*\*\*![](https://img.kancloud.cn/71/a5/71a54ee506fae71c7761033062db495a_934x530.png)\*\*\*\*
*****
![](https://img.kancloud.cn/ea/e7/eae78dd02f38aed52870be7c1f71c8ec_1004x679.png)
![](https://img.kancloud.cn/a5/2f/a52f65f4e6b219406c240cacf60b6d8a_909x566.png)
```
cd /usr/xh/apps/xh-service-trade && sh start.sh restart && ps -aux |grep -v grep | grep java
```
```
备注:如果不需要SSH传输打包文件 可直接执行Shell命令 如下
OLD_BUILD_ID=$BUILD_ID
echo $OLD_BUILD_ID
BUILD_ID=dontKillMe
cp /var/lib/jenkins/workspace/hmall-service-auth-jwt/target/hmall-service-auth-jwt.jar /usr/hj/apps
sh /usr/hj/apps/authJwt.sh restart
```
![](https://img.kancloud.cn/08/ee/08eed5e394e39e79a740233984d27a65_930x426.png)
```
#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
APP_NAME=hmall-service-market.jar
FULL_PATH=/usr/hj/apps/hmall-service-market.jar
#启动方法
start(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
if [ "$pid" ]; then
echo "$APP_NAME is already running. pid=$pid ."
else
nohup $JAVA_HOME/bin/java -jar $FULL_PATH --spring.profiles.active=test >/dev/null 2>&1 &
echo $!
echo "$APP_NAME now is running"
fi
}
#停止方法
stop(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
if [ "$pid" ]; then
kill -9 $pid
echo "Pid:$pid stopped"
else
echo "$APP_NAME is not running"
fi
}
#输出运行状态
status(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
if [ "$pid" ]; then
echo "$APP_NAME is running. Pid is ${pid}"
else
echo "$APP_NAME is NOT running."
fi
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
sleep 5
start
;;
*)
echo "Usage:{start|stop|status|restart}"
;;
esac
exit 0
```
##
# jenkins 构建出现 permission-denied问题
### jenkins构建权限问题
1.修改jenkins配置
检查jenkins配置配置文件,将执行用户改成root,不然后面可能出现执行shell没有权限
~~~
vim /etc/sysconfig/jenkins # 编辑文件
JENKINS_USER="root" # 改成root
~~~
2.修改jenkins的用户与组
~~~
cd /var/lib
chown -R root:root jenkins
# 重启jenkins服务
service jenkins restart
~~~
###
##
## 第三步:配置GitLab
![](https://img.kancloud.cn/b2/03/b203ede13688027f7f457571fbadec46_1596x738.png)
![](https://img.kancloud.cn/bc/2e/bc2e0a17d3b28d530d40b2a0810453dc_1593x744.png)
![](https://img.kancloud.cn/c0/a2/c0a23d13aabb5c90176e9781e2e4006c_1289x604.png)
**这样我们自动化部署就构建完成了**
- 项目介绍
- 项目声明
- 项目简介
- 架构设计
- 项目亮点功能介绍
- 技术栈介绍
- 核心功能
- 运行环境
- 项目更新日志
- 文档更新日志
- F&Q
- 部署教程
- 环境准备
- JDK安装
- JDK1.8,17共存
- maven
- 分布式缓存Redis
- 单机版
- 集群
- 注册&配置中心alibaba/nacos
- 介绍
- Nacos安装
- Nacos配置中心
- Nacos注册发现
- Nacos生产部署方案
- 服务监控-BootAdmin
- 基本介绍
- 如何使用
- 整合Admin-Ui
- 客户端配置
- 链路追踪
- 基本介绍
- SkyWalking-1
- Skywalking-1
- 消息队列
- Kafka
- docker安装kafka
- Linux集群
- Maven私服
- nexus安装部署
- nexus使用介绍
- 全文搜索elasticsearch
- windows集群搭建
- docker安装es
- ElasticHD
- linux集群部署
- 统一日志解决方案
- 日志解决方案设计
- 介绍与相关资料
- ELK安装部署
- elasticsearch 7.5
- logstash-7.5
- kibana-7.5
- filebeat
- 服务监控-Prometheus
- Prometheus安装配置
- Prometheus介绍
- grafana
- 持续集成部署CICD
- 自动化部署Jenkins
- 安装部署win
- 打包发布远程执行
- 安装部署linux
- jenkins+gitlab+docker容器化工程自动化部署
- Git
- CICD说明
- 阿里云效
- CentOS_MYSQL安装
- docker
- 安装
- Docker安装Nginx
- Docker部署启动springboot
- dockerCompose
- harbor
- Docker私有镜像仓库
- Portainer
- Docker远程连接设置
- 打包工程
- 必要启动模块
- 核心模块
- 登录认证
- 缓存功能
- 日志模块
- 分布式锁
- 消息队列
- 异常处理
- 系统接口
- 参数验证
- es检索
- 数据导出
- 系统设计
- 系统总体架构
- 扩展模块(可选)
- 限流熔断alibaba/sentinel
- 使用Sentinel实现gateway网关及服务接口限流
- Sentinel使用Nacos存储规则及同步
- 服务调用Feign
- Feign基本介绍
- 如何使用
- 负载均衡
- 请求超时
- 请求拦截器
- 分布式任务调度
- XXL-JOB
- 分布式事务
- TX-LCN
- Seata
- Seata原理解析
- 数据库分库分表
- swagger文档
- 分布式ID生成器解决方案
- 服务网关CloudGateway
- 基本介绍
- 使用网关
- 路由配置
- 全局过滤器
- 服务认证授权架构设计
- 认证服务流程
- 授权服务流程
- 系统幂等性设计与实践
- 分布式日志链路跟踪
- 实时搜索系统设计
- 应用性能
- 压力测试工具
- Apache JMeter介绍和安装
- ApacheJMeter使用
- JVM
- JVM性能调优
- 常见JVM内存错误及解决方案
- JVM 分析工具详解
- Spring Cloud性能调优
- Linux运维
- Linux 常用命令
- Linux开启端口