溫馨提示×

Ubuntu Jenkins如何遠程操作

小樊
51
2025-09-21 01:41:14
欄目: 智能運維

Ubuntu Jenkins遠程操作配置指南

一、遠程訪問Jenkins管理界面

要遠程訪問Ubuntu服務器上的Jenkins,需完成以下基礎配置:

  1. 安裝Jenkins
    在Ubuntu上通過包管理器安裝Jenkins及依賴:
    sudo apt update && sudo apt install -y openjdk-11-jdk
    wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
    sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ /etc/apt/sources.list.d/jenkins.list'
    sudo apt update && sudo apt install -y jenkins
    
  2. 啟動Jenkins服務
    設置Jenkins開機自啟并立即啟動:
    sudo systemctl enable jenkins
    sudo systemctl start jenkins
    sudo systemctl status jenkins  # 驗證服務狀態
    
  3. 開放防火墻端口
    使用ufw開放Jenkins管理界面(8080)和Agent通信(50000)端口:
    sudo ufw allow 8080/tcp
    sudo ufw allow 50000/tcp
    sudo ufw reload
    
  4. 初始化Jenkins
    獲取初始管理員密碼并完成解鎖:
    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
    
    瀏覽器訪問http://<Ubuntu服務器IP>:8080,輸入初始密碼完成解鎖。后續建議創建專用管理員賬戶(而非使用默認admin)。
  5. 安全強化配置
    • 啟用全局安全:進入Manage Jenkins > Configure Global Security,勾選“Enable security”。
    • 選擇認證方式:推薦使用“Jenkins’ own user database”(內置用戶管理)或“LDAP”(企業級認證)。
    • 授權策略:選擇“Role-Based Strategy”(基于角色的訪問控制),精細化分配用戶權限(如管理員、開發者、觀察者)。
    • 配置SSL(可選但推薦):通過Let’s Encrypt申請免費證書,將Jenkins訪問協議升級至HTTPS(避免密碼明文傳輸)。

二、遠程命令行操作Jenkins

Jenkins提供兩種主流遠程命令行方式:SSH接口CLI jar工具。

1. 通過SSH執行命令

  • 啟用SSH Server
    進入Manage Jenkins > Configure Global Security,找到“SSH Server” section,設置監聽端口(如8090,默認隨機),保存配置。
  • 添加用戶SSH密鑰
    將遠程用戶的公鑰(~/.ssh/id_rsa.pub)添加到Jenkins對應用戶的“Public Keys”列表(Manage Jenkins > Manage Users > 選擇用戶 > Configure)。
  • 執行遠程命令
    使用SSH命令連接Jenkins,格式為ssh -l <用戶名> -p <端口> <Jenkins服務器IP> <Jenkins命令>。例如:
    ssh -l jack -p 8090 192.168.1.100 who-am-i  # 驗證身份
    ssh -l jack -p 8090 192.168.1.100 build test -f -v  # 觸發名為test的job
    

2. 使用jenkins-cli.jar工具

  • 下載CLI jar
    從Jenkins服務器下載官方CLI工具:
    wget http://<Jenkins服務器IP>:8080/jnlpJars/jenkins-cli.jar
    
  • 認證方式
    • 用戶名+密碼(不推薦):直接在命令中輸入賬號密碼(易泄露)。
      java -jar jenkins-cli.jar -s http://<Jenkins服務器IP>:8080 -auth jack:123456 build test
      
    • API Token(推薦)
      1. 進入Manage Jenkins > Manage Users > 選擇用戶 > Configure > API Token,生成新token。
      2. 使用token認證:
        java -jar jenkins-cli.jar -s http://<Jenkins服務器IP>:8080 -auth jack:11d5ca0f9ee2dac8c47492b3e6b71c82cd build test
        
      3. 安全存儲token:將token保存到本地文件(如~/.jenkins-token),通過@引用:
        echo jack:11d5ca0f9ee2dac8c47492b3e6b71c82cd > ~/.jenkins-token
        java -jar jenkins-cli.jar -s http://<Jenkins服務器IP>:8080 -auth @~/.jenkins-token build test
        
      4. 環境變量認證:將用戶名和token存入環境變量,簡化命令:
        export JENKINS_USER_ID=jack
        export JENKINS_API_TOKEN=11d5ca0f9ee2dac8c47492b3e6b71c82cd
        java -jar jenkins-cli.jar -s http://<Jenkins服務器IP>:8080 -auth $JENKINS_USER_ID:$JENKINS_API_TOKEN build test
        

三、遠程控制主機執行腳本(Publish Over SSH插件)

若需遠程執行Shell腳本或傳輸文件到其他主機(如部署構建產物),可通過Publish Over SSH插件實現:

  1. 安裝插件
    進入Manage Jenkins > Manage Plugins > Available,搜索“Publish Over SSH”,點擊“Install without restart”。
  2. 配置SSH遠程主機
    進入Manage Jenkins > Configure System > Publish over SSH,點擊“Add”添加遠程主機:
    • Name:自定義標識(如RemoteServer)。
    • Hostname:遠程主機IP或域名。
    • Username:遠程主機登錄用戶名(如ubuntu)。
    • Remote Directory:遠程主機上的目標目錄(如/var/www/html,需提前創建)。
    • Credentials:選擇或添加SSH私鑰(需提前在Jenkins“Credentials”中配置,類型為“SSH Username with private key”)。
  3. 在項目中使用插件
    • Freestyle Project:進入項目配置,找到“Post-build Actions”,添加“Send build artifacts over SSH”,選擇配置好的SSH主機,設置源文件(如dist/**/*,匹配構建產物)和目標目錄(如/var/www/html),還可添加執行命令(如systemctl restart nginx)。
    • Pipeline:在Jenkinsfile中使用sshPublisher步驟:
      pipeline {
          agent any
          stages {
              stage('Deploy') {
                  steps {
                      sshPublisher(
                          publishers: [
                              sshPublisherDesc(
                                  configName: 'RemoteServer',  // 對應配置的SSH主機名稱
                                  transfers: [
                                      sshTransfer(
                                          sourceFile: 'dist/**/*',
                                          removePrefix: 'dist',
                                          remoteDirectory: '/var/www/html'
                                      )
                                  ],
                                  execCommand: 'systemctl restart nginx'  // 部署后重啟服務
                              )
                          ]
                      )
                  }
              }
          }
      }
      

四、分布式構建(遠程Slave節點)

若需將構建任務分發到遠程Ubuntu服務器(Slave節點),可通過SSH連接實現:

  1. 準備Slave節點
    在遠程Ubuntu服務器上安裝Jenkins Agent和Java:
    sudo apt update && sudo apt install -y openjdk-11-jdk
    wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
    sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ /etc/apt/sources.list.d/jenkins.list'
    sudo apt update && sudo apt install -y jenkins
    
  2. 配置Master節點
    進入Manage Jenkins > Manage Nodes and Clouds > New Node,輸入節點名稱(如RemoteSlave),選擇“Permanent Agent”,點擊“OK”。
    • Remote root directory:設置Slave節點的工作目錄(如/home/ubuntu/jenkins)。
    • Launch method:選擇“Launch agents via SSH”,填寫Slave節點的Hostname/IP,選擇之前配置的SSH Credentials(私鑰)。
    • Host Key Verification Strategy:選擇“Non verifying Verification Strategy”(測試環境)或手動驗證主機密鑰(生產環境)。
  3. 啟動Slave節點
    保存配置后,Jenkins會自動通過SSH連接到Slave節點,啟動Agent進程。節點狀態顯示為“Online”即表示連接成功。
  4. 分配任務到Slave
    在項目配置中,勾選“Restrict where this project can be run”,輸入Slave節點的標簽(如RemoteSlave),任務將自動分發到該節點執行。

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