前言
本文旨在配置憑據、使用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內容
創建個新的流水線工程
工程描述可以不寫,這里就不表述了,這里直接說說如何使用版本控制中的流水線腳本
使用流水線語法生成器
我准備的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
后記
文章內寫的順序比較亂,流程我重新順一下
- 編寫Jenkinsfile上傳Github(或其它SCM)
- 創建憑據(Jenkinsfile項目或待拉取有密碼的項目)
- 創建Jenkins工程,使用Jenkinsfile的SCM(可使用憑據),自定義工程注釋與參數
- 啟動工程,查看
Console Output
輸出
下篇打算寫下使用現在拉下來的Java項目,用Maven進行構建打包,安裝BlueOcean插件部分
引文
本文系Hellxz學習與實踐文章,禁止布布扣、碼迷、愛碼網等第三方爬蟲網站爬取,轉載請在醒目位置注明出處:https://www.cnblogs.com/hellxz/p/pipeline_pull_project.html