1、服務(wù)器環(huán)境
名稱? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 系統(tǒng)? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? IP? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 備注
gitlab? ? ? ? ? ? ? ?ubuntu20.04.2圖形化? ? ? ? ? 192.168.26.130? ? ? ? 要求有6G的內(nèi)存
Jenkins? ? ? ? ? ?Ubuntu20.04.2圖形化? ? ? ? ??192.168.26.110? ? ? ? 沒有硬性要求? ?
測試服務(wù)器? ? ?Ubuntu20.04.2圖形化? ? ? ? ? 192.168.26.129? ? ? ? 沒有硬性要求
2、做時(shí)間同步(所有服務(wù)器都要執(zhí)行)
timedatectl set-timezone "Asia/Shanghai"? ? ? ?#時(shí)區(qū)改為上海
ntpdate "ntp.aliyun.com"? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #更正時(shí)間
出現(xiàn)下圖錯(cuò)誤 說明本機(jī)沒有安裝ntpdate?
解決辦法
sudo apt install ntpdate
3、安裝gitlab極狐
sudo apt-get update? ? ? ? ? ? ? ? ? ? ? ? ? #更新系統(tǒng)的軟件包列表和版本信息
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl? ? ? ? ? ? ?#下載依賴
sudo systemctl status ssh? ? ? ? ? ? ? ? ? ? ? ?#查看ssh是否在運(yùn)行
sudo systemctl start ssh? ? ? ? ? ? ? ? ? ? ? ? ? #啟動(dòng)ssh
curl -fsSL https://get.gitlab.cn | /bin/bash? ? ? ? ? ? ? ??#配置極狐gitlab軟件源鏡像
sudo EXTERNAL_URL="http://192.168.193.130" apt-get install gitlab-jh? ? ?#開始安裝gitlab
注:URL后面的參數(shù)可以是本機(jī)的IP,也可以為域名,如果設(shè)置域名需要確保域名解析到本機(jī)的IP即可。
EXTERNAL_URL?中配置的地址來訪問安裝成功的極狐GitLab 實(shí)例。用戶名默認(rèn)為?root?。如果在安裝過程中指定了初始密碼,則用初始密碼登錄,如果未指定密碼,則系統(tǒng)會(huì)隨機(jī)生成一個(gè)密碼并存儲(chǔ)在?/etc/gitlab/initial_root_password?文件中, 查看隨機(jī)密碼并使用?root?用戶名登錄。
注意:出于安全原因,24 小時(shí)后,/etc/gitlab/initial_root_password?會(huì)被第一次?gitlab-ctl reconfigure?自動(dòng)刪除,因此若使用隨機(jī)密碼登錄,建議安裝成功初始登錄成功之后,立即修改初始密碼。
gitlab常用命令
gitlab-ctl start # 啟動(dòng)所有g(shù)itlab組件
gitlab-ctl stop # 停止所有g(shù)itlab組件
gitlab-ctl restart # 重啟所有g(shù)itlab組件
gitlab-ctl status # 查看服務(wù)狀態(tài)
gitlab-ctl reconfigure # 啟動(dòng)服務(wù)
vim /etc/gitlab/gitlab.rb # 修改默認(rèn)的配置文件
gitlab-ctl tail # 查看日志
4、登陸web頁面查看
輸入本機(jī)IP進(jìn)行登陸
注:如果出現(xiàn)502錯(cuò)誤 可以等一會(huì)再刷新看看?
默認(rèn)用戶是root
密碼我們可以在/etc/gitlab/initial_root_password文件中進(jìn)行查看
我們登陸上后先改密碼
修改完成后我們再次登陸
5、將gitlab頁面設(shè)置為中文
登陸gitlab頁面
跟著圖上標(biāo)的步驟來
把頁面拉到下面找到 Localization? 選項(xiàng)
選擇中文簡體
在頁面的最下面選擇保存更改
在回到主頁就可以看到已設(shè)置為中文
6、新建項(xiàng)目
新建項(xiàng)目
選擇創(chuàng)建空白項(xiàng)目
7、使用命令行的方式向gitlab推送代碼
?git branch -a? ? ? ? ? ? ? ? ? ? ? #查看分支的命令
git status? ? ? ? ? ? ? ? ? ? ? ? ? ?#查看當(dāng)前工作目錄的狀態(tài)
找一個(gè)文件上傳到你目錄下 我的是在/root 目錄下
#設(shè)置用戶名、郵箱為gitlab上設(shè)置的郵箱
git config --global user.name "yuansui@2527.com"
git config --global user.email "yuansui@2527.com"
git config --global --list? ? ? ? ? ?#查看郵箱
#然后輸入上面保存的地址
git clone http://192.168.193.130/root/java-project.git
git add .? ? ? ? ? ? ? ? ? ? #把目錄下的所有文件上傳到git
git commit -m "你的描述"? ? ? ? ? ? ? ? #提交信息格式
git commit -m "測試"
git push <鏈接(orgin是別名)> <本地倉庫>:<遠(yuǎn)程分支>
git push origin master
然后我們在瀏覽器可以看到下面的消息
我們上面操作推送代碼的時(shí)候選擇的的maser分支所以這里選擇maser分支查看
下圖可以看出我們推送的文件
1、Jenkins服務(wù)器安裝部署
1、安裝jdk17
sudo apt update? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #更新軟件包
sudo apt install openjdk-17-jdk? ? ? ? ? ? ? ? ? ? ? ?# 下載jdk17
java -version? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#查看安裝的 Java 版本信息
2、在Jenkins服務(wù)器安裝git
sudo apt-get install git
echo $PATH? ? ? ? ? ? ? ? ? ? ? ?#檢查 PATH 變量
vim .bashrc? ? ? 或者是 vim .bash_profile? ? ? ? ?#打開文件配置變量
export PATH=/usr/bin/git:$PATH? ? ? ? ? ? ? ? ? ? ? #在文件尾部添加此變量
注意 文件路徑 通常是?
/usr/bin/git
?或?/usr/local/bin/git
source ~/.bashrc? ? ? ? ?或者是?source ~/.bash_profile? ? ? ? ? ? ???#使命令生效
2、在Jenkins官網(wǎng)進(jìn)行下載
Jenkins
下載Jenkins的war包到本地
將我們下載的war包傳輸?shù)椒?wù)器內(nèi)
啟動(dòng)我們的war包
java -jar jenkins.war? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#啟動(dòng)war包
Jenkins默認(rèn)的端口是8080如果你需要指定端口的話可以使用--httpPort=選項(xiàng)?
java -jar jenkins.war --httpPort=8888? ? ? #啟動(dòng)war包并指定端口
如果啟動(dòng)時(shí)出現(xiàn)下面這種錯(cuò)誤
解決辦法
將jdk1.8升級(jí)到j(luò)dk11 錯(cuò)誤顯示最少需要jdk11
sudo apt install openjdk-11-jdk
將下圖初始碼復(fù)制下來
然后在網(wǎng)頁訪問本機(jī)的IP+8080端口 將上圖保存的初始碼粘貼到下圖
創(chuàng)建你的管理員用戶密碼
3、在Jenkins服務(wù)器安裝maven
sudo apt install maven? ? ? ? ? ? ? ? ? ? ?
配置環(huán)境變量
vim?.bashrc??(或
~/.bash_profile
或~/.profile
,取決于你使用的是哪個(gè)shell)在文件尾部添加下行內(nèi)容
export PATH=$PATH:/usr/local/maven/bin
source ~/.bashrc? ? ? ? ? ? ? ? ? ? ? ?#使修改生效
mvn -v? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#查看版本信息
2、測試服務(wù)器安裝
apt install openjdk-8-jdk? ? ? ? ? ? ? ? ? ?#安裝java環(huán)境jdk1.8
sudo systemctl status ssh? ? ? ? ? ? ? ? ? ? ? ?#查看ssh是否啟動(dòng)
sudo apt install -y openssh-server? ? ? ? ? ?#如果沒安裝用此命令安裝
查看本機(jī)IP
3、使用Jenkins
進(jìn)入Jenkins頁面我們先去安裝插件
安裝maven
安裝publish
4、Jenkins新建item
構(gòu)建maven項(xiàng)目
源碼管理設(shè)置
在gitlab上查看地址
將上圖獲得的地址填寫在下圖?
Branches to bulid 配置 根據(jù)項(xiàng)目分支情況進(jìn)行填寫
Build 配置
跳轉(zhuǎn)到頁面找到最下面的新建maven
maven按照配置
登陸我們gitlab的頁面查看項(xiàng)目中我們pom.xml文件的路徑
Build 配置
我們再次打開一個(gè)新的Jenkins頁面
找到 Publish over SSH 選項(xiàng) 添加后端發(fā)布服務(wù)器信息
填寫信息然后選擇高級(jí)繼續(xù)填寫信息
然后返回我們的配置 添加后端服務(wù)器
注:如果上圖的路徑不知道可以按照下圖查看
構(gòu)建一下看是否能成功
如果你的出現(xiàn)下圖報(bào)錯(cuò)
解決辦法
sudo apt install -y default-jdk
在測試服查看是否有文件
我們構(gòu)建的時(shí)候看輸出的內(nèi)容
解決辦法
再次進(jìn)行編譯查看? 通過下圖我們可以看到我們的文件已經(jīng)傳輸完成
我們在測試服務(wù)器進(jìn)行查看
因?yàn)槲业奶摂M機(jī)是圖形化的所以文件路徑和你們的應(yīng)該有所不同
你們的話可以直接在家目錄下有root目錄
如果你感覺路徑太長 可以按照下圖進(jìn)行更改
然后我們將服務(wù)器的文件刪除
再次跑一下任務(wù)
然后再次進(jìn)入測試服務(wù)器進(jìn)行查看 通過下圖我們可以看出更簡單了
接下來我們讓它傳輸完成后自動(dòng)將jar包啟動(dòng)起來
再次跑一下服務(wù)然后在服務(wù)器查看
5、Jenkins配置腳本
我們上面的配置可以實(shí)現(xiàn)文件傳輸后在后端服務(wù)器自動(dòng)啟動(dòng)jar包(服務(wù)),但是有一個(gè)問題就是我們?nèi)绻呀?jīng)啟動(dòng)運(yùn)行這一個(gè)jar包(一個(gè)服務(wù)),當(dāng)我們在Jenkins跑服務(wù)的時(shí)候就無法啟動(dòng)新的jar包,端口會(huì)沖突,所以為了更加方便我們工作,我們可以寫一個(gè)腳本來實(shí)現(xiàn)將老的jar包(服務(wù))刪除或者移動(dòng)到指定文件夾,將老的服務(wù)停止,來釋放端口,從而讓我們新的jar包(服務(wù))啟動(dòng)。
按照下圖進(jìn)行配置? 為文件傳輸前的操作
這里我們先寫好腳本的路徑以及名字 下面我們在服務(wù)器創(chuàng)建腳本文件寫腳本
注:腳本的服務(wù)器是我們發(fā)布服務(wù)器的路徑,腳本也是在發(fā)布服務(wù)器上的
6、登陸到測試服務(wù)器寫腳本
注:腳本的路徑和上面我們寫的路徑必須要一樣
vim /root/sy.sh
這是一個(gè)簡單的shell腳本有需求可自己按照需求自己寫
#!/bin/bash
# 刪除歷史數(shù)據(jù)
rm -rf /home/sy/data/my.*.jarappname=$1
# 獲取正在運(yùn)行的jar包pid
pid=$(ps -ef | grep 'my' | grep 'java -jar' | awk '{print$2}')# 如果pid為空,提示一下,否則,執(zhí)行kill命令
if [ -z "$pid" ]
then
? ? ? ? echo "$appname 未啟動(dòng)"
else
? ? ? ? kill -9 $pid
? ? ? ? echo "$appname 正在停止...."
fi# 等待一段時(shí)間,確保進(jìn)程已經(jīng)停止
sleep 5# 再次檢查進(jìn)程是否已經(jīng)停止
if ps -p $pid > /dev/null
then
? ? ? ? echo "$appname 停止失敗"
else
? ? ? ? echo "$appname 已成功停止"
fi
?
7、回到Jenkins繼續(xù)配置
保存后我們的配置也就完成了。
注:上面的配置可以提交代碼后我們進(jìn)行合并,就會(huì)自動(dòng)部署更新代碼也就是我們的jar包
就是說我們將新的代碼提交到代碼倉庫,然后選擇合并,在跑一下代碼就可以自動(dòng)將代碼達(dá)成jar包自動(dòng)傳輸?shù)轿覀兊姆?wù)器,腳本會(huì)自動(dòng)將我們舊的jar包停止,將新的jar包啟動(dòng)。
但是需要我們手動(dòng)的去合并和跑一下服務(wù):下圖就是跑服務(wù)? 這是大多數(shù)公司常用的配置。
4、拓展(不建議配置使用)
如果你想提交代碼后不用再手動(dòng)去合并和跑服務(wù)可以繼續(xù)按下面的操作進(jìn)行配置
2、安裝插件
3、打開插件的網(wǎng)址查看說明
Build Authorization Token Root | Jenkins pluginhttps://plugins.jenkins.io/build-token-root/
4、打開gitlab進(jìn)行配置
選擇我們的項(xiàng)目
注意這一步路徑別寫錯(cuò)了
http://192.168.26.110:8080/buildByToken/build?job=first&token=112233
說明:
http://192.168.26.110:8080/? ? ? ? ? ? ? ? ?#是你Jenkins的訪問路徑
buildByToken/build?job=first? ? ? ? ? ? ? ? #是你Jenkins上的Item項(xiàng)目名稱
&token=112233? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #是你項(xiàng)目設(shè)置的身份令牌
觸發(fā)事件按你們自己需求來
5、報(bào)錯(cuò)解決辦法
按照第5步操作完成后然后再按照第4步重新添加一下webhooks就可以了
文章來源:http://www.zghlxwxcb.cn/news/detail-858563.html
以上配置完成了,但是不建議使用第四步擴(kuò)展,這樣會(huì)消耗更多的資源,而且每次提交代碼都要構(gòu)建一次服務(wù) 并不合理,同樣也是需要手動(dòng)合并才行。文章來源地址http://www.zghlxwxcb.cn/news/detail-858563.html
到了這里,關(guān)于ubuntu系統(tǒng)安裝配置gitlab+Jenkins+發(fā)布持續(xù)集成持續(xù)部署保姆級(jí)教程。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!