Jenkins持續集成部署——jenkins安裝

前言

Jenkins 是一個開源的自動化服務器,主要用于持續集成(CI)和持續交付(CD)。它為軟件開發團隊提供了一個易于使用的平臺來自動化構建、測試和部署應用程序的過程。

Jenkins 主要功能

1.?持續集成 (CI)

  • 自動構建:每次代碼提交后,Jenkins 可以自動觸發構建過程,確保最新的代碼可以成功編譯。
  • 測試執行:在構建完成后,Jenkins 可以運行單元測試、集成測試等,確保代碼質量。
  • 靜態代碼分析:通過插件,Jenkins 可以執行靜態代碼分析工具(如 SonarQube),檢查代碼中的潛在問題。

2.?持續交付 (CD)

  • 自動化部署:Jenkins 支持從構建到部署的整個流水線自動化,包括將應用程序部署到不同環境(如開發、測試、生產)。
  • 版本控制集成:與各種版本控制系統(如 Git、SVN)無縫集成,能夠自動檢測代碼變更并觸發相應的構建任務。

3.?Pipeline as Code

  • 定義 CI/CD 流水線:使用 Jenkins Pipeline 功能,可以將 CI/CD 流程定義為代碼的一部分,并將其存儲在項目的源代碼倉庫中。這不僅便于版本控制,還促進了團隊協作和審查。
  • Declarative 和 Scripted Pipelines:提供兩種編寫 Pipeline 的方式,滿足不同的需求。Declarative Pipeline 更加結構化,適合新手;Scripted Pipeline 提供更大的靈活性,適合復雜場景。

4.?分布式構建

  • 主從架構:Jenkins 支持主從架構,允許將構建任務分發到多個節點上執行,提高構建效率,特別適用于大型項目或需要跨平臺構建的情況。
  • 多平臺支持:可以在不同的操作系統(如 Linux、Windows、macOS)上設置 Jenkins Agent,以適應多樣化的構建需求。

5.?插件生態系統

  • 豐富的插件庫:擁有超過 1,500 個插件,涵蓋從構建工具、測試框架到通知服務等各種工具和技術,極大地擴展了 Jenkins 的功能。
  • 自定義擴展:用戶還可以根據自己的需求開發和安裝自定義插件,進一步增強 Jenkins 的能力。

6.?安全性和權限管理

  • 用戶認證:支持多種認證機制(如 LDAP、Active Directory),確保只有授權人員才能訪問和操作 Jenkins。
  • 權限控制:提供了細粒度的權限管理,可以根據角色分配不同的權限,保護敏感信息和操作。

7.?監控和報告

  • 構建狀態可視化:通過 Web 界面直觀地展示每個 Job 的構建狀態,幫助團隊快速了解項目健康狀況。
  • 歷史記錄和趨勢分析:保存所有構建的歷史記錄,提供趨勢分析圖表,有助于發現和解決長期存在的問題。

8.?通知和集成

  • 通知機制:可以通過電子郵件、Slack、HipChat 等多種渠道發送構建結果通知,確保團隊成員及時獲得反饋。
  • 第三方服務集成:與 Docker、Kubernetes、AWS 等云服務和其他 DevOps 工具鏈集成,提升整體工作效率。

9.?易用性

  • Web 界面:提供了友好的 Web 用戶界面,簡化了 Jenkins 的配置和管理。
  • 文檔和支持:擁有詳盡的官方文檔和活躍的社區支持,方便用戶學習和解決問題

Jenkins 工作流

代碼提交

? ? ? ? 1. ?????開發人員將代碼提交到版本控制系統(如 Git)。

? ? ? ? 2. 提交代碼后,版本控制系統會記錄此次提交。

觸發構建

? ? ? ? 1.?Jenkins 監控版本控制系統的變化,當檢測到代碼提交時,會自動觸發構建。

? ? ? ? 2.?Jenkins 會根據配置的觸發規則(如代碼提交、定時任務等)啟動構建任務。

構建和測試

????????1.?Jenkins 根據配置的構建腳本,編譯代碼并運行自動化測試。

? ? ? ? 2.?測試結果會被記錄并分析,以確保代碼的質量。

????????3. ???如果測試失敗,構建過程會中斷,并報告失敗原因。

生成構建結果

????????1.?Jenkins 將構建結果(成功或失敗)報告給開發人員,并生成構建工件(如可執行文件、Docker 鏡像等)。

????????2.?構建工件會被存儲在 Jenkins 的工作空間中,以便后續使用。

????????3.????????Jenkins 還可以生成詳細的構建日志和報告,方便開發人員查看和調試。

部署

???????????????1.?Jenkins 可以自動將構建好的工件部署到測試環境或生產環境。

????????2.?部署過程可以配置為手動或自動,具體取決于團隊的需求和流程。

???????????????3.?Jenkins 支持多種部署方式,如直接部署到服務器、通過 Docker 部署等。

Jenkins 安裝

1. 基礎環境準備

????????1.1節點規劃

IP

主機名

節點

192.168.200.70

jenkins

Jenkins

????????上傳jdk-17.0.10_linux-x64_bin.tar.gz ?jenkins-2.489-1.1.noarch.rpm軟件包到虛擬機/root目錄下。

2. 安裝 Jenkins

2.1 基礎環境配置

(1)修改主機名

[root@localhost ~]# hostnamectl  set-hostname jenkins
[root@localhost ~]#bash

(2)關閉防火墻

[root@jenkins ~]# systemctl stop firewalld
[root@jenkins ~]# setenforce 0

2.2 安裝 jdk

????????Jenkins是基于java8編寫的軟件,所以在安裝之前需要在主機上安裝Java8的運行環境,及安裝jdk 17.0.10。

[root@jenkins ~]# mkdir /usr/lib/jdk17/
[root@jenkins ~]# tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz -C /usr/lib/jdk17/
[root@jenkins ~]# ls /usr/lib/jdk17/
jdk-17.0.10

配置環境變量

[root@jenkins ~]# vi /etc/profile
export JAVA_HOME=/usr/lib/jdk17/jdk-17.0.10
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=.:$JAVA_HOME/bin:$PATH
[root@jenkins ~]# source /etc/profile
[root@jenkins ~]# java -version
java version "17.0.10" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing)

2.3 安裝 Jenkins

????????Jenkins是一個獨立的開源軟件項目,是基于Java開發的一種可擴展的持續集成(CI)工具,用于監控持續重復的工作,自動的構建和測試軟件項目,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。

????????解壓jenkins-2.489-1.1.noarch.rpm包。

[root@jenkins ~]# rpm -ivh jenkins-2.489-1.1.noarch.rpm 

配置 Jenkins

[root@jenkins ~]# vi /usr/lib/systemd/system/jenkins.service

修改下圖標注內容

啟動 Jenkins

[root@jenkins ~]#  yum install -y fontconfig
[root@jenkins ~]# systemctl daemon-reload
[root@jenkins ~]# systemctl start jenkins 
[root@jenkins ~]# systemctl status jenkins
[root@jenkins ~]# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp6       0      0 :::8088                 :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
udp        0      0 127.0.0.1:323           0.0.0.0:*                          
udp6       0      0 ::1:323                 :::*                             

登錄網站 http://ip:8088(默認端口為8080)

查看安裝日志,查詢密碼,并輸入管理員密碼。

[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
c4245c993980486495d104caa4366d60

3. 自定義 Jenkins

(1)安裝插件

????????登陸后,會出現如下頁面,這里涉及到jenkins的插件安裝,建議選擇“安裝推薦的插件”,點擊“安裝推薦的插件”后,進入“新手入門”頁面,等待全部插件安裝成功即可。

(2)創建第一個管理員用戶

????????插件安裝完成后,會出現“創建第一個管理員用戶”頁面,填寫正確信息后,點擊“保存并完成”,這樣第一個管理員用戶就創建完畢了,如下圖:

至此,Jenkins安裝結束。你可以開始使用自己的Jenkins了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63755.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63755.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63755.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PYG - Cora數據集加載 (自動加載+手動實現)

本文從Cora的例子來展示PYG如何加載圖數據集。 Cora 是一個小型的有標注的圖數據集,包含以下內容: data.x:2708 個節點(即 2708 篇論文),每個節點有 1433 個特征,形狀為 (2708, 1433)。data.ed…

《 火星人 》

題目描述 人類終于登上了火星的土地并且見到了神秘的火星人。人類和火星人都無法理解對方的語言,但是我們的科學家發明了一種用數字交流的方法。這種交流方法是這樣的,首先,火星人把一個非常大的數字告訴人類科學家,科學家破解這…

機器學習基礎算法 (二)-邏輯回歸

python 環境的配置參考 從零開始:Python 環境搭建與工具配置 邏輯回歸是一種用于解決二分類問題的機器學習算法,它可以預測輸入數據屬于某個類別的概率。本文將詳細介紹邏輯回歸的原理、Python 實現、模型評估和調優,并結合垃圾郵件分類案例進…

BiTCN-BiGRU基于雙向時間卷積網絡結合雙向門控循環單元的數據多特征分類預測(多輸入單輸出)

Matlab實現BiTCN-BiGRU基于雙向時間卷積網絡結合雙向門控循環單元的數據多特征分類預測(多輸入單輸出) 目錄 Matlab實現BiTCN-BiGRU基于雙向時間卷積網絡結合雙向門控循環單元的數據多特征分類預測(多輸入單輸出)分類效果基本描述…

云備份項目--工具類編寫

4. 文件工具類的設計 4.1 整體的類 該類實現對文件進行操作 FileUtil.hpp如下 /* 該類實現對文件進行操作 */ #pragma once #include <iostream> #include <string> #include <fstream> #include <vector> #include <sys/types.h> #include …

51c大模型~合集94

我自己的原文哦~ https://blog.51cto.com/whaosoft/12897659 #D(R,O) Grasp 重塑跨智能體靈巧手抓取&#xff0c;NUS邵林團隊提出全新交互式表征&#xff0c;斬獲CoRL Workshop最佳機器人論文獎 本文的作者均來自新加坡國立大學 LinS Lab。本文的共同第一作者為上海交通大…

【大學英語】英語范文十八篇,書信,議論文,材料分析

關注作者了解更多 我的其他CSDN專欄 過程控制系統 工程測試技術 虛擬儀器技術 可編程控制器 工業現場總線 數字圖像處理 智能控制 傳感器技術 嵌入式系統 復變函數與積分變換 單片機原理 線性代數 大學物理 熱工與工程流體力學 數字信號處理 光電融合集成電路…

一起學Git【第一節:Git的安裝】

Git是什么&#xff1f; Git是什么&#xff1f;相信大家點擊進來已經有了初步的認識&#xff0c;這里就簡單的進行介紹。 Git是一個開源的分布式版本控制系統&#xff0c;由Linus Torvalds創建&#xff0c;用于有效、高速地處理從小到大的項目版本管理。Git是目前世界上最流行…

消息隊列 Kafka 架構組件及其特性

Kafka 人們通常有時會將 Kafka 中的 Topic 比作隊列&#xff1b; 在 Kafka 中&#xff0c;數據是以主題&#xff08;Topic&#xff09;的形式組織的&#xff0c;每個 Topic 可以被分為多個分區&#xff08;Partition&#xff09;。每個 Partition 是一個有序的、不可變的消息…

《Mycat核心技術》第06章:Mycat問題處理總結

作者&#xff1a;冰河 星球&#xff1a;http://m6z.cn/6aeFbs 博客&#xff1a;https://binghe.gitcode.host 文章匯總&#xff1a;https://binghe.gitcode.host/md/all/all.html 星球項目地址&#xff1a;https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀&#xff0c…

【day11】面向對象編程進階(繼承)

概述 本文深入探討面向對象編程的核心概念&#xff0c;包括繼承、方法重寫、this和super關鍵字的使用&#xff0c;以及抽象類和方法的定義與實現。通過本文的學習&#xff0c;你將能夠&#xff1a; 理解繼承的優勢。掌握繼承的使用方法。了解繼承后成員變量和成員方法的訪問特…

隨手記:小程序兼容后臺的wangEditor富文本配置鏈接

場景&#xff1a; 在后臺配置wangEditor富文本&#xff0c;可以文字配置鏈接&#xff0c;圖片配置鏈接&#xff0c;產生的json格式為&#xff1a; 例子&#xff1a; <h1><a href"https://uniapp.dcloud.net.cn/" target"_blank"><span sty…

6.8 Newman自動化運行Postman測試集

歡迎大家訂閱【軟件測試】 專欄&#xff0c;開啟你的軟件測試學習之旅&#xff01; 文章目錄 1 安裝Node.js2 安裝Newman3 使用Newman運行Postman測試集3.1 導出Postman集合3.2 使用Newman運行集合3.3 Newman常用參數3.4 Newman報告格式 4 使用定時任務自動化執行腳本4.1 編寫B…

工具環境 | 工具準備

搭建一套驗證環境需要的工具如下&#xff1a; 虛擬機&#xff1a;推薦virtualbox ubuntu VM好用&#xff0c;但是免費的好像木有了&#xff0c;ubuntu界面版更加容易上手。 網上找安裝教程即可&#xff0c;注意實現文件共享、復制粘貼等功能。 EDA&#xff1a;VCS Veridi 工…

計算機網絡之王道考研讀書筆記-2

第 2 章 物理層 2.1 通信基礎 2.1.1 基本概念 1.數據、信號與碼元 通信的目的是傳輸信息。數據是指傳送信息的實體。信號則是數據的電氣或電磁表現&#xff0c;是數據在傳輸過程中的存在形式。碼元是數字通信中數字信號的計量單位&#xff0c;這個時長內的信號稱為 k 進制碼…

ROS2學習配套C++知識

第3章 訂閱和發布——話題通信探索 3.3.1 發布速度控制海龜畫圓 std::bind cstd::bind綁定成員函數時&#xff0c;需要加上作用域以及取址符號 因為不會將成員函數隱式的轉換成指針&#xff0c;因此需要加&符號&#xff1b; 后面的第一個參數必須跟具體對象&#xff0c;c…

法規標準-C-NCAP評測標準解析(2024版)

文章目錄 什么是C-NCAP&#xff1f;C-NCAP 評測標準C-NCAP評測維度三大維度的評測場景及對應分數評星標準 自動駕駛相關評測場景評測方法及評測標準AEB VRU——評測內容(測什么&#xff1f;)AEB VRU——評測方法(怎么測&#xff1f;)車輛直行與前方縱向行走的行人測試場景&…

第十七屆山東省職業院校技能大賽 中職組“網絡安全”賽項任務書正式賽題

第十七屆山東省職業院校技能大賽 中職組“網絡安全”賽項任務書-A 目錄 一、競賽階段 二、競賽任務書內容 &#xff08;一&#xff09;拓撲圖 &#xff08;二&#xff09;模塊A 基礎設施設置與安全加固(200分) &#xff08;三&#xff09;B模塊安全事件響應/網絡安全數據取證/…

mlr3機器學習AUC的置信區間提取

如果你在mlr3拿到機器學習的預測數據 ROC 過程原理探索 假設數據 df <- data.frame(Airis$Sepal.Length, groupsample(x c(0,1),size 150,replace T)) 分組為 0,1 # 變量A為連續性變量 library(pROC) roc_obj <- roc(df g r o u p , d f group, df group,dfA, le…

Halcon例程代碼解讀:安全環檢測(附源碼|圖像下載鏈接)

安全環檢測核心思路與代碼詳解 項目目標 本項目的目標是檢測圖像中的安全環位置和方向。通過形狀匹配技術&#xff0c;從一張模型圖像中提取安全環的特征&#xff0c;并在后續圖像中識別多個實例&#xff0c;完成檢測和方向標定。 實現思路 安全環檢測分為以下核心步驟&…