国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Jenkins+gitlab實現(xiàn)自動化部署

這篇具有很好參考價值的文章主要介紹了Jenkins+gitlab實現(xiàn)自動化部署。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

一、關(guān)于Jenkins

Jenkins介紹

Jenkins 是一個用 Java 編寫的開源自動化工具,帶有用于持續(xù)集成的插件。用于持續(xù)構(gòu)建和測試您的軟件項目,從而使開發(fā)人員更容易將更改集成到項目中,并使用戶更容易獲得新的構(gòu)建。它還允許您通過與大量測試和部署技術(shù)集成來持續(xù)交付軟件。
Jenkins 集成了各種開發(fā)生命周期過程,包括構(gòu)建、文檔、測試、打包、模擬、部署、靜態(tài)分析等等。
Jenkins 借助插件實現(xiàn)了持續(xù)集成。插件允許集成各種 DevOps 階段。如果要集成特定工具,則需要安裝該工具的插件。例如 Git、Maven、Node 項目等。

Jenkins工作流程

image.png

  1. 開發(fā)者在本地開發(fā),然后提交到 Source Respository 中,
  2. 觸發(fā) GitHub 或者 GitLab 配置的鉤子函數(shù)程序,繼而通知 Jenkins
  3. Jenkins 收到通知,會通過 Git/SVN 插件,重新從項目配置中的代碼倉庫中拉取最新代碼,放置于 Workspace (Jenkins 存放任務(wù)的目錄)
  4. 之后重新觸發(fā)構(gòu)建任務(wù),Jenkins 有很多的構(gòu)建的插件,Java 常用的 Maven 、Gradle,前端的 Node 等
  5. 如果有安裝發(fā)送郵件的插件并且進(jìn)行了配置,那么可以在項目中進(jìn)行配置,構(gòu)建失敗或者成功都可以選擇是否給開發(fā)者發(fā)送郵件
  6. 構(gòu)建成功后,Jenkins 會通過一個 SSH 插件,來遠(yuǎn)程執(zhí)行 Shell 命令,發(fā)布項目,在項目中可以配置多臺服務(wù)器,也就可以一次性部署到多臺服務(wù)器上去。
  7. 當(dāng)然很多時候,構(gòu)建成功后,并不會直接部署到服務(wù)器上,而是打包到另外一臺服務(wù)器上存儲(應(yīng)用服務(wù)器)或者存儲為軟件倉庫中的一個新版本。

關(guān)于持續(xù)集成和持續(xù)部署

持續(xù)集成:CI 是一種開發(fā)實踐,其中開發(fā)人員一天幾次將代碼集成到共享存儲庫中。當(dāng)有人將新代碼推送到共享存儲庫中時,測試會在非開發(fā)人員(測試人員)的計算機(jī)上自動運(yùn)行。這種純手動的構(gòu)建測試,效率非常的低,開發(fā)人員必須等待測試人員的反饋后才知道結(jié)果,如果錯了,還要修改 bug , 這個過程一方面需要溝通成本,另外一方面效率是非常低的.
持續(xù)部署:我們都知道,項目最終是會部署到服務(wù)器上去,在沒用 Jenkins 之前,大都是我們或?qū)I(yè)的運(yùn)維將項目進(jìn)行部署。如果項目非常多或者部署完后出現(xiàn) bug,需要人手動的一個個部署或者能力強(qiáng)些的大佬,就是用腳本文件部署,但是看起來還是非常麻煩.

二、Docker部署Jenkins

1.拉取鏡像

這里注意,需要拉取 jenkins/jenkins 不能直接拉取 jenkins 會存在插件包找不到的問題;

docker pull jenkins/jenkins:lts

2.啟動容器

創(chuàng)建本地映射文件夾

mkdir -p /opt/jenkins/workspace

這里默認(rèn)把容器內(nèi)8080端口映射到本地9001端口,8069是我們開發(fā)代碼的端口,因此我這里也映射出來,不需要可以不用映射

 docker run -uroot -d --restart=always -p 9001:8080 -p 8069:8069\
 -v /opt/jenkins/workspace/:/var/jenkins_home/workspace \
 -v /var/run/docker.sock:/var/run/docker.sock \
 --name jenkins jenkins/jenkins:lts

查看是否啟動成功

docker ps

image.png

3.配置Jenkins插件

Jenkins安裝成功后通過訪問主頁即可進(jìn)行環(huán)境配置,如下圖所示;

訪問主頁

地址:http://192.168.1.102:9001/
image.png

查看管理員密碼

# 進(jìn)入jenkins容器
docker exec -it jenkins /bin/bash
# 獲取密碼
cat var/jenkins_home/secrets/initialAdminPassword

安裝插件

選擇安裝推薦的插件,也可以自定義選擇插件(新手不建議),如果第一步拉取的鏡像是jenkins這里就會找不到依賴插件;
image.png
等待安裝完成:
image.png
這里可以不用設(shè)置 點(diǎn)擊下面的使用admin賬號繼續(xù)即可
image.png
這是Jenkins主界面:
image.png

配置Jenkins密鑰

這里配置密鑰的作用是為了取gitlab或其他代碼平臺拉取代碼;
進(jìn)入到j(luò)enkins容器中,執(zhí)行

# 進(jìn)入jenkins容器
docker exec -it jenkins  /bin/bash
# 執(zhí)行生成秘鑰,輸入后一路回車
ssh-keygen -t rsa -C "root"
# 查看公鑰
cat /root/.ssh/id_rsa.pub

image.png
拿到公鑰后放到gitlab中,并點(diǎn)擊添加密鑰按鈕
image.png
測試下拉取項目,顯示可以拉取成功即可

git clone http://xxxxxx.git

image.png

三、配置Jenkins環(huán)境(插件安裝、添加憑據(jù)、系統(tǒng)配置、全局工具配置)

配置jenkins,點(diǎn)擊manager jenkins可以查看到配置中心的設(shè)置,點(diǎn)擊plugins
image.png

安裝Maven插件

image.png

安裝SSH插件

image.png
等待安裝完成;

添加憑據(jù)

憑據(jù)就是賬號密碼,是統(tǒng)一管理賬號密碼的位置,可以添加gitlab的賬號密碼,也可以添加服務(wù)的用戶名密碼等;可以根據(jù)自己的需要新增和刪除;
image.pngimage.pngimage.png
重復(fù)再添加服務(wù)器的賬號和密碼憑據(jù)image.png
顯示效果如下:
image.png

系統(tǒng)配置:

系統(tǒng)配置是為了
image.png
找到兩個配置:
1、SSH remote hosts
2、SSH Servers
image.png
image.png

全局工具配置

配置JDK 和MAVEN
docker安裝的Jenkins的話JDK使用默認(rèn)的,Maven在線安裝即可
image.png

四、Jenkins部署Maven項目

新建項目

image.pngimage.png

項目配置

通用配置

image.png

源碼管理

這里填寫我們倉庫的地址,票據(jù)那里選擇我們上面填寫的gitlab憑據(jù),也可以自己在添加憑據(jù),指定分支這里要注意,gitlab的分支是*/main 這個和github不一樣
image.pngimage.png

構(gòu)建觸發(fā)器

在高級里找到generate按鈕獲取Secret令牌,這個令牌在gitlab設(shè)置webHook時需要用到
image.png
image.png

Build

這里添加參數(shù)的意思是在編譯過程中不執(zhí)行測試類

clean package -Dmaven.test.skip=true

image.png

Post Steps

這部分的設(shè)置是指在jenkins編譯打包完成后執(zhí)行的步驟,我這里執(zhí)行shell腳本來啟動jar包
image.png
image.png
添加構(gòu)建完成后執(zhí)行shell腳本:

# 這行代碼意思是告訴jenkins不要將這個運(yùn)行程序自動殺掉
BUILD_ID=dontKillMe
echo "停止已經(jīng)運(yùn)行的項目"
# 查找正在運(yùn)行的程序并kill掉
ps -ef |grep datasimulationsys-0.0.1-SNAPSHOT.jar |grep -v "grep" |grep -v "/bin/sh"|awk '{print $2}'| xargs kill -9
echo "啟動新項目"
# 進(jìn)入到target目錄并啟動jar包
cd /var/jenkins_home/workspace/fz/target
nohup java -jar datasimulationsys-0.0.1-SNAPSHOT.jar >> aa.txt &
echo "項目啟動成功"

五、Gitlab設(shè)置webHook

打開gitlab,找到項目-設(shè)置-webhook,點(diǎn)擊添加webHook,將上面獲取到的webHook地址和令牌拿到并粘貼到這里,然后出發(fā)來源設(shè)置所有分支(這里可以根據(jù)實際使用分支來進(jìn)行設(shè)置),如果不是SSL就取消SSL驗證,然后點(diǎn)擊保存更改,點(diǎn)擊測試驗證是否通過;
image.pngimage.pngimage.png
點(diǎn)擊測試,如果出現(xiàn)200成功則連接成功,如下圖所示,然后去jenkins中查看是否進(jìn)行了構(gòu)建,
image.png
通過查看Jenkins查看到已經(jīng)構(gòu)建成功了:
image.png

六、常見問題

An error occurred during installation: No such plugin: cloudbees-folder

提示報錯,因為下載的Jenkins.war里沒有cloudbees-folder插件
image.png

正確解決辦法

# 拉取這個鏡像,不要拉取jenkins鏡像就可以了;
docker pull jenkins/jenkins:lts 

其它方法,我使用jenkins鏡像后仍然無法解決

下載插件:http://ftp.icm.edu.pl/packages/jenkins/plugins/cloudbees-folder/
選擇合適的版本下載并上傳到j(luò)enkins容器內(nèi)
將cloudbees-folder.hpi放在/usr/local/tomcatJenkins-8090/webapps/jenkins/WEB-INF/detached-plugins即可,
具體存放的地址可以自行搜索:

 find / -name detached-plugins

然后訪問以下地址重啟jenkins: http://192.168.1.102:9001/restart
image.png
重啟后仍然報錯;

Url is blocked: Requests to the local network are not allowed

如果webHook報如下異常:Url is blocked: Requests to the local network are not allowed
那么在gitlab中添加以下設(shè)置即可:
接著左側(cè)菜單欄-settings-network-outbound requests,選中 Allow requests to the local network from web hooks and services并保存即可
image.pngimage.png

Hook execution failed: Failed to open TCP connection to xxxx:9001

gitlab無法訪問到指定IP和端口,檢查網(wǎng)絡(luò)配置和防火墻設(shè)置;文章來源地址http://www.zghlxwxcb.cn/news/detail-832594.html

到了這里,關(guān)于Jenkins+gitlab實現(xiàn)自動化部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Jenkins+Maven+Gitlab+Tomcat 自動化構(gòu)建打包,部署

    Jenkins+Maven+Gitlab+Tomcat 自動化構(gòu)建打包,部署

    1、安裝服務(wù) Jenkins工具、環(huán)境、插件配置 全局變量配置 Manage JenkinstoolsJDK 安裝 安裝插件 Deploy to container 安裝此插件,才能將打好的包部署到tomcat上 ? ? 配置國內(nèi)mvn源 創(chuàng)建maven項目 1 ?2 ? 3? ? 4? ? 5? ? 6? ? 7? ? 8? ? ?9 10 ?

    2024年02月05日
    瀏覽(33)
  • Jenkins+GitLab+Docker搭建前端自動化構(gòu)建鏡像容器部署

    Jenkins+GitLab+Docker搭建前端自動化構(gòu)建鏡像容器部署

    前言 ?? 需提前安裝環(huán)境及知識點(diǎn): 1、Docker搭建及基礎(chǔ)操作 2、DockerFile文件描述 3、Jenkins搭建及基礎(chǔ)點(diǎn) ?? 目的: 將我們的前端項目打包成一個鏡像容器并自動發(fā)布部署,可供隨時pull訪問 1、在當(dāng)前項目的根目錄創(chuàng)建Dockerfile文件并寫入如下代碼: 代碼片段詳細(xì)描述: 注意

    2024年02月05日
    瀏覽(24)
  • Jenkins+GitLab+Docker搭建前端自動化構(gòu)建鏡像容器部署(無本地證書,映射證書)

    Jenkins+GitLab+Docker搭建前端自動化構(gòu)建鏡像容器部署(無本地證書,映射證書)

    前言 ?? 需提前安裝環(huán)境及知識點(diǎn): 1、Docker搭建及基礎(chǔ)操作 2、DockerFile文件描述 3、Jenkins搭建及基礎(chǔ)點(diǎn) ?? 目的: 將我們的前端項目打包成一個鏡像容器并自動發(fā)布部署,可供隨時pull訪問 1、在當(dāng)前項目的根目錄創(chuàng)建Dockerfile文件并寫入如下代碼: 代碼片段詳細(xì)描述: 注意

    2024年02月15日
    瀏覽(23)
  • 2023全網(wǎng)最細(xì)最全保姆級gitlab+Jenkins+maven自動化部署springboot項目教程

    2023全網(wǎng)最細(xì)最全保姆級gitlab+Jenkins+maven自動化部署springboot項目教程

    如果沒有Linux基礎(chǔ)請仔細(xì)看好每一個步驟,避免出錯,從0到1帶你搭建自動化部署環(huán)境,包括服務(wù)器安裝,自動化部署所需各類軟件安裝配置,詳細(xì)貼出每一步,不斷步驟,讓你一次搭建部署完成,希望這篇文章能給大家?guī)硪欢ǖ膸椭?話不多說開始整 2.0 CentOs安裝 2.0.1 下載VM虛擬機(jī) 我直

    2024年02月08日
    瀏覽(62)
  • Jenkins自動化部署-GitLab拉取代碼 配置ssh代碼拉去方式的密鑰(公私鑰)

    Jenkins自動化部署-GitLab拉取代碼 配置ssh代碼拉去方式的密鑰(公私鑰)

    Jenkins想要通過ssh方式拉去gitlab代碼,則需要在在Jenkins服務(wù)器配置私鑰,gitlab服務(wù)器配置公鑰 使用root用戶生成公鑰和私鑰 在/root/.ssh/目錄保存了公鑰和使用 id_rsa:私鑰文件 id_rsa.pub:公鑰文件 把生成的公鑰放在Gitlab中 以root賬戶登錄-點(diǎn)擊頭像-Settings-SSH Keys 復(fù)制剛才id_rsa.pu

    2024年04月10日
    瀏覽(46)
  • Gitlab自動觸發(fā)jenkins完成自動化構(gòu)建
jenkins

    Gitlab自動觸發(fā)jenkins完成自動化構(gòu)建 jenkins

    ?首先安裝gitlab插件,我已經(jīng)安裝過了,首次請在 可選插件 中進(jìn)行搜索。 ? 進(jìn)入項目配置--構(gòu)建觸發(fā)器: Build when a change is pushed to GitLab. GitLab webhook URL: 請復(fù)制此處的URL,后續(xù)有用。 ?然后點(diǎn)擊高級 ? “Allowed branches”觸發(fā)分支可以用默認(rèn)的全部分支,也可以選擇僅由指定名

    2024年02月16日
    瀏覽(31)
  • docker+jenkins 實現(xiàn)自動化部署

    docker+jenkins 實現(xiàn)自動化部署

    工欲善其事必先利其器,所以前期的準(zhǔn)備工作必須做好,那么我們要實現(xiàn)自動化部署,必須提前準(zhǔn)備什么呢?哈哈哈,可能有一些小伙伴已經(jīng)猜到了,我們需要一臺自己的服務(wù)器,這里博主使用的自己夠買一臺騰訊云的輕量服務(wù)器,折扣完了才一百多塊錢,當(dāng)然小伙伴也可以

    2024年02月06日
    瀏覽(45)
  • Gitee + Jenkins實現(xiàn)前端自動化部署

    Gitee + Jenkins實現(xiàn)前端自動化部署

    這是在window環(huán)境下面實施的,Jenkins安裝自己去網(wǎng)上找( 推薦安裝最新的版本,舊版本下載插件會有兼容問題 ),Jenkins必備插件Git、gitee、NodeJs(中文插件?Chinese需重啟)。以gitee作為代碼倉庫,需要到倉庫中的webHooks作為觸發(fā)。本文借鑒了Gitee + Jenkins自動化實戰(zhàn) | 大前端 -

    2024年02月04日
    瀏覽(25)
  • Jenkins+Docker 實現(xiàn)一鍵自動化部署項目

    Jenkins+Docker 實現(xiàn)一鍵自動化部署項目

    1.安裝Jenkins 注:因為Jenkins容器里的用戶是Jenkins,而主機(jī)用戶不是Jenkins,就算是root也一樣會報錯:/var/jenkins_home/copy_reference_file.log: Permission denied,這個時候就需要在主機(jī)上面給主機(jī)地址賦予訪問Jenkins容器的權(quán)限,Jenkins內(nèi)部用的是uid 1000的user。 -privileged=true讓容器具有root權(quán)限

    2024年02月16日
    瀏覽(31)
  • Jenkins結(jié)合gitlab自動化持續(xù)集成

    Jenkins結(jié)合gitlab自動化持續(xù)集成

    大家好,我是自動化測試?yán)纤緳C(jī)~ 最近在公司有負(fù)責(zé)搭建自動化測試環(huán)境,自動化腳本寫好后,毋庸置疑是需要將自動化腳本進(jìn)行持續(xù)集成測試,能夠根據(jù)企業(yè)的定制化需求,通過Jenkins觸發(fā)執(zhí)行構(gòu)建任務(wù),定時執(zhí)行自動化腳本等,今天就給大家介紹一下Jenkins結(jié)合gitlab進(jìn)行自動

    2024年02月11日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包