1. 準備Debian環境
在Debian系統上安裝Jenkins前,需確保系統包為最新狀態,避免依賴沖突:
sudo apt update && sudo apt upgrade -y
2. 安裝Java環境(Jenkins依賴)
Jenkins是基于Java的應用程序,需安裝Java運行環境(推薦OpenJDK 11及以上):
sudo apt install openjdk-11-jdk -y
# 驗證Java安裝
java -version
3. 添加Jenkins官方倉庫并安裝
通過APT包管理器安裝Jenkins,確保軟件來源安全:
# 導入Jenkins GPG密鑰
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
# 添加Jenkins倉庫到APT源列表
echo "deb http://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
# 更新包列表并安裝Jenkins
sudo apt update && sudo apt install jenkins -y
4. 啟動Jenkins服務
啟動Jenkins并設置為開機自啟,確保服務持續運行:
sudo systemctl start jenkins
sudo systemctl enable jenkins
# 檢查服務狀態(確認為“active (running)”)
sudo systemctl status jenkins
5. 初始配置Jenkins
首次訪問Jenkins需完成解鎖和基礎設置:
http://<服務器IP>:8080
,輸入/var/lib/jenkins/secrets/initialAdminPassword
文件中的初始密碼(通過sudo cat /var/lib/jenkins/secrets/initialAdminPassword
獲?。?。6. 配置Jenkins全局工具(可選但推薦)
若項目需要特定工具(如Maven、JDK),可通過“Manage Jenkins -> Global Tool Configuration”配置工具路徑,避免在Pipeline中重復指定:
/usr/lib/jvm/java-11-openjdk-amd64
)。/usr/share/maven
)。7. 創建Pipeline項目
通過Pipeline實現自動化構建,支持代碼托管庫(如Git)集成和流程編排:
my-java-project
),選擇“Pipeline”,點擊“OK”。https://github.com/your-repo/my-java-project.git
)和憑據(若有私有倉庫)。Jenkinsfile
,需存放在項目根目錄)。8. 編寫Jenkinsfile定義自動化流程
在項目根目錄創建Jenkinsfile
,使用聲明式語法定義構建、測試、部署等階段(以Java Maven項目為例):
pipeline {
agent any
tools {
maven 'Maven 3.6.3' // 關聯全局工具配置中的Maven
jdk 'JDK 11' // 關聯全局工具配置中的JDK
}
stages {
stage('Checkout') {
steps {
checkout scm // 從Git倉庫拉取代碼
}
}
stage('Build') {
steps {
sh 'mvn clean package' // 執行Maven構建
}
}
stage('Test') {
steps {
sh 'mvn test' // 執行單元測試
}
post {
always {
junit 'target/surefire-reports/*.xml' // 發布測試報告
}
}
}
stage('Archive Artifacts') {
steps {
archiveArtifacts artifacts: 'target/*.jar', fingerprint: true // 歸檔構建產物(JAR文件)
}
}
stage('Deploy') {
steps {
// 示例:通過SSH將構建產物部署到遠程服務器
sshPublisher(
publishers: [
sshPublisherDesc(
configName: 'remote-server', // SSH配置名稱(需提前在Jenkins中創建)
transfers: [
sshTransfer(
sourceFiles: 'target/*.jar',
removePrefix: 'target',
remoteDirectory: '/opt/app'
)
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: true
)
]
)
}
}
}
post {
always {
mail to: 'team@example.com', subject: "Build ${currentBuild.currentResult}: ${currentBuild.fullDisplayName}", body: "Build details: ${env.BUILD_URL}" // 構建結果郵件通知
}
}
}
9. 配置自動化觸發器
實現代碼提交后自動觸發構建,減少手動操作:
http://<Jenkins服務器IP>:8080/github-webhook/
(GitHub)或http://<Jenkins服務器IP>:8080/gitlab-webhook/
(GitLab),Jenkins會自動監聽推送事件并觸發構建。H/5 * * * *
表示每5分鐘檢查一次代碼變更)。10. 運行與監控構建