文章目錄
一、背景
- 需要使用自動化構建工具jenkins構建項目到應用服務器,項目分前端後端。
- 前端使用npm構建的vue項目,後端是使用maven的springboot項目。
除了安裝jenkins外,還需要額外安裝tomcat、maven、jdk、git、npm。
附言:一年前我搭建時候也寫過一篇,但是安裝包比較零散,所以重新搭建構建系統的時候我才重新寫了這篇。一年前的帖子也可以參考看看
超全git+tomcat+jenkins實現自動化構建部署教程https://blog.csdn.net/u011456337/article/details/89303647
二、安裝包
步驟三四需要用的安裝包較多,單獨去找如果怕麻煩的話可以直接用百度雲裏面的這些,包含jenkins、maven、maven配置文件、jdk、git。
鏈接:https://pan.baidu.com/s/1wH5bx3QO4SZRi7fVqFolsA
提取碼:7z2t
三、安裝java環境
下面的工具已安裝的可以跳過
當前軟件下載位置:/opt/soft/,進入該位置
3.1、安裝jdk
安裝包使用百度雲下載的或者進入下載https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
# 解壓
tar -zxvf jdk-8u144-linux-x64.tar.gz
# 移動位置
mv jdk1.8.0_144/ /usr/local/java
# 配置環境變量
vi /etc/profile
# 文件末尾添加環境變量
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre
# 使配置生效
source /etc/profile
# 測試是否安裝成功
java -version
3.2、安裝tomcat
使用百度雲安裝包或者直接
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.39/bin/apache-tomcat-8.5.39.tar.gz
# 解壓
tar -zxvf apache-tomcat-8.5.39.tar.gz
# 創建目錄
mkdir /usr/local/tomcat
# 移動
mv apache-tomcat-8.5.39 /usr/local/tomcat/
可選操作-修改tomcat端口並啓動測試能夠訪問
3.3、安裝maven
使用百度雲解壓包或者下載maven安裝包
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
# 解壓
tar -zxvf apache-maven-3.5.4-bin.tar.gz
# 可以解壓到/usr/local/maven,這裏我的直接用了soft下面的安裝包略過了該步
# 配置環境變量
vi /etc/profile
# 文件末尾添加環境變量
export MAVEN_HOME=/opt/soft/maven/apache-maven-3.5.4
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin
# 使配置生效
source /etc/profile
# 測試是否安裝成功
mvn -v
# 默認的倉庫比較慢,可以配置阿里雲和華爲雲的中央倉庫,直接看步驟二下載的setting.xml,可以直接粘貼進去或者參考
3.4、安裝git
提示:安裝git經常會遇到一些錯誤
使用百度雲的解壓包或者額外下載 https://www.kernel.org/pub/software/scm/git
# 解壓
tar -zxvf git-2.9.5.tar.gz
# 進去解壓後目錄執行,
./configure --prefix=/usr/local/git
make && make install
# 前兩步如果有遇到錯,要麼直接百度,要麼就是缺少一些包,下面給出一些常見報錯依賴度的環境
yum install curl-devel
yum install zlib
yum install zlib-devel
yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
yum install curl-devel
#測試是否安裝成功
git --version
三、安裝jenkins
3.1、安裝jenkins
3.1.1、版本選擇:2.164.1。
3.1.2、下載各個版本地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/
3.1.3、安裝方式:不用yum安裝,使用tomcat容器部署jenkins,方便修改工作空間。
# 使用百度雲提供的war包或者自行下載
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.164.1/jenkins.war
# 移動war文件到tomcat下
mv jenkins.war /usr/local/tomcat/apache-tomcat-8.5.49/webapps
3.1.4、啓動:直接啓動tomcat方式即可啓動jenkins
3.1.5、驗證是否成功,訪問Jenkins,http://IP地址:8080/jenkins/
3.2、配置初始頁
3.2.1、這裏有一個臨時密碼需要輸入,在/home/tomcat/.jenkins/secrets/initialAdminPassword裏面
3.2.2、選擇第二個,select plugin to install,這裏其實不安裝東西也沒關係,進去主頁面之後再去安裝插件即可,確認
3.2.3、創建用戶名密碼
3.2.4、進入主頁
3.3、插件、憑據、工具配置
1、插件安裝:系統管理->插件管理>搜索過濾插件->安裝
當前需要安裝的插件有:
- Git
- Git Parameter Plug-In
- GitLab Plugin
- Maven Integration plugin
- Publish Over SSH
2、憑據配置:選擇憑據->系統->添加域,輸入一個域名或者ip
點擊添加一些憑據
添加之後賬戶密碼信息之後保存
3、ssh scp 配置
系統管理->系統設置 ssh server 配置:
如果用的是統一的key或者密碼,則配置一次就可以了。
如果每個服務器密碼都不一樣,需要點擊高級按鈕,把
複選框 Use password authentication, or use a different key 勾選上就行了。
- Passphrase 服務器的密碼
- Path to key 連接遠程服務器密鑰文件的路徑【沒配置密鑰則空】
- Key 密鑰文件的內容 【沒配置密鑰則空】
- Name 自定義服務器名
- HostName 服務器IP外網地址
- UserName 服務器用戶名
- Remote Directory 傳輸文件的目錄【默認填/ ,即根目錄】
4、配置本地maven、jdk、git
maven,jdk,git、這些儘量使用本地配置
如下圖
3.4、安裝npm
進入jenkins插件中心安裝nodejs,接着去系統設置→系統設置(全局設置)>找到npm,配置如下
四、新建maven項目
4.1、新建選擇新建一個maven項目,如果沒有安裝Maven Integration plugin插件,則不會出現該item。
4.2、配置多條件分支參數
4.3、選擇git項目,選擇憑據,指定分支(爲空時代表any) 填寫上面配置的分支參數myBranch(如果Repository URL報http錯,則是http不被git支持,需要進去git目錄 yum install curl-devel 安裝後重新執行上面步驟3.4中的git兩條編譯配置命令)。
4.4、構建前刪除源文件和編譯文件
選擇pom.xml
4.5、後置操作步驟選下拉框中的【Send files or execute commands over SSH】接着進行配置。
- Source files 項目構建後的目錄
- Remove prefix 去前綴
- Remote directoty 發佈的目錄
- Exec command 發佈完執行的命令
4.6、確認構建後啓動腳本restart.sh 是否有誤
#! /bin/bash
echo "構建完成"
echo "停止java進程"
ps -aux | grep java|grep soso-admin| awk '{print $2}' | while read pid
do
echo "正在殺死進程,pid=$pid"
kill -9 $pid
echo "kill result: $?"
done
cd /opt/project/java/soso
ls -lht
nohup java -jar soso-admin.jar -spring.profiles.active=sit > nohup.out 2>&1 &
echo "啓動中"
4.7、嘗試構建
選擇build with parameter
選擇需要構建的分支之後構建進度如下,接着點擊進度條進入構建日誌詳情查看具體信息
如下圖所示則構建成功,直接進去看應用啓動日誌或者直接訪問應用的url地址
五、常見問題
- ssh發送文件到遠程服務器報錯,一般是因爲設置路徑不對,可能是遠程服務器設置路徑,或者發送位置不正確,一般有下面兩種配置錯誤
1、系統管理->系統設置->Publish over SSH->Remote Directory >設置默認遠程服務器根目錄 /
2、構建配置中Send build artifacts over SSH->Remote directory ,爲文件發送遠程目標目錄(相對路徑)
結合1、2,最終發送文件位置是【根目錄+相對路徑】
可以直接在遠程服務器執行如:find / -name soso-admin.jar查找文件位置,解決路徑錯誤
- 遇到一些git問題可以根據具體的報錯百度
- 遇到jenkins的自己的頁面沒有下拉選項應該少安裝了插件,需要去安裝插件。
- 修改jenkins工作空間workspace需要自行百度
六、構建npm前端項目簡述
6.1.1、前端npm項目構建
1、構建一個自由風格的項目
2、【源碼管理】選擇git版本和分支選擇同前面maven的一致
3、接下來就不一樣了,
4、【構建環境】選擇 Provide Node & npm bin/ folder to PATH
5、構建shell
cd /var/lib/jenkins/workspace/intelligence-web
npm install -g cnpm --registry=https://registry.npm.taobao.org
rm -rf intelligence
rm -rf intelligence-web
rm -rf intelligence-web.tar.gz
cnpm install
npm run build
mv intelligence intelligence-web
tar -zcvf intelligence-web.tar.gz intelligence-web
6、構建後文件發送到應用服務器
publish.sh腳本和路徑如下
[elk@gzidc-it-dev01 ~]$ cat /opt/project/node/intelligence/publish.sh
#! /bin/bash
source /etc/profile
cd /opt/project/node/intelligence/
ls -lht
# rm -rf intelligence-web.tar.gz
rm -rf intelligence-web
rm -rf static
rm -rf index.html
tar zxvf intelligence-web.tar.gz -C /opt/project/node/intelligence/
mv intelligence-web/* .
七、克隆方式創建新項目
選擇構建自由風格的項目→copy from 已有項目->點擊保存即可,接着按照自己需要修改版本git地址和腳本配置
八、參考
超全git+tomcat+jenkins實現自動化構建部署教程https://blog.csdn.net/u011456337/article/details/89303647
Jenkins自動構建部署項目到遠程服務器上
https://blog.csdn.net/ming19951224/article/details/80958761
jenkins配置,一鍵打包,備份,部署多服務器,多環境啓動
https://blog.csdn.net/li740207611/article/details/84261430
基於gitlab和jenkins的自動化部署實例
https://blog.csdn.net/aaaaaab_/article/details/82012044
Jenkins自動化構建vue項目然後發佈到遠程Linux服務器
https://www.cnblogs.com/djlsunshine/p/11059690.html