## :-: 打包發布遠程執行
#### **第一步:配置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

2、插件安裝完成后,我們進行全局的配置(Jenkins頁面→Manage Jenkins→Global Tool Configuration),其中包括Maven、jdk、git的配置

安裝git
```
yum install git
```



3、全局配置完成之后,進行系統配置(Jenkins頁面→Manage Jenkins→Configure System),主要是配置ssh服務
我通過http登錄的方式連接的,直接輸入用戶名和密碼即可,也可以通過點擊高級進行ssh方式的連接,給當前的root用戶生成密鑰,將私鑰配置配置給Jenkins用戶,將公鑰配置到目標服務器
#### **第二步:創建任務**
**1、創建任務**
因為我們需要對項目進行打包,所以我們選擇構建一個maven項目,然后對項目進行一系列的配置
\*\*\*\*
**2、配置任務**
**A:git源碼配置**
#### \*\*\*\*
**B : 構建觸發器**
*****
\*\*\*\*\*\*\*\*
*****


```
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
```

```
#!/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



**這樣我們自動化部署就構建完成了**
- 項目介紹
- 項目聲明
- 項目簡介
- 架構設計
- 項目亮點功能介紹
- 技術棧介紹
- 核心功能
- 運行環境
- 項目更新日志
- 文檔更新日志
- 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開啟端口