--- title: 'Jenkins 2023學習筆記' --- Jenkins 2023學習筆記 === 備注 - 系統配置 - Ubuntu 22.04.2 LTS - CPU 1 核心,2 綫程 - RAM 8 GB - 參考網址: - [Jenkins](https://pkg.jenkins.io/debian-stable/) - [ChatGPT 佛祖](https://chat.openai.com/) - 需要檢查伺服器配置是否符合Jenkins的配置需求 ## 目錄 [TOC] 安裝指令 --- ### 1. 更新系統套件列表: - 在安裝任何新軟件之前,首先更新您的系統套件列表。這確保您能安裝到最新版本的軟件: ```bash!= sudo apt update ``` 這個命令會從所有配置的來源(包括後續添加的 Jenkins 存儲庫)獲取最新的套件信息。 ### 2. 安裝 Java(Jenkins 需要 Java 運行): - 可以先執行 `java -version` , 該指令檢查伺服器是否有安裝java以及版本符合Jenkins的需求 - 由於 Jenkins 支持多個 Java 版本,包括較新的 OpenJDK 17,您可以根據需要選擇合適的版本。若要安裝 OpenJDK 17,請使用以下命令: ```bash!= sudo apt install openjdk-17-jdk ``` - 安裝完成後,可以檢查安裝的 Java 版本以確保正確安裝了所需的版本。使用以下命令來檢查 Java 版本: ```bash!= java -version ``` 這個命令將顯示安裝的 Java 版本信息,包括版本號和其他相關細節。確認是否安裝了正確的 Java 版本。 ### 3. 添加 Jenkins 存儲庫的 GPG 鍵: - 根據官方指令,使用以下命令添加 Jenkins 存儲庫的 GPG 鍵: ```bash!= sudo wget -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key ``` 這個命令會從 Jenkins 官方網站下載 GPG 鍵,並將其保存到 /usr/share/keyrings 目錄下的 jenkins-keyring.asc 文件中。GPG 鍵用於驗證存儲庫的安全性,以確保從存儲庫下載的軟件是官方提供的,未被篡改。 ### 4. 將 Jenkins 存儲庫添加到系統源列表: - 創建新的存儲庫文件 您需要在 /etc/apt/sources.list.d/ 目錄下創建一個名為 jenkins.list 的新文件。這可以通過以下命令完成: ```bash!= sudo nano /etc/apt/sources.list.d/jenkins.list ``` - 檢查文件內容 使用 nano 編輯器打開(或創建)jenkins.list 文件後,檢查是否已經包含了下面的內容: ```bash!= deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ ``` 如果該文件是新創建的,這時文件應該是空的。 - 添加 Jenkins 存儲庫信息: 如果上述內容不在文件中,您需要添加它。這可以通過下面的命令完成: ```bash!= 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 ``` ### 5. 再次更新套件列表: - 如果在完成上述步骤之後有任何新增的存儲庫,則再次更新系統套件列表: ```bash!= sudo apt update ``` 這個命令將更新系統套件列表,確保安裝最新版本的軟件。 ### 6. 安裝 Jenkins: ```bash!= sudo apt install jenkins ``` 這個命令將安裝 Jenkins。安裝完成後,Jenkins 會作為服務添加到您的系統中。 ### 7. 啟動 Jenkins 服務並設置自動啟動: - 啟動 Jenkins 服務: ```bash!= sudo systemctl start jenkins ``` 這個命令會啟動 Jenkins 服務。 - 設置 Jenkins 服務在啟動時自動運行: ```bash!= sudo systemctl enable jenkins ``` 這個命令將 Jenkins 服務設置為在系統啟動時自動運行。 - 檢查運行情況 ```bash!= sudo systemctl status jenkins ``` 這個命令用於檢查 Jenkins 服務的狀態。按 `q` 鍵退出狀態顯示界面,返回命令行提示符。 如果出于某种原因 `q` 键不起作用,也可以尝试使用组合键 `Ctrl + C` 来中断命令的执行并返回到命令行。但在大多数情况下,`q` 键就足够了。 正常運行内容:  - 重新啟動 Jenkins 服務: ```bash!= sudo systemctl restart jenkins ``` 如果需要,您可以使用此命令來重新啟動 Jenkins 服務。 ### 8. 訪問和配置 Jenkins: 在網頁瀏覽器中訪問 http://<your_server_ip>:8080。使用初始管理員密碼登錄,該密碼可以在以下路徑找到: ```bash!= sudo cat /var/lib/jenkins/secrets/initialAdminPassword ``` 這個密碼是訪問 Jenkins 的初始管理員密碼。 ### 9. 檢查伺服器8080端口有沒有打開: ``` sudo ufw status ``` 如果防火牆啟用,確保 8080 端口已開放以便訪問 Jenkins。 ### 10. 成功訪問畫面: - http://<your_server_ip>:8080 時(記得檢查端口 8080 是否已開放),您需要輸入上述查詢到的管理員密碼以解鎖並配置 Jenkins。  - 之後,您可以選擇安裝推薦的插件。安裝過程可能需要一點時間。安裝完成後,您可以開始使用並進一步配置 Jenkins。  自動偵測設定 --- ### 1. 對github repository 設定 webhook - 設定 http://xx.xxx.xx.xx:8080/github-webhook/ 為 Webhook 的 URL。在 URL 末尾一定要加上 /github-webhook/(不可以缺少任何符號)。  - 設定如下:勾選“Just the push event”選項。  ### 2. 設定jenkins項目 - 點擊“新增作業”按鈕:  - 輸入項目名稱並點擊“Free-Style”選項:  - 在“General”區塊內貼上 GitHub 儲存庫的網址:  - 在“原始碼管理”區塊內也貼上 GitHub 儲存庫的網址: - 記得在“Branches to build”設定主要的分支  設置觸發程序: - 勾選“GitHub hook trigger for GITScm polling”選項 - 這個設定用於當 Jenkins 從 GitHub 收到推送通知時,GitHub 插件會檢查這個通知是否來自與 Jenkins 工作中設定的 Git 儲存庫相匹配的 GitHub 儲存庫。如果兩者相匹配,且相關選項已啟用,GitHub 插件會觸發一次對 GITScm 的輪詢。當 GITScm 輪詢 GitHub 時,它會發現有變更,並開始一次建置(build)。這個行為是 Git 插件的功能,所以輪詢和啟動建置不是 GitHub 插件的功能。  ### 3. 設定构建步驟 - Shell脚本,輸入以下指令執行條件後的操作: ```sell!= #!/bin/bash # 目標 Git 倉庫目錄 REPO_DIR="/var/www/html/NewBackEndSystem" # 添加 Git 安全目錄配置 # 這條命令是Git 2.34.1 或更高版本中引入的一個安全機制, # 用於告訴 Git 該目錄是安全的,以避免在新版本 Git 中出現所有權安全檢查導致的錯誤。 git config --global --add safe.directory "$REPO_DIR" # 檢查目錄是否存在 if [ ! -d "$REPO_DIR" ]; then echo "錯誤:目錄 $REPO_DIR 不存在" exit 1 fi # 檢查目錄是否為 Git 倉庫 if [ ! -d "$REPO_DIR/.git" ]; then echo "錯誤:$REPO_DIR 不是一個 Git 倉庫" exit 1 fi # 進入目錄 cd $REPO_DIR # 拉取最新代碼 git pull origin main # 檢查 git 操作是否成功 if [ "$?" -ne 0 ]; then echo "從 Git 倉庫拉取代碼失敗" exit 1 fi echo "代碼更新成功" ``` - 設定完成後點擊“存儲”:  ### 4. 測試 進行提交 Pull Request 至 main 分支,檢查 Jenkins 是否有正常執行。 - 正常情況下左下角會有動作并且顯示為綠色的勾號(✔):  - 如果還是沒法執行可能原因有(以下為可能性,可能還有沒遇到的問題): - GitHub 的 Webhooks URL 沒有正常請求 - 伺服器上沒有安裝 Git - 伺服器身份組的問題 - 文件不存在 - 沒有足夠的權限執行 git pull 操作 - 身份組解決方式: - jenkins身份組, 加入該資料夾擁有者的身份組内
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up