溫馨提示×

Debian上Jenkins自動化部署實踐

小樊
46
2025-02-28 21:37:12
欄目: 智能運維

在Debian上部署Jenkins并實現自動化部署涉及多個步驟,包括環境搭建、插件安裝、流水線配置等。以下是一個詳細的實踐指南:

環境準備

  1. 硬件與操作系統選擇

    • 推薦配置
      • 生產環境:8核CPU / 16GB內存 / 100GB SSD存儲(建議多節點部署,分離Master與Agent)
      • 測試環境:4核CPU / 8GB內存 / 50GB SSD存儲
    • 操作系統:優先選擇Ubuntu 22.04 LTS,CentOS Stream 9也可使用,但需注意FirewallD與SELinux配置。
  2. 安裝依賴與Jenkins

    • 安裝Java環境
      sudo apt update && sudo apt install -y openjdk-11-jdk
      
    • 通過官方倉庫安裝Jenkins
      sudo wget -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io.key
      echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
      sudo apt update && sudo apt install -y jenkins
      
    • 啟動Jenkins服務
      sudo systemctl enable jenkins
      sudo systemctl start jenkins
      sudo systemctl status jenkins  # 確認狀態為Active
      
    • 防火墻與端口開放
      sudo ufw allow 8080/tcp
      sudo ufw allow 50000/tcp
      sudo ufw reload
      

初始化配置

  1. 解鎖Jenkins:訪問 http://<服務器IP>:8080,輸入初始密碼:sudo cat /var/lib/jenkins/secrets/initialAdminPassword。
  2. 加速插件安裝:更換國內鏡像源,進入Manage Jenkins -> Plugin Manager -> Advanced,替換Update Site URL為:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,安裝必備插件:Pipeline、GitHub Integration、Docker、Kubernetes CLI、Credentials Binding。
  3. 權限安全配置:禁用匿名訪問,進入Manage Jenkins -> Security -> Enable security,選擇Logged-in users can do anything,創建管理員用戶。

構建流水線

  1. 連接代碼倉庫(以GitHub為例)
    • 生成SSH密鑰對:
      ssh-keygen -t rsa -b 4096 -f ~/.ssh/jenkins_github
      cat ~/.ssh/jenkins_github.pub  # 復制公鑰到GitHub的Deploy Keys
      
    • 在Jenkins中配置憑據:進入Manage Jenkins -> Credentials -> System -> Global credentials,添加SSH私鑰(類型:SSH Username with private key),ID命名為github-ssh。
  2. 創建聲明式流水線項目
    • 新建Pipeline任務,任務名:demo-pipeline。
    • 選擇Pipeline script from SCM,配置Git倉庫地址與憑據。

流水線示例

以下是一個簡單的聲明式Pipeline示例:

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git branch: 'main', url: 'git@github.com:your-repo.git'
            }
        }
        stage('Build & Test') {
            steps {
                sh './gradlew build'  // 注意腳本權限:chmod +x gradlew
                junit 'build/test-results/**/*.xml'
            }
        }
        stage('Deploy to Production') {
            when {
                branch 'main'
            }
            steps {
                sh 'kubectl apply -f deployment.yaml'  // 根據環境動態切換namespace
            }
        }
    }
}

高可用與災備

  1. 主從架構搭建:通過Jenkins Agent實現分布式構建(Docker一鍵部署Agent節點):
    docker run -d --name jenkins-agent \
        -v /var/run/docker.sock:/var/run/docker.sock \
        -e JENKINS_URL=http://master-ip:8080 \
        -e JENKINS_AGENT_NAME=agent
    

通過以上步驟,你可以在Debian上成功搭建并配置Jenkins,實現自動化部署。根據具體需求,你還可以進一步擴展和優化Jenkins的配置和功能。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女