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

Gitlab+Jenkins自動化部署,解放雙手

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

項目打包

? 在部署項目前需要對源碼進行打包,一個簡單的SpringBoot項目默認是打包為jar包,也就是在pom.xml中的<packaging>jar</packaging>方式,當然也會有一些打包成war包方式,使用外置的Tomcat應用服務器部署war包,那么就是<packaging>war</packaging>。

在父子類聚合項目中,父工程的pom.xml文件中的打包方式就需要改為pom,如下:

<packaging>pom</packaging>

那么所有的子工程pom.xml中,就需要改為jar方式,或者war

jar包是默認的打包方式,子工程如果是打包成jar包那么不需要改任何配置,war包時如下配置

<packaging>war</packaging>

并且所有的子工程中需要,導入maven插件配置

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
                <layout>JAR</layout>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                    <configuration>
                        <attach>false</attach>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

執(zhí)行打包

在具有maven環(huán)境的情況下,到父工程pom.xml文件所在目錄下執(zhí)行

mvn clean package

即可將此父工程下所有子工程進行打包,假如這里得到了三個jar包為consumer.jar、provider1.jar、provider2.jar

那么就可以手動執(zhí)行部署了。

命令行部署

使用命令行方式去部署3個jar包,可以說非常簡單,但還要考慮項目中需要的一些環(huán)境:

  • 服務器需要由java的jdk環(huán)境,能使用java命令
  • 假如項目中用到了nacos,那么還需要做好nacos環(huán)境的配置及服務的啟動
nohup java -jar consumer.jar > consumer.logs.log 2 >&1 &
nohup java -jar provider1.jar > provider1.logs.log 2 >&1 &
nohup java -jar provider2.jar > provider2.logs.log 2 >&1 &

nohup:不掛斷運行

> xxx.logs.log 2 > &1 &:將程序日志輸出到某個位置并且后臺運行。

那么這些都是手動運行,目前而言大多都采用了自動化部署。

Jenkins

手動運行需要每次都去上傳jar包,然后更新jar重啟服務。若服務數量較少還比較好,一旦遇到微服務多jar包情況下,手動就會顯得很繁瑣而無助。或者說可以采用shell腳本的方式去部署,但這都不是最優(yōu)秀的解決方案??梢允褂肑enkins部署運行服務。

介紹

Jenkins的前身是Hudson。Jenkins是一款較為流行的開源持續(xù)集成工具,地位幾乎可以說是CI&CD軟件領導者,已經超過了Hudson,它擁有超過1000個插件來支持項目的構建和部署。幾乎可以適用于所有的項目,沒有項目編程語言的限制。

CI&CD:

  • 持續(xù)集成(Continuous Integration,CI):指的是團隊成員每天一次或多次把代碼集成到主干。每次集成會自動構建,盡快盡早發(fā)現錯誤。持續(xù)集成是為了讓產品快速迭代,同時保證高質量。
  • 持續(xù)交付(Continuous Delivery):指的是持續(xù)將新的功能部署到類生產環(huán)境(可理解為測試環(huán)境qa、uat),交給質量團隊或用戶,交給它們評審
  • 持續(xù)部署(Continuous Deployment):指的是通過評審后,自動部署到生產環(huán)境中

Jenkins的特性:

  • 系統(tǒng)平臺無關性:Jenkins本身是由Java語言編寫,理論上只要由java的運行環(huán)境,就能使用Jenkins
  • 編程語言無關性:支持多種編程語言的項目持續(xù)集成、持續(xù)部署,而非只有java一種
  • 安裝和配置簡單:可以通過yum安裝或war包、Docker方式等,由簡潔易用的web界面完成配置
  • 插件豐富:擁有超過1000個插件,幾乎可以滿足任何項目的需要
  • 容易擴展:Jenkins可以通過其插件架構進行擴展,為用戶提供無限可能
  • 分布式構建:Jenkins能使多臺服務器一起構建
  • 消息通知:構建完成后發(fā)送email通知結果

下載和安裝

Jenkins的官網地址是https://www.jenkins.io/,下載軟件包的地址https://www.jenkins.io/download/。推薦下載LTS(長期支持)版本。筆者這里選擇Generic Java package(.war),只需要java環(huán)境即可。

當然要注意你選擇版本要和你本地的jdk環(huán)境的兼容關系:

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

筆者是java8的環(huán)境,選擇一款適用的jenkins版本即可。筆者選擇2.346.3版本。

提供下下載地址:https://get.jenkins.io/war-stable/2.346.3/jenkins.war

運行

  • war包下載完畢后,不需要額外的步驟(前提是有java環(huán)境),是可以直接運行的
java -jar jenkins.war --httpPort=8085
  • –httpPort是設置程序端口號,若要使程序不掛斷后臺運行,可以這樣執(zhí)行
nohup java -jar jenkins.war --httpPort=8085 > jenkins-logs.log 2 >&1 &

服務運行后,成功訪問UI頁面,記得需要打開防火墻的端口哦

firewall-cmd --permanent --zone=public --add-port=8085/tcp
firewall-cmd --reload
  • 打開jenkins的UI地址(筆者這里是http://192.168.1.41:8085)

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

我們需要去上面的相應文件中去找到密碼,然后填寫,確定即可。

注意:第一次啟動Jenkins會初始化去下載一些元(metadata)數據,打開界面時提示等待大概4分鐘,等待期間,使用F12調試時,看到報錯503是正?,F象。等待日志打印Jenkins is fully up adn running 即可

  • 下一步會讓用戶安裝插件,若是新手可以選擇Jenkins推薦的插件,可以減少很多的步驟。筆者這里也選擇推薦的插件了,唯一的缺點是下載的東西多,稍微會慢點。

  • 完成后創(chuàng)建一個管理員用戶

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

Jenkins配置

Jenkins初始化完成后,還需要配置一些全局工具,如jdk,maven,git。在Jenkins后臺頁面點擊Manage Jenkins,再點擊Global Tool Configuration配置全局工具JDK、maven、git

配置maven

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

找好你的settings.xml文件的路徑,配置到這里即可。然后再去配置maven的路徑

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

注意:如果你的maven的bin目錄沒有可執(zhí)行的權限,要記得增加可執(zhí)行權限,否則執(zhí)行命令時會報錯:Permission denied,可以在maven的根目錄下使用命令賦權:chmod +x -R bin

配置jdk

直接輸入JAVA_HOME的安裝地址即可

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

最后配置git的目錄,記得先安裝git

yum install -y git

使用yum安裝的git,目錄是/usr/bin/git

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

GitLab簡介&安裝

持續(xù)集成一般有3個組成的要素:

  • 一個自動構建的過程,代碼檢出、編譯構建等過程都是自動完成,無需人工
  • 一個代碼存儲庫(SVN或git)
  • 一個持續(xù)集成服務器(如Jenkins)

現在還缺少一個代碼存儲庫。在企業(yè)中為了掌握代碼的所有權,一般都會自動搭建代碼存儲庫??梢允褂肎itlab。

GitLab使用git作為代碼管理工具,并且在此基礎上開發(fā)了Web管理頁面來進行項目管理。

與github最大的不同是,gitlab部署在自己的服務器上,所有權都是掌握在自己手中。

采用yum方式安裝GitLab

  • 安裝需要的依賴和設置ssh開機自啟動,開啟ssh及配置防火墻
yum install -y curl policycoreutils-python openssh-server
systemctl enable sshd
systemctl start sshd
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
systemctl reload firewalld
  • 安裝Postfix并設置開機自啟動、開啟Postfix,便于郵件通知
yum install -y postfix
systemctl enable postfix
systemctl start postfix
  • 添加Gitlab軟件包存儲庫并安裝軟件包
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | bash
  • 配置Gitlab訪問地址并安裝Gitlab(http://192.168.1.41是gitlab訪問地址)
EXTERNAL_URL="http://192.168.1.41" yum install -y gitlab-ee
  • 打開防火墻端口(或關閉防火墻)
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --reload
  • 完成后,打開http://192.168.1.41,第一次進入時需要去/etc/gitlab/initial_root_password找下初始化密碼,然后登錄即可

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

Docker方式安裝Gitlab

使用Docker方式安裝Gitlab是比較快捷的方式,如下命令即可:

mkdir -p /data/gitlab # 先創(chuàng)建gitlab存儲數據、配置、日志的目錄

docker run -d --hostname 192.168.1.41:80 --publish 443:443 --publish 80:80 --publish 23:22 --name gitlab --restart always --volume /data/gitlab/config:/etc/gitlab --volume /data/gitlab/logs:/var/log/gitlab --volume /data/gitlab/data:/var/opt/gitlab gitlab/gitlab-ee:latest

-d : 后臺運行

–hostname:gitlab服務地址

–publish或-p:宿主機和容器的端口映射

–name 設置容器名稱

–volume或-v:宿主機和容器的目錄映射

–restart always: 開機自啟

Gitlab常用命令

  • gitlab-ctl start:啟動
  • gitlab-ctl stop:停止
  • gitlab-ctl status:查看
  • gitlab-ctl restart:重啟

Jenkins+Gitlab部署運行

現在已經有了存儲庫,然后創(chuàng)建git倉庫把項目上傳到Gitlab上面。

git init 
git remote add origin http://192.168.1.41/root/jenkins-demo.git
git add .
git commit -m "Initial commit"
git push -u origin main

這些就比較簡單了,筆者這里不再贅述了。直接展示下項目的目錄

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

需要注意的是:如果普通用戶push代碼,可能會沒有權限,管理員設置下即可。

Jenkins頁面創(chuàng)建任務

  • 在Jenkins頁面點擊新建項目(New Item),輸入項目名稱(名稱隨便取,別重復)。選擇自由風格項目。

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

  • 在General一欄輸入描述,可以任意填寫,重要的是源代碼管理,倉庫地址就填寫gitlab的項目地址,然后添加你的gitlab賬號的憑證(賬號密碼)。
  • 完成后,下面有一個分支選擇,選擇你要部署的分支即可。

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

  • 來到構建這一欄,點擊添加構建步驟,選擇Invoke toplevel maven targets(調用頂層 Maven 目標)項,maven版本選擇配置好的,目標Goals填寫clean package

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

這里的maven命令不需要添加mvn,請注意!!

  • 打包完成后,就可以運行jar包了,再增加一個構建步驟,選擇Excecute shell,執(zhí)行shell命令,在Command輸入以下命令,考慮到可能出現第二次部署時,需要把上一次的jar停止,那么命令如下
#!/bin/bash
# 先停止進程
ps -ef |grep consumer |grep -v 'grep' | awk '{print $2}' | xargs kill -s 15
ps -ef |grep provider-8001 |grep -v 'grep' | awk '{print $2}' | xargs kill -s 15
ps -ef |grep provider-8002 |grep -v 'grep' | awk '{print $2}' | xargs kill -s 15
sleep 5s	# 5s后再啟動
BUILD_ID=dontKillMe	# 表示別干掉啟動的程序
cd consumer/target/
nohup java -jar consumer-1.0-SNAPSHOT.jar > consumer.logs.log 2 >&1 &
cd ../../provider-8001/target/
nohup java -jar provider-8001-1.0-SNAPSHOT.jar > provider1.logs.log 2 >&1 &
cd ../../provider-8002/target/
nohup java -jar provider-8002-1.0-SNAPSHOT.jar > provider2.logs.log 2 >&1 &

完事后,保存即可。

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

  • 點擊立即構建,即可

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

同時還可以去看日志信息:

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

我們可以到服務器上看下程序有沒有啟動成功

ps -ef |grep java

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

成功部署了三個jar包。

Webhook網絡鉤子

當我們需要每次提交合并代碼時,自動進行項目部署時,可以使用網絡鉤子Webhook完成我們的需求。

大致流程就是:Jenkins提供一個地址,當代碼有更新時代碼存儲庫(gitlab)主動調用一次這個地址,觸發(fā)Jenkins構建即可。

需要在Jenkins上面安裝Generic Webhook Trigger插件

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

到項目主界面,點擊配置,到構建觸發(fā)器那里,選擇Generic Webhook Trigger一項,然后添加一個Token(隨便寫,但不要重復了)

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

那么,構建的URL格式如下:

http://JENKINS_URL/generic-webhook-trigger/invoke/invoke?token=剛剛自定義的Token

JENKINS_URL:是JENKINS的訪問地址。

此項目中就是如下

http://192.168.1.41:8085/generic-webhook-trigger/invoke/invoke?token=nihaowoshichufaqi

回到gitlab

因為Gitlab10.6版本后,為了安全,默認不允許向本地網絡發(fā)送Webhook請求,這里因為筆者是把gitlab和jenkins安裝到一臺服務器了,所以這里先允許發(fā)送本地網絡webhook。

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

到gitlab項目中,設置webhook即可。這里暫時寫所有分支push時觸發(fā)了,實際可以按照項目情況執(zhí)行。

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化

配置完成

完成后,即可提交任意分支的代碼,看到jenkins已經自動觸發(fā)構建了,并且jar也重新啟動了

Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化
Gitlab+Jenkins自動化部署,解放雙手,運維,gitlab,gitlab,jenkins,自動化文章來源地址http://www.zghlxwxcb.cn/news/detail-728143.html

到了這里,關于Gitlab+Jenkins自動化部署,解放雙手的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • Jenkins+gitlab實現自動化部署

    Jenkins+gitlab實現自動化部署

    Jenkins 是一個用 Java 編寫的開源自動化工具,帶有用于持續(xù)集成的插件。用于持續(xù)構建和測試您的軟件項目,從而使開發(fā)人員更容易將更改集成到項目中,并使用戶更容易獲得新的構建。它還允許您通過與大量測試和部署技術集成來持續(xù)交付軟件。 Jenkins 集成了各種開發(fā)生命

    2024年02月21日
    瀏覽(28)
  • Jenkins + Gitlab 實現項目自動化構建及部署

    Jenkins + Gitlab 實現項目自動化構建及部署

    ? 通俗來講就是本地項目 push 到 gitlab 后, Jenkins 能夠識別到項目的更新并自動構建部署; ?本文以實際操作的方式來表述詳細配置過程及避開配置 Jenkins 時的坑. 默認電腦已經安裝了虛擬機, 默認gitlab 上已經有了你想要部署的項目, 部署了 maven 和 jdk 并配置了環(huán)境變量!!! 1 執(zhí)行

    2024年02月16日
    瀏覽(24)
  • Gitlab + Docker + Jenkins + Harbor實現自動化部署

    Gitlab + Docker + Jenkins + Harbor實現自動化部署

    目錄 文章目錄 前言 一、第一臺服務器--Jenkins 1、安裝前 2、安裝Jenkins 3、修改正在跑容器的端口 4、Jenkins內部插件和配置? 二、第二臺服務器--Harbor 1、安裝docker-compose 2.安裝及配置 3、卸載Harbor? 4、Harbor啟動后操作 三、第三臺服務器--生產環(huán)境? 1、配置私服地址 四、Jenkin

    2024年02月14日
    瀏覽(23)
  • Jenkins+Maven+Gitlab+Tomcat 自動化構建打包,部署

    Jenkins+Maven+Gitlab+Tomcat 自動化構建打包,部署

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

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

    Jenkins+GitLab+Docker搭建前端自動化構建鏡像容器部署

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

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

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

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

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

    2023全網最細最全保姆級gitlab+Jenkins+maven自動化部署springboot項目教程

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

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

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

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

    2024年04月10日
    瀏覽(47)
  • 解放你的雙手,讓 ChatGPT 來幫你完成 Jenkins 到極狐GitLab CI 的遷移

    解放你的雙手,讓 ChatGPT 來幫你完成 Jenkins 到極狐GitLab CI 的遷移

    目錄 可用的 Jenkinsfile ChatGPT 大發(fā)神威 極狐GitLab CI/CD 驗證結果 自從 ChatGPT 閃亮登場以來,各種基于它的軟件擴展紛至沓來。愛折騰的極狐GitLab 開發(fā)者們,也花式玩轉起了 ChatGPT + 極狐GitLab,讓研發(fā)工作更高效。 之前我們分享了?如何利用極狐GitLab CI/CD 完成 Jenkins 的遷移。今

    2024年02月04日
    瀏覽(21)
  • Gitlab自動觸發(fā)jenkins完成自動化構建
jenkins

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

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

    2024年02月16日
    瀏覽(31)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包