Jenkins構建項目簡易教程

一、背景

  • 需要使用自動化構建工具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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章