成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Jenkins流水線將制品發布到Nexus存儲庫

云計算 云原生 存儲架構
本指南的目的是創建一個工作流,我們可以在該工作流中通過Maven和CI服務器來構建,存儲,管理和監視已編譯的制品。

在本指南中,我們將使用Jenkins作為持續集成服務器,并使用Nexus Repository 作為構建存儲庫。

本指南的目的是創建一個工作流,我們可以在該工作流中通過Maven和CI服務器來構建,存儲,管理和監視已編譯的制品。

在開始之前,請確保您已經啟動并運行了Jenkins。如果您尚未設置Jenkins,請復制以下命令并在啟用Docker的主機上運行它。

docker run -d --name jenkins-ci -p 8080:8080 jenkins/jenkins:lts

在本地/遠程計算機上配置了Jenkins容器后,請瀏覽器打開URL。

http:///your-ip-addr:8080

在首頁,Jenkins將詢問您管理員密碼,您可以通過在終端中運行以下提到的命令來找到該密碼。

docker exec -i jenkins-ci cat /var/jenkins_home/secrets/initialAdminPassword
b5102c8d9fa245dbb0b8da03f504d3a5

請按照指導的步驟完成配置。安全保存用戶名和密碼,以備將來使用。

安裝Nexus制品庫

Nexus是一個存儲庫管理器,可讓您存儲和檢索工件。它使您能夠將構建的工件托管在私有且安全的存儲庫中。

您始終可以使用以下命令獲取Nexus Docker映像:

$ docker pull sonatype/nexus3
Using default tag: latest
latest: Pulling from sonatype/nexus3
cb3c77f9bdd8: Pull complete 
fd8daf2668d1: Pull complete 
fd1ff82b00e8: Pull complete 
2a05f7b573af: Pull complete 
Digest: sha256:6570855dfbc3eb094fe5cbbacec87aa8b91d16394dab627177e1deeebb5ac8ee
Status: Downloaded newer image for sonatype/nexus3:latest
docker.io/sonatype/nexus3:latest

在默認端口8081上運行 sonatype/nexus。請遵循以下命令:

$ docker run -d --name nexus_repo -p 8081:8081 sonatype/nexus3

在新創建的Docker容器中啟動Nexus服務通常需要1-2分鐘。如果您希望按照日志查看Nexus是否已啟動并準備就緒,請運行以下命令:

$ docker logs nexus_repo -f

在日志中,您會看到一條消息:Started Sonatype Nexus OSS 3.20.1-01這意味著您的Nexus Repository Manager可以使用了。現在轉到瀏覽器并打開。

http://your-ip-addr:8081

找到“ 登錄” 選項,如下所示:

圖片

默認用戶名是admin,您需要運行以下命令來獲取密碼:

$ docker exec -i nexus_repo cat /nexus-data/admin.password
502ace93-5450-4f0d-97d2-9b3b3a88d149

就是這樣。您的Nexus Repository Manager可以隨時使用。下一步是創建一個新的存儲庫。

在Nexus中創建存儲庫

在這一步中,您將在Nexus中創建一個Maven托管存儲庫,您的Jenkins將在其中上載“構建”工件。

步驟1:按照以下步驟創建托管存儲庫,并將其命名 maven-nexus-repo,將在本指南中使用。

圖片

從列表中選擇 maven2,如下所示:

圖片

步驟2:在“ 創建存儲庫”頁面上。

  • 輸入名稱為 maven-nexus-repo。
  • 在版本策略中,選擇工件的類型。
  • 在“ 托管” 部分 下的“ 部署策略”中,選擇“ 允許重新部署”。它將允許您多次部署應用程序。

圖片

步驟3:要創建新用戶,請轉到 信息中心>服務器管理員和配置>用戶>創建用戶。選擇  恰好是默認領域的本地用戶類型:

圖片

在“ 創建用戶”頁面中。

  1. ID:輸入所需的ID;在我們的案例中,它是Jenkins用戶。
  2. 名字:輸入所需的名字;就我們而言,就是Jenkins。
  3. :輸入所需的名字;在我們的例子中是用戶。
  4. 電子郵件:輸入您的電子郵件地址。
  5. 狀態:從下拉菜單中選擇 有效
  6. 角色:確保將nx-admin 角色授予 用戶。

至此,我們完成了Nexus Repository Manager的設置部分。讓我們轉到Jenkins在此處設置Nexus。

在Jenkins中安裝和配置Nexus插件

在這里,您將為Jenkins中的Nexus安裝并配置一些插件。為此,請轉到Jenkins,然后轉到 信息中心>管理Jenkins>管理插件>可用, 然后搜索并安裝 Nexus Artifact Uploader 插件。

在Jenkins中添加Nexus Repository Manager的用戶憑據。轉到 儀表板>憑證>系統>全局憑證(不受限制),如下所示:

圖片

接下來,將Maven設置為托管工具。轉到 儀表板>管理Jenkins>全局工具配置, 然后找到 Maven。在此部分下,單擊“ Maven安裝” 按鈕并添加 Maven,如下所示:

圖片

另外,您也可以將Maven二進制文件直接安裝到/var/jenkins_home目錄中的容器中。

創建一條Jenkins流水線
pipeline {
    agent {
        label "master"
    }
    tools {
        maven "Maven"
    }
    environment {
        NEXUS_VERSION = "nexus3"
        NEXUS_PROTOCOL = "http"
        NEXUS_URL = "you-ip-addr-here:8081"
        NEXUS_REPOSITORY = "maven-nexus-repo"
        NEXUS_CREDENTIAL_ID = "nexus-user-credentials"
    }
    stages {
        stage("Clone code from VCS") {
            steps {
                script {
                    git 'https://github.com/javaee/cargotracker.git';
                }
            }
        }
        stage("Maven Build") {
            steps {
                script {
                    sh "mvn package -DskipTests=true"
                }
            }
        }
        stage("Publish to Nexus Repository Manager") {
            steps {
                script {
                    pom = readMavenPom file: "pom.xml";
                    filesByGlob = findFiles(glob: "target/*.${pom.packaging}");
                    echo "${filesByGlob[0].name} ${filesByGlob[0].path} ${filesByGlob[0].directory} ${filesByGlob[0].length} ${filesByGlob[0].lastModified}"
                    artifactPath = filesByGlob[0].path;
                    artifactExists = fileExists artifactPath;
                    if(artifactExists) {
                        echo "*** File: ${artifactPath}, group: ${pom.groupId}, packaging: ${pom.packaging}, version ${pom.version}";
                        nexusArtifactUploader(
                            nexusVersion: NEXUS_VERSION,
                            protocol: NEXUS_PROTOCOL,
                            nexusUrl: NEXUS_URL,
                            groupId: pom.groupId,
                            version: pom.version,
                            repository: NEXUS_REPOSITORY,
                            credentialsId: NEXUS_CREDENTIAL_ID,
                            artifacts: [
                                [artifactId: pom.artifactId,
                                classifier: '',
                                file: artifactPath,
                                type: pom.packaging],
                                [artifactId: pom.artifactId,
                                classifier: '',
                                file: "pom.xml",
                                type: "pom"]
                            ]
                        );
                    } else {
                        error "*** File: ${artifactPath}, could not be found";
                    }
                }
            }
        }
    }
}

讓我們逐一分解上述參數:

  • NEXUS_VERSION:在這里,我們必須提及Nexus的確切版本,可以是nexus2或nexus3。在我們的情況下,它是的最新版本nexus3。
  • NEXUS_PROTOCOL:對于本指南,我們使用了HTTP協議,但是,在正式生產的情況下,您將必須使用HTTPS。
  • NEXUS_URL:添加您的IP地址和端口號,以運行Nexus。確保您添加的Nexus實例詳細信息沒有提及協議,例如https或http。
  • NEXUS_CREDENTIAL_ID:輸入您先前在Jenkins中創建的用戶ID,在本例中為 nexus-user-credentials。
  • Git項目:在階段階段,我們使用了https://github.com/javaee/cargotracker。

在完成管道設置的過程中,是時候開始Build我們的項目了。轉到JenkinsNexus項目作業頁面,然后單擊立即構建。由于這是您的第一個構建,因此將需要一些時間。

一旦構建成功,在Jenkins控制臺輸出中,您將看到類似以下內容:

圖片

而在Nexus Repository Manager中,您會看到類似以下內容:

圖片

對于任何組織而言,一種系統地分發項目工件的方法都是至關重要的。借助Jenkins Pipeline和Nexus Repository Manager,您可以集中管理制品,從而最終減少了重新生成構建時間以及切換CI工具的工作。

Nexus還可以配置有AWS S3和Google Cloud Storage等云存儲服務,從而為您提供了更多的自由度和交付應用程序,而無任何存儲麻煩。

責任編輯:姜華 來源: DevOps云學堂
相關推薦

2021-10-12 08:47:01

Nexus存儲庫管理器DevOps

2017-03-02 14:12:13

流水線代碼Clojure

2018-10-23 16:35:19

華為云

2019-11-07 09:00:39

Jenkins流水線開源

2021-12-24 08:02:48

GitLabCI模板庫流水線優化

2017-02-28 16:00:45

DevOpsMarkdownreST

2023-05-10 15:08:00

Pipeline設計模式

2022-07-18 06:05:28

Gitlab流水線

2017-02-28 15:40:30

Docker流水線Azure

2013-06-06 09:31:52

2024-01-07 12:47:35

Golang流水線設計模式

2021-11-08 07:41:16

Go流水線編程

2021-04-29 08:55:54

GitLabDevOps項目

2021-06-26 14:22:34

Tekton流水線Kubernetes

2022-01-26 08:12:42

Jenkins開源流水線

2023-08-18 10:24:52

GitLabCI 流水線

2020-10-25 11:28:12

開源端到端流水線

2024-05-24 08:11:50

Jenkins用戶權限管理

2021-06-28 06:32:46

Tekton Kubernetes Clone

2021-06-18 05:48:02

Tekton DevopsKubernetes
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 老司机精品福利视频 | 日本中出视频 | 在线播放中文字幕 | 国外成人免费视频 | 亚洲视频一区二区三区 | 欧美日韩在线观看一区 | 日韩欧美成人精品 | 欧美日韩综合视频 | 一级黄色短片 | 日韩精品一二三 | 日本在线免费看最新的电影 | 超碰97免费在线 | 国产av毛片 | 一区二区日本 | 久久精品一区二区 | 色婷婷综合久久久中字幕精品久久 | 天天人人精品 | 精品久久精品 | 成人在线免费观看 | 全部免费毛片在线播放网站 | 欧美a视频 | 国产福利视频导航 | 欧美在线a | 尤物在线| 国产日韩精品在线 | 91av免费观看 | 亚洲欧美日韩成人在线 | 99精品国产一区二区青青牛奶 | 国产精品1 | 亚洲日本一区二区 | 伊人伊人 | 亚洲视频一区在线观看 | 99精品国自产在线观看 | 99久久精品免费看国产高清 | av中文字幕网 | 国产成人精品午夜视频免费 | 99re在线| www.一级片| 青青草国产在线观看 | 成人在线视频网 | 精品入口麻豆88视频 |