附近短期電腦培訓(xùn)班深圳關(guān)鍵詞優(yōu)化公司哪家好
一、節(jié)點(diǎn) node
Jenkins在安裝并初始化完成后,會(huì)有一個(gè)主節(jié)點(diǎn)(Master Node),默認(rèn)情況下主節(jié)點(diǎn)可以同時(shí)運(yùn)行的任務(wù)數(shù)是2,可以在節(jié)點(diǎn)配置中修改(系統(tǒng)管理/節(jié)點(diǎn)和云管理)。
Jenkins中的節(jié)點(diǎn)(Node)是指用于執(zhí)行構(gòu)建任務(wù)的計(jì)算機(jī)或計(jì)算機(jī)集群。節(jié)點(diǎn)可以是物理計(jì)算機(jī),也可以是虛擬機(jī)。Jenkins節(jié)點(diǎn)的主要作用是提供一個(gè)運(yùn)行環(huán)境,使得構(gòu)建任務(wù)可以在節(jié)點(diǎn)上執(zhí)行。
Jenkins節(jié)點(diǎn)的配置和管理可以通過以下方式進(jìn)行:
-
在Jenkins的管理界面中配置:在Jenkins的管理界面中,可以添加、編輯和刪除節(jié)點(diǎn)??梢灾付ü?jié)點(diǎn)的名稱、描述、標(biāo)簽等信息,并配置節(jié)點(diǎn)的連接方式和認(rèn)證信息。
-
使用Jenkins CLI:Jenkins提供了命令行接口(CLI),可以使用CLI命令來配置和管理節(jié)點(diǎn)。通過CLI,可以添加、編輯、刪除節(jié)點(diǎn),以及設(shè)置節(jié)點(diǎn)的屬性和參數(shù)。
-
使用Jenkins API:Jenkins還提供了API接口,可以通過API來配置和管理節(jié)點(diǎn)。通過API,可以使用各種編程語言編寫腳本或程序來操作節(jié)點(diǎn),實(shí)現(xiàn)自動(dòng)化的節(jié)點(diǎn)管理。
Jenkins節(jié)點(diǎn)可以分為兩種類型:
-
主節(jié)點(diǎn)(Master Node):主節(jié)點(diǎn)是Jenkins的核心節(jié)點(diǎn),負(fù)責(zé)管理整個(gè)Jenkins系統(tǒng)的配置和任務(wù)分發(fā)。主節(jié)點(diǎn)可以執(zhí)行一部分構(gòu)建任務(wù),但通常不建議在主節(jié)點(diǎn)上執(zhí)行耗時(shí)較長或資源占用較高的任務(wù),以免影響Jenkins的整體性能。
-
代理節(jié)點(diǎn)(Agent Node):代理節(jié)點(diǎn)是由主節(jié)點(diǎn)管理的其他計(jì)算機(jī)或計(jì)算機(jī)集群。代理節(jié)點(diǎn)可以執(zhí)行構(gòu)建任務(wù),并將結(jié)果返回給主節(jié)點(diǎn)。代理節(jié)點(diǎn)可以根據(jù)需要添加多個(gè),以提供更多的計(jì)算資源和并行執(zhí)行能力。
通過將構(gòu)建任務(wù)分配到不同的節(jié)點(diǎn)上執(zhí)行,可以實(shí)現(xiàn)并行執(zhí)行、負(fù)載均衡和資源隔離等功能。節(jié)點(diǎn)可以根據(jù)不同的需求進(jìn)行配置,例如可以指定節(jié)點(diǎn)的標(biāo)簽,以便在構(gòu)建任務(wù)中選擇特定的節(jié)點(diǎn)執(zhí)行。
總結(jié)來說,Jenkins中的節(jié)點(diǎn)是用于執(zhí)行構(gòu)建任務(wù)的計(jì)算機(jī)或計(jì)算機(jī)集群,可以通過配置界面、CLI或API進(jìn)行配置和管理,可以分為主節(jié)點(diǎn)和代理節(jié)點(diǎn),用于實(shí)現(xiàn)任務(wù)執(zhí)行的并行化、負(fù)載均衡和資源隔離。
創(chuàng)建節(jié)點(diǎn)
點(diǎn)擊系統(tǒng)管理/節(jié)點(diǎn)和云管理,然后點(diǎn)擊“New Node”創(chuàng)建節(jié)點(diǎn),輸入節(jié)點(diǎn)名稱(比如 node1),選擇固定節(jié)點(diǎn),然后點(diǎn)擊Create按鈕創(chuàng)建節(jié)點(diǎn)。
輸入節(jié)點(diǎn)詳細(xì)信息,節(jié)點(diǎn)通常是在其他機(jī)器上,這里要輸入鏈接其他的其他的參數(shù),首先要?jiǎng)?chuàng)建好憑據(jù)。
輸入關(guān)鍵參數(shù)名字、遠(yuǎn)程工作目錄(這是節(jié)點(diǎn)服務(wù)器上面的路徑)、主機(jī)ip、憑據(jù) credentials(要先創(chuàng)建好)、Host Key Verification Strategy選擇“Non verifying..”
不驗(yàn)證證書,然后點(diǎn)擊保存。
保存后,節(jié)點(diǎn)需要啟動(dòng)并初始化,需要1-2分鐘時(shí)間,可以點(diǎn)擊查看啟動(dòng)日志,啟動(dòng)完成后,可以看見節(jié)點(diǎn)變成已同步
二、憑據(jù) credentials
Jenkins中的憑據(jù)是用于存儲(chǔ)敏感信息的一種機(jī)制。憑據(jù)可以是用戶名和密碼、SSH密鑰、OAuth令牌等。Jenkins可以使用憑據(jù)來訪問遠(yuǎn)程服務(wù)器、下載文件、解壓縮文件等。
Jenkins中的憑據(jù)可以分為兩種類型:系統(tǒng)憑據(jù)和用戶憑據(jù)。系統(tǒng)憑據(jù)是所有用戶都可以使用的憑據(jù),用戶憑據(jù)是特定用戶可以使用的憑據(jù)。
要?jiǎng)?chuàng)建一個(gè)憑據(jù),可以通過以下步驟操作:
- 在Jenkins的管理頁面中,點(diǎn)擊憑據(jù)。
- 點(diǎn)擊系統(tǒng)憑據(jù)或用戶憑據(jù)。
- 點(diǎn)擊創(chuàng)建憑據(jù)。
- 填寫憑據(jù)的名稱、類型、值等信息。
- 點(diǎn)擊創(chuàng)建。
憑據(jù)創(chuàng)建時(shí)最好明確輸入憑據(jù)ID,如果不輸入系統(tǒng)會(huì)自動(dòng)生成,在使用的時(shí)候,輸入或選擇對(duì)應(yīng)的憑據(jù)ID即可。
Jenkins中的憑據(jù)可以有效地保護(hù)敏感信息,避免泄露。但是,要注意不要將憑據(jù)保存在公共存儲(chǔ)中,以免被他人訪問。
創(chuàng)建憑據(jù)
點(diǎn)擊系統(tǒng)管理/憑據(jù)管理,系統(tǒng)全局憑據(jù),也可以是用戶憑據(jù)(就是另外創(chuàng)建一個(gè)域)。
以用戶名密碼憑據(jù)為例:輸入用戶名、密碼、以及ID,點(diǎn)擊Create即可
三、任務(wù) job
在Jenkins中,任務(wù)(Job)是指要執(zhí)行的特定操作或一系列操作的定義。任務(wù)可以是構(gòu)建項(xiàng)目、部署應(yīng)用程序、運(yùn)行測試等。Jenkins中的任務(wù)通過配置和設(shè)置來定義其行為和執(zhí)行方式。
以下是Jenkins中任務(wù)(Job)的一些重要概念和要點(diǎn):
-
任務(wù)類型:Jenkins支持多種任務(wù)類型,例如自由風(fēng)格項(xiàng)目、流水線項(xiàng)目、多配置項(xiàng)目等。每種任務(wù)類型都有不同的配置選項(xiàng)和執(zhí)行方式。
-
構(gòu)建觸發(fā)器:任務(wù)可以通過不同的觸發(fā)器來觸發(fā)構(gòu)建操作。常見的觸發(fā)器包括定時(shí)觸發(fā)、版本控制系統(tǒng)的變更觸發(fā)、其他任務(wù)的成功觸發(fā)等。
-
構(gòu)建步驟:任務(wù)可以定義一系列的構(gòu)建步驟,每個(gè)步驟執(zhí)行特定的操作。例如,可以包括代碼拉取、編譯、測試、部署等步驟。
-
構(gòu)建參數(shù):任務(wù)可以定義輸入?yún)?shù),允許用戶在執(zhí)行任務(wù)時(shí)提供參數(shù)值。參數(shù)可以是文本、下拉列表、布爾值等類型。
-
構(gòu)建環(huán)境:任務(wù)可以定義構(gòu)建環(huán)境,包括設(shè)置環(huán)境變量、配置工具路徑、指定構(gòu)建代理節(jié)點(diǎn)等。
-
構(gòu)建歷史和報(bào)告:Jenkins會(huì)記錄每次任務(wù)的構(gòu)建歷史,包括構(gòu)建狀態(tài)、執(zhí)行時(shí)間、控制臺(tái)輸出等。任務(wù)還可以生成構(gòu)建報(bào)告,用于查看構(gòu)建結(jié)果和分析構(gòu)建過程。
-
插件擴(kuò)展:Jenkins提供了豐富的插件生態(tài)系統(tǒng),可以擴(kuò)展任務(wù)的功能和特性。通過安裝和配置插件,可以實(shí)現(xiàn)更多的自定義和集成。
通過配置和管理任務(wù),可以實(shí)現(xiàn)自動(dòng)化的構(gòu)建、測試和部署流程。Jenkins任務(wù)的配置可以通過Jenkins的Web界面進(jìn)行,也可以通過Jenkins提供的CLI或API進(jìn)行。任務(wù)的配置可以導(dǎo)出和導(dǎo)入,方便在不同的Jenkins實(shí)例之間共享和復(fù)用。
總結(jié)來說,Jenkins中的任務(wù)(Job)是指要執(zhí)行的特定操作或一系列操作的定義。任務(wù)通過配置和設(shè)置來定義其行為和執(zhí)行方式,包括觸發(fā)器、構(gòu)建步驟、構(gòu)建參數(shù)、構(gòu)建環(huán)境等。通過任務(wù)的配置和管理,可以實(shí)現(xiàn)自動(dòng)化的構(gòu)建、測試和部署流程。
1、node1服務(wù)器需要先做如下配置
這里假設(shè)任務(wù)在node1節(jié)點(diǎn)執(zhí)行。
1)安裝git,git指令
yum install git
2)配置maven環(huán)境,mvn指令
以版本apache-maven-3.8.2
為例,先下載maven壓縮包apache-maven-3.8.2-bin.zip
上傳到服務(wù)目錄/opt/maven/
,然后解壓,得到maven源文件目錄/opt/maven/apache-maven-3.8.2
,配置環(huán)境變量/etc/profile
# 解壓maven壓縮包
unzip apache-maven-3.8.2-bin.zip
# 配置環(huán)境變量,創(chuàng)建文件 maven.sh
vim /etc/profile.d/maven.sh
在maven.sh中插入以下內(nèi)容
MAVEN_HOME=/opt/maven/apache-maven-3.8.2
PATH=$MAVEN_HOME/bin:$PATH
export PATH
保存,讓環(huán)境變量生效
source /etc/profile
輸入命令 mvn -v
試試,maven配置成功!
[root@localhost apache-maven-3.8.2]# mvn -v
Apache Maven 3.8.2 (ea98e05a04480131370aa0c110b8c54cf726c06f)
Maven home: /opt/maven/apache-maven-3.8.2
Java version: 17.0.9, vendor: Oracle Corporation, runtime: /usr/lib/jvm/jdk-17-oracle-x64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.102.1.el7.x86_64", arch: "amd64", family: "unix"
[root@localhost apache-maven-3.8.2]#
注意,mvn環(huán)境配置完成后,需要重啟Jenkins服務(wù)
2、創(chuàng)建任務(wù)
這里以從git倉庫中拉取項(xiàng)目并編譯打包的pipeline任務(wù)為例。
輸入任務(wù)名稱(如:build_test),選擇“流水線”
在pipeline中輸入以下內(nèi)容:
node('node1') {stage("pull code") {git branch: 'master', credentialsId: 'gitee_wlddhj', url: 'https://gitee.com/personal_practice/demo.git'}stage("build") {sh label: '', script: '''mvn clean package -Dmaven.test.skip=true -f pom.xml'''} stage("release") {sh label: '', script: '''cp target/*.jar /data/product/deploy/'''}stage("start") {ansiColor('xterm') {sh "JENKINS_NODE_COOKIE=dontKillMe nohup java -jar /data/product/deploy/spring-demo-0.0.1-SNAPSHOT.jar > demo.log &"}}
}
注意:
- 從git拉取代碼需要秘鑰,上面例子假設(shè)已經(jīng)創(chuàng)建了一個(gè)憑據(jù)
gitee_wlddhj
- 這里以示例工程spring-demo作為演示,打包后臺(tái)jar名稱是
spring-demo-0.0.1-SNAPSHOT.jar
- 在shell環(huán)境中使用nohup,并且& 某個(gè)程序后,會(huì)后臺(tái)執(zhí)行,退出當(dāng)前鏈接后程序依然可以執(zhí)行。 但是在Jenkins的pipeline中,nohup,在Jenkins編譯任務(wù)結(jié)束時(shí),運(yùn)行的程序會(huì)自動(dòng)退出。針對(duì)該解決辦法是設(shè)置系統(tǒng)環(huán)境變量
JENKINS_NODE_COOKIE=dontKillMe
3、執(zhí)行任務(wù)
上面任務(wù)創(chuàng)建完成后就可以執(zhí)行了。
點(diǎn)擊“立即構(gòu)建”,右邊會(huì)顯示執(zhí)行進(jìn)度,如果報(bào)錯(cuò)了,可以點(diǎn)進(jìn)去看具體的執(zhí)行日志