日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Jenkins从下载到部署项目的流程

發布時間:2024/3/13 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Jenkins从下载到部署项目的流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Jenkins安裝配置

1.1 Jenkins介紹

Jenkins 是一款流行的開源持續集成(Continuous Integration)工具,廣泛用于項目開發,具有自動化構建、測試和部署等功能。官網: http://jenkins-ci.org/。

Jenkins的特征:

  • 開源的 Java語言開發持續集成工具,支持持續集成,持續部署。

  • 易于安裝部署配置:可通過 yum安裝,或下載war包以及通過docker容器等快速實現安裝部署,可方便web界面配置管理。

  • 消息通知及測試報告:集成 RSS/E-mail通過RSS發布構建結果或當構建完成時通過e-mail通知,生成JUnit/TestNG測試報告。

  • 分布式構建:支持 Jenkins能夠讓多臺計算機一起構建/測試。

  • 文件識別: Jenkins能夠跟蹤哪次構建生成哪些jar,哪次構建使用哪個版本的jar等。

  • 豐富的插件支持:支持擴展插件,你可以開發適合自己團隊使用的工具,如 git,svn,maven,docker等。

Jenkins安裝和持續集成環境配置

1 )首先,開發人員每天進行代碼提交,提交到Git倉庫

2)然后,Jenkins作為持續集成工具,使用Git工具到Git倉庫拉取代碼到集成服務器,再配合JDK,Maven等軟件完成代碼編譯,代碼測試與審查,測試,打包等工作,在這個過程中每一步出錯,都重新再執行一次整個流程。

3)最后,Jenkins把生成的jar或war包分發到測試服務器或者生產服務器,測試人員或用戶就可以訪問應用。

1.2 Jenkins環境搭建

1.2.1 Jenkins安裝配置

可以導入資料中的鏡像:

服務器用戶名:root 密碼:itcastjenkins 用戶名:itcast 密碼:itcast
  • 采用YUM方式安裝

  • 加入jenkins安裝源:

    sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificatesudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

    執行yum命令安裝:

    yum -y install jenkins
  • 采用RPM安裝包方式

  • Jenkins安裝包下載地址

    wget https://pkg.jenkins.io/redhat-stable/jenkins-2.190.1-1.1.noarch.rpm

    執行安裝:

    rpm -ivh jenkins-2.190.1-1.1.noarch.rpm
  • 配置:

  • 修改配置文件:

    vi /etc/sysconfig/jenkins

    修改內容:

    # 修改為對應的目標用戶, 這里使用的是root $JENKINS_USER="root" # 服務監聽端口 JENKINS_PORT="16060"

    目錄權限:

    chown -R root:root /var/lib/jenkins chown -R root:root /var/cache/jenkins chown -R root:root /var/log/jenkins

    重啟:

    systemctl restart jenkins

    如果啟動失敗, 出現錯誤信息:

    Starting Jenkins bash: /usr/bin/java: No such file or directory

    創建JAVA環境的軟鏈接:

    ln -s /usr/local/jdk/bin/java /usr/bin/java
  • 管理后臺初始化設置

  • http://192.168.200.100:16060/

    需要輸入管理密碼, 在以下位置查看:

    cat /var/lib/jenkins/secrets/initialAdminPassword

    按默認設置,把建議的插件都安裝上

    這一步等待時間較長, 安裝完成之后, 創建管理員用戶:

    配置訪問地址:

    配置完成之后, 會進行重啟, 之后可以看到管理后臺:

    1.2.2 Jenkins插件安裝

    在實現持續集成之前, 需要確保以下插件安裝成功。

    • Maven Integration plugin: Maven 集成管理插件。

    • Docker plugin: Docker集成插件。

    • GitLab Plugin: GitLab集成插件。

    • Publish Over SSH:遠程文件發布插件。

    • SSH: 遠程腳本執行插件。

    安裝方法:

  • 進入【系統管理】-【插件管理】

  • 點擊標簽頁的【可選插件】

  • 在過濾框中搜索插件名稱

  • 勾選插件, 點擊直接安裝即可。

  • 注意,如果沒有安裝按鈕,需要更改配置
    在安裝插件的高級配置中,修改升級站點的連接為: http://updates.jenkins.io/update-center.json 保存

    1.2.3 Git安裝配置

  • yum 安裝方式

  • yum -y install git
  • 采用源碼包方式安裝

    • 安裝依賴包

    yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum -y install gcc perl-ExtUtils-MakeMaker
    • 如果之前有安裝舊版本, 先做卸載, 沒有安裝則忽略

    yum remove git
    • 下載源碼包

    cd /usr/local wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-1.8.3.1.tar.gz tar -xvf git-1.8.3.1.tar.gz

    也可以安裝其他版本, 地址:https://mirrors.edge.kernel.org/pub/software/scm/git/

    • 編譯安裝

    cd git-1.8.3.1 make prefix=/usr/local/git all make prefix=/usr/local/git install echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc source /etc/bashrc
  • 檢查git版本

  • [root@localhost jenkins]# git version git version 1.8.3.1

    1.2.4 Maven安裝配置

  • 下載安裝包

  • 下載地址: https://maven.apache.org/download.cgi

  • 解壓安裝包

  • cd /usr/local unzip -o apache-maven-3.3.9.zip
  • 配置

  • 環境變量配置

    vi /etc/profile

    增加:

    export MAVEN_HOME=/usr/local/maven/apache-maven-3.3.9 export PATH=$PATH:$MAVEN_HOME/bin

    如果權限不夠,則需要增加當前目錄的權限

    chmod 777 /usr/local/maven/apache-maven-3.3.9/bin/mvn

    修改鏡像倉庫配置:

    vi /usr/local/maven/apache-maven-3.3.9/conf/settings.xml

    需要把本機的倉庫打包上傳到服務器上(不上傳會自動下載)

    然后指定上傳后的倉庫配置

    1.2.5 Docker安裝配置

  • 更新軟件包版本

  • yum -y update
  • 卸載舊版本

  • yum -y remove docker docker-common docker-selinux docker-engine
  • 安裝軟件依賴包

  • yum install -y yum-utils device-mapper-persistent-data lvm2
  • 設置yum源為阿里云

  • sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 安裝后查看docker版本

  • docker -v
  • 啟動

  • 設置開機啟動:

    systemctl enable docker

    啟動docker

    systemctl start docker

    2 持續集成生產實踐配置

    2.1 Jenkins工具配置

  • 進入【系統管理】--> 【全局工具配置】

  • MAVEN配置全局設置

  • 指定JDK配置

  • 指定MAVEN 目錄

  • 指定DOCKER目錄

  • 如果不清楚docker的安裝的目錄,可以使用whereis docker 命令查看docker的安裝的目錄

  • 設置遠程應用服務主機

  • 添加憑證:

    新增憑證,輸入用戶名和密碼保存即可

    進入【系統管理】-【系統設置】

    輸入主機名稱和登陸信息, 點擊【check connections】驗證, 如果成功, 會顯示“Successfull connection”。

    所有環境配置完成以后,可以使用maven的命令進行打包

    如果使用 mvn package 則默認加載dev的環境,也可以使用mvn package -P prod 指定環境打包

    2.2 服務集成Docker配置

    每個微服務使用的dockerfile的方式進行構建鏡像后創建容器,需要在每個微服務中添加docker相關的配置

    (1)修改每個微服務的pom文件,添加dockerfile的插件

    <properties><docker.image>docker_storage</docker.image> </properties> <build><finalName>restkeeper-gateway</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.7.0</version><configuration><source>${java.version}</source><target>${java.version}</target></configuration></plugin><plugin><groupId>com.spotify</groupId><artifactId>dockerfile-maven-plugin</artifactId><version>1.3.6</version><configuration><repository>${docker.image}/${project.artifactId}</repository><buildArgs><JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE></buildArgs></configuration></plugin></plugins> </build>

    (2)在每個微服務的根目錄下創建Dockerfile文件,如下:

    # 設置JAVA版本 FROM java:8 # 指定存儲卷, 任何向/tmp寫入的信息都不會記錄到容器存儲層 VOLUME /tmp # 拷貝運行JAR包 ARG JAR_FILE COPY ${JAR_FILE} app.jar # 設置JVM運行參數, 這里限定下內存大小,減少開銷 ENV JAVA_OPTS="\ -server \ -Xms256m \ -Xmx512m \ -XX:MetaspaceSize=256m \ -XX:MaxMetaspaceSize=512m" # 入口點, 執行JAVA運行命令 ENTRYPOINT java ${JAVA_OPTS} -jar /app.jar

    2.3 基礎依賴打包配置

    在微服務運行之前需要在本地倉庫中先去install所依賴的jar包,所以第一步應該是從git中拉取代碼,并且把基礎的依賴部分安裝到倉庫中

    (1)新創建一個item,起名為restkeeper

    (2)配置當前reskeeper

    • 描述項目

    • 源碼管理:

    選中git,輸入git的倉庫地址(前提條件,需要把代碼上傳到gitee倉庫中),最后輸入getee的用戶名和密碼

    如果沒有配置Credentials,可以選擇添加,然后輸入用戶名密碼即可

    • 其中構建觸發器構建環境暫不設置

    • 設置構建配置

    選擇Invoke top-level Maven targets

    maven版本:就是之前在jenkins中配置的maven

    目標:輸入maven的命令 clean install -Dmaven.test.skip=true 跳過測試安裝

    (3)啟動項目

    創建完成以后可以在主頁上看到這個item

    啟動項目:點擊剛才創建的項目,然后Build Now

    在左側可以查看構建的進度:

    點進去以后,可以查看構建的日志信息

    構建的過程中,會不斷的輸入日志信息,如果報錯也會提示錯誤信息

    jenkins會先從git倉庫中拉取代碼,然后執行maven的install命令,把代碼安裝到本地倉庫中

    最終如果是success則為構建成功

    2.4 運營端后臺部署

    (1)新建item,創建restkeeper_operator_service微任務任務

    (2)配置

    • 概述

    • 源碼管理

    • 構建

    配置maven

    執行maven命令:clean install -Dmaven.test.skip=true dockerfile:build -f restkeeper_service/restkeeper_operator/pom.xml

    -Dmaven.test.skip=true 跳過測試
    -P prod 指定環境為生成環境
    dockerfile:build 啟動dockerfile插件構建容器
    -f restkeeper_service/restkeeper_operator/pom.xml 指定需要構建的文件(必須是pom)

    執行shell命令

    if [ -n "$(docker ps -a -f name=$JOB_NAME --format '{{.ID}}' )" ]then#刪除之前的容器docker rm -f $(docker ps -a -f name=$JOB_NAME --format '{{.ID}}' ) fi# 清理鏡像 docker image prune -f # 啟動docker服務 docker run -d --net=host --name $JOB_NAME docker_storage/$JOB_NAME

    這里不是只單純的啟動服務, 我們要考慮每次構建, 都會產生鏡像, 所以要先做檢查清理, 然后再啟動服務。

    Docker有五種網絡連接模式, 因為我們不是所有服務都采用docker構建, 中間件服務部署在宿主機上面, 這里我們采用host模式, 這樣docker容器和主機服務之間就是互通的。

    • bridge模式

    使用命令: --net=bridge, 這是dokcer網絡的默認設置,為容器創建獨立的網絡命名空間,容器具有獨立的網卡等所有單獨的網絡棧,這是默認模式。

    • host模式

    使用命令: --net=host,直接使用容器宿主機的網絡命名空間, 即沒有獨立的網絡環境。它使用宿主機的ip和端口。

    • none模式

    命令: --net=none, 為容器創建獨立網絡命名空間, 這個模式下,dokcer不為容器進行任何網絡配置。需要我們自己為容器添加網卡,配置IP。

    • container模式

    命令: --net=container:NAME_or_ID, 與host模式類似, 這個模式就是指定一個已有的容器,共享該容器的IP和端口。

    • 自定義模式

    docker 1.9版本以后新增的特性,允許容器使用第三方的網絡實現或者創建單獨的bridge網絡,提供網絡隔離能力。

    到此就配置完畢了,保存即可

    (3)啟動該項目 Build Now

    • 首先從git中拉取代碼

    • 編譯打包項目

    • 構建鏡像

    • 創建容器

    • 刪除多余的鏡像

    編譯過程

    構建成功

    2.5 運營端web工程部署

    可以參考restkeeper_operator微服務創建其他微服務,每個項目可能會有不同的maven構建命令,請按照實際需求配置

    • restkeeper_operator_web微服務的配置:

    maven命令:clean install -Dmaven.test.skip=true dockerfile:build -f restkeeper_web/restkeeper_operator_web/pom.xml

    部署成功后

    2.6 網關部署

    可以參考restkeeper_operator微服務部署restkeeper_gateway

    maven命令:clean install -Dmaven.test.skip=true dockerfile:build -f restkeeper_gateway/pom.xml

    構建成功

    http://192.168.200.100:9000/#/stacks

    2.7 測試

    返回結果

    總結

    以上是生活随笔為你收集整理的Jenkins从下载到部署项目的流程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。