Jenkins教程(三)添加憑據與流水線拉取Git代碼


前言

本文旨在配置憑據使用Git倉庫中的Jenkinsfile使用聲明式流水線拉取Git代碼

使用SVN等其他版本控制工具,請參考使用Pipeline-Syntax生成對應代碼塊

憑據(credentials)是什么

憑據(credentials)是訪問其他系統的認證信息,可以是賬號/密碼、SSH密鑰、加密文件等,Jenkins可以通過設置的憑據與其它第三方應用進行認證,在可信與可控的范圍內,完成第三方交互。

Jenkins可以存儲以下類型的credentials:

  • Secret text - API token之類的token (如GitHub個人訪問token),
  • Username and password - 可以為獨立的字段,也可以為冒號分隔的字符串:username:password
  • Secret file - 保存在文件中的加密內容
  • SSH Username with private key - SSH 公鑰/私鑰對,
  • Certificate - a PKCS#12 證書文件 和可選密碼
  • Docker Host Certificate Authentication - Docker 倉庫認證信息

為什么添加憑據

為了最大限度地提高安全性,在Jenins中配置的 credentials 以加密形式存儲在Jenkins 主節點上(用Jenkins ID加密),並且只能通過 credentials ID在Pipeline項目中獲取

這最大限度地減少了向Jenkins用戶公開credentials真實內容的可能性,並且阻止了將credentials復制到另一台Jenkins實例

企業的代碼一般會存在自己公司的版本控制私服,一般都會輸入賬號密碼,在腳本中直接暴露賬號密碼是非安全的

如何添加憑據

添加憑據在Jenkins中只能添加全局憑據

  • 首先需要確保當前的登錄的用戶擁有創建憑據權限的能力

能看到以下的憑據,可以點,基本上是會有權限的,不排除使用更精細的權限控制只讀的情況

一般而言,管理員用戶擁有此權限

  • 點擊憑據->系統->全局憑據

  • 點擊左上角添加憑據,添加用戶名與密碼,確定,完成創建憑據

    類型(kind)參考上小節中類型的介紹,這里以Username with password演示

    注意:描述不要寫!描述不要寫!描述不要寫!這是Jenkins的bug,第一次創建時如果寫描述會卡住,無法登錄!ID會自動生成,不要管

確定,如下圖所示添加憑據成功

使用保存在版本控制的Jenkinsfile

這里使用Github上的代碼進行演示,雖然沒有使用私服或私有倉庫,只為演示效果

為了演示下Jenkinsfile放在Git上是如何使用的,這里新創建了一個Git的倉庫用來保存以后的Jenkinsfile內容

https://github.com/hellxz/JenkinsfileTutorials

創建個新的流水線工程

工程描述可以不寫,這里就不表述了,這里直接說說如何使用版本控制中的流水線腳本

使用流水線語法生成器

我准備的Jenkinsfile倉庫中的Jenkinsfile,這里只拉取一個簡單的Springboot的demo

pipeline {
    agent any
    stages{
        stage('Pull Git Demo') {
            steps{
				//拉取代碼,這里也是可以使用憑據的,為了方便沒貼出來
            	git 'https://github.com/hellxz/springboot-demo1.git'
            }
        }
   }
}

git 'https://github.com/hellxz/springboot-demo1.git'這行代碼是由Pipeline-Syntax生成的

入口在上邊配置工程的最下邊,如圖 流水線語法

流水線語法使用示意

最后我們把生成好的代碼,整合到我們的Jenkinsfile中,提交到Git倉庫中

啟動構建工程 查看代碼拉取結果

回到Classic UI -> Build Now 開始構建,構建完成,提示沒有錯誤,點開最新的構建#1

-> Console Output

后記

文章內寫的順序比較亂,流程我重新順一下

  1. 編寫Jenkinsfile上傳Github(或其它SCM)
  2. 創建憑據(Jenkinsfile項目或待拉取有密碼的項目)
  3. 創建Jenkins工程,使用Jenkinsfile的SCM(可使用憑據),自定義工程注釋與參數
  4. 啟動工程,查看Console Output輸出

下篇打算寫下使用現在拉下來的Java項目,用Maven進行構建打包,安裝BlueOcean插件部分

引文

Jenkins官方文檔 使用 credentials

本文系Hellxz學習與實踐文章,禁止布布扣、碼迷、愛碼網等第三方爬蟲網站爬取,轉載請在醒目位置注明出處:https://www.cnblogs.com/hellxz/p/pipeline_pull_project.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM