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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

持续集成之jenkins基础

發布時間:2025/4/14 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 持续集成之jenkins基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Jenkins基本概念
- 基于JAVA開源的自動化系統平臺
  - 在servlet容器中運行,如apache tomcat
- 提供CI,CD任務及流水線的服務
  - 所有類型的任務:構建、測試、部署等
  - apache ant和apache maven項目以及任意shell腳本和windows批處理命令
- 支持各種SCM源碼控制工具
  - git,subversion,cvs,perforce,clearcase,rtc等
- 豐富的插件生態系統支持功能擴展
  - 1400+插件,含SCM,測試,通知,報告,artifact,觸發,外部集成等
- 基于web的管理和使用界面
- 源于Hudson
  - Hudson由Sum公司在2004年啟動,第一個版本基于2005在java.net發布
  - 2010年11月期間,Oracle對Sun的收購,引起商標權之爭
  - 2011年1月29日,項目名稱從"hudson"改為"jenkins"



Jenkins的使用原因
- jenkins本身就是一個高度可配置的系統
- 由開發者主導、面向開發者、全開源
- 治理(獨立董事會)和社區
- 穩定性
  - LTS長期支持發布線
  - 每三個月發布一次穩定版本
- 插件的平臺
  - 1400多件插件

?

Jenkins的特點
- 免費且開源
- 與Jenkins共享了很多多代碼,安裝還是挺簡單的關鍵的環境變量可以安全存儲
- 支持多個SCM,包括SVM,Mercurial,Git
- 集成了Github和Bitbucket
- 高度可配置
- 資源和教程很多
- 安裝運行簡單
- 分布式的構建也能高效運行
- 可跨平臺部署
- 很多高質量的插件
- 得獎無數
- 龐大的社區
釋:SCM http://www.cnblogs.com/itech/archive/2011/08/02/2125032.html

?

Jenkins工作流程
創建一個項目時,操作選項
- 通用配置
  - 工作空間管理,參數化設置,工具配置等全局管理
- 源碼管理
  - 配置代碼源
- 構建觸發器
  - 與版本控制服務器集成,自動觸發構建
  - 或者基于其他項目生成輪詢,定時構建
- 構建環境
- 構建
  - 運行shell腳本,python/groovy等腳本,ant/maven/gradle等
- 構建后操作
  - 制品歸檔
  - 發布JUnit測試結果和javadoc
  - 直接部署到生產或測試環境
  - 電子郵件(或即時工具IM等)通知相關人
  - 觸發其他的子任務或者下游任務

?

Jenkins的使用對象
- jenkins是一個工具,任何人都可以很快上手
- 建議以下團隊或個人掌握jenkins
  - 負責建設產品持續集成/交付流水線的人員(SCM,release/DevOps Engineer)
  - 領導敏捷團隊的敏捷管理者,希望理解諸如持續集成/交付等概念
  - 在DevOps領域內探索
  - 想成為"jenkins developer"的開發人員、管理人員

?

Jenkins安裝和運行
- 支持以下平臺的OS
  - docker
  - war
  - macOS
  - Linux
  - Windows
  - Solaris,OmniOS,SmartOS

安裝準備
- 最低硬件需求
  - 256MB內存
  - 1GB磁盤空間(Docker安裝方式需要至少10GB)
- 推薦硬件需求
  - 1GB + 內存
  - 50GB + 磁盤空間
- 軟件需求
  - Java 8 -JRE/JDK均可
  - 注:Docker方式無需單獨安裝java

(1).Docker方式
- macOS/Linux

docker run -u root --rm -d -p 8080:8080 --name jenkinsci \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean下載完后執行 - docker exec -it jenkinsci bash

- windows

docker run -u root --rm -d -p 8080:8080 --name jenkinsci ^ -v jenkins-data:/var/jenkins_home ^ -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean- 打開瀏覽器 訪問http://localhost:8080 - 安裝完成后根據向導進行初始化配置

(2).WAR文件安裝方式 - 推薦使用
- 本方式適用于任何java的操作系統或者平臺
- 下載最新的jenkins war包
  http://mirrors.jenkins.io/war-stable/latest/jenkins.war
- 運行命令

  java -jar jenkins.war #默認使用8080端口java -jar jenkins.war --httpPort=49001 #指定端口

- 打開瀏覽器訪問:http://localhost:8080
- 安裝完成后根據向導進行初化配置

(3).WAR文件安裝方式 -Java servlet containers
- 本方式適用于Jenkins部署到已經在Java servlet container內
- 可以運行Jenkins的Java servlet container為
  - Glassfish
  - Tomcat
  - JBoss
  - IBM WebSphere
  - Jetty
  - Jonas
  - Weblogic
  - Apache Geronimo 3.0
  - Liberty profile
打開瀏覽器訪問: http://localhost:8080
安裝完成后根據向導進行初始化配置

bash-4.4# cat /var/jenkins_home/secrets/initialAdminPassword f822a0557c364ab0a05a8bb77574a8d0

(4)、windows安裝
- 下載最新msi安裝文件
  http://mirrors.jenkins.io/windows/latest
- 解壓文件,雙擊msi根據指示進行安裝
- 打開瀏覽器 訪問http://localhost:8080

?

如何安裝插件
- 系統管理-插件管理-可選插件(有還沒安裝)
- 根據需要選擇安裝的插件
- 點擊直接安裝或下載待重啟安裝

?

job使用介紹
- job類型
- 配置SCM(source code management)
- git/svn
- 構建觸發器

?

主要的Job類型
- freestyle project
  自由風格項目,jenkins最主要的項目類型
- maven project
  maven項目專用,類似freestyle,更簡單
- multi-configuration project
  多配置項目,適合需要大量不同配置(環境,平臺等)構建
- pipeline
  流水線項目,適合使用Pipeline(workflow)插件功能構建流水線任務,或者使用freestyle project不容易實現的復雜任務
- multibranch pipeline
  多分支流水線項目,根據SCM倉庫中的分支創建多個pipeline項目

?

Freestyle項目
- General
  項目基本配置
  項目名字,描述,參數,禁用項目,并發構建,限制構建默認node等
- Source code managemet
  代碼庫信息,支持Git,Subversion等
- Build Triggers
  構建觸發方式
  周期性構建,poll scm,遠程腳本觸發構建,其他項目構建結束后觸發等
- Build Environment
  構建環境相關設置
  構建前刪除workspace,向Console輸出添加時間戳,設置構建名稱,插入環境變量等
- Build
  項目構建任務
  添加1個或者多個構建步驟
- Post-build Actions
  構建后行為
  Artifact歸檔,郵件通知,發布單元測試報告,觸發下游項目等
注:restrict where this project can run 限定這個項目只能在某個節點上運行

?

Source Code Manaagement
- git
- Subversion
- 其他80+插件支持其他SCM系統

?

Git 全局配置
- Build Node上安裝Git tool
- Global Tool Configuration配置

?

常用的Triggers
- Build periodically
  設定類似Cron周期性時間觸發構建
- Poll SCM
  設定類似Cron周期性時間觸發檢查代碼變化,只有當代碼變動時才觸發構建
- Hooks
  gitlab hooks
  github hooks
- Events
  Gerrit events 時件觸發

?

安全管理策略
- 安全概述
- 認證和授權
- 訪問控制
- 忘記密碼處理

?

安全概述
1.X默認配置下,沒有開啟安全檢查(任何人都可以去查看)
2.X默認開啟安全檢查
Jenkins提供了兩種維度的安全策略
- 用戶認證
  Security Realm(安全域):決定用戶名和密碼,且指定用戶屬于的組(允許的登陸用戶)
- 權限控制
  Authorization Strategy(授權策略):分配用戶執行某些操作的權限
如何進入Jenkins安全控制界面:
  系統管理(manage jenkins)-->configure global security -->啟用安全(enable security)

訪問控制詳述:
安全域:
Jenkins專有用戶數據庫:公司中用戶比較少的情況
公司規模使用人員多推薦使用AD或者LDAP
Servlet容器代理:比較老的或者容器代理的使用

授權策略:
Role-based strategy:設置創建一定的用戶策略,針對不同的用戶指定不同的角色,進行不同權限管理
任何用戶可以做任何事(沒有任何限制):即使沒有登陸
安全矩陣:設置一個安全的矩陣,比較復雜,推薦使用
登陸用戶可以做任何事:即使是管理員的操作
遺留模式:舊版本使用
項目矩陣授權策略:比較細的授權策略,創建項目的admin可以創建一些比較細的項目級權限限制

?

忘記密碼的處理
如果權限設置錯誤,或者忘記密碼,導致admin自己都無法登陸Jenkins的處理
- 命令行停止Jenkins
- 先備份$JENKINS_HOME中的config.xml
- 用編輯器打開$JENKINS_HOME中的config.xml
- 將<useSecurity>true</useSecurity>元素中的true改為false
- 將<authorizationStrategy>和<securityRealm>元素的內容刪掉
- 命令行啟動Jenkins

?

jenkins分布式構建
描述: 是一個master/slave的方式創建,通過tcp進行通信,對于master要求并不高,可以使用vm,container,服務器等做master或slave

配置分布式構建
1.在master創建分布式構建的節點
  - 系統管理-管理節點-新建節點
  - 標簽(輸入規范的名稱)
  - 注意4種的啟動方法
    - java web start: docker或k8s使用比較多
    - execution of command on the master
    - slave agents via ssh
2.配置分布式構建
  - job的配置頁面-General
  - Restrict where this project can be run 限定項目只能在某個節點上運行,如ios的項目只能在某一類的服務器中運行
  - 輸入標簽

?

規范項目必要配置
注:本規范尤其適用于較多項目共同一jenkins的場景
- 項目命名規范
- 設置項目描述
- 設置歷史構建清理規則(節約磁盤空間)
- 設置構建節點Label
- 郵件通知
修改默認顯示語言:https://www.jianshu.com/p/f94d617e260e

?

常用插件
- Jenkins定時的備份:ThinBackup(備份在遠程服務器)
- 郵件發送插件:Email Extension Plugin
- 空間清理擴展插件: Distributed Workspace Clean plugin
- Android/IOS設備管理
  - Android Device connector plugin
  - IOS Device connector plugin

?

轉載于:https://www.cnblogs.com/reid21/articles/8853862.html

總結

以上是生活随笔為你收集整理的持续集成之jenkins基础的全部內容,希望文章能夠幫你解決所遇到的問題。

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