Ubuntu下的Jenkins 持續整合(一)
Ubuntu下的Jenkins 持續整合
1、需要安裝JDK
JDK分為OpenJDK和常用的oracle JDK,一般輸入java -version後出現SE字元的是Oracle公司的,也就是我們常用的JDK。如果是openJDK,請先解除安裝後在安裝oracle的JDK並配置環境變數,參看此文:https://www.cnblogs.com/h--d/p/5673085.html
2、安裝jenkins(我這裡不是用的.war包)
先檢視自己的系統資訊,根據系統資訊下載對應的版本:Ubuntu 5.4.0-***;x86_64 GNU/Linux
可以下載.deb的安裝包
然後執行下面的命令:
cd 下載/
dpkg -i jenkins_2.73_all.deb
有可能提示jenkins依賴與daemon,所以安裝daemon:
sudo apt-get isntall daemon
然後再執行dpkg -i jenkins_2.73_all.deb
安裝完成,啟動jenkins,執行如下命令
sudo systemctl start jenkins
sudo systemctl status jenkins
可以看到已經啟動的資訊
關閉防火牆設定:
sudo apt-get install ufw
sudo ufw enable
sudo ufw allow 8080
Sudo ufw status
顯示已經啟用8080埠
備註:sudo ufw default deny 為預設關閉你的防火牆
瀏覽器輸入http://localhost:8080/
顯示登入框:
進入:sudo cat /var/lib/jenkins/secrets/initialAdminPassword 檢視密碼,預設使用者名稱為admin
等待一會兒後進入開始頁面:
我們選擇install suggested plugins來下載外掛,進入外掛下載頁面,較長時間的等待,如果升級完後有失敗的部分,可以選擇entry再此進行更新。
更新完後自動跳轉到註冊頁面,可以把admin改為自己熟悉的使用者名稱和密碼
註冊完後來到首頁,安裝任務完成:
備註:
1、查詢檔案find / -name 檔名;另外也可以用:locate 檔名
2、關閉jenkins命令:sudo systemctl stop jenkins
修改升級地址
這一部分可以不用先做,直接跳到:安裝相關外掛那一部,不行回頭再看此部分,目前版本驗證了網路對於下載外掛是沒有影響的,如果有影響,可以修改如下後在進行外掛的下載。因為牆的原因有些外掛下不下來,需要修改下地址:
我們進入到jenkins的安裝目錄;
cd /var/lib/jenkins
找到hudson.model.UpdateCenter.xml,updates下的default.json,用vim命令來編輯文字。
3、安裝相關外掛。
我們這裡是測試專案,測試框架是RF,所以安裝一個RF相關的外掛,需要傳送郵件,安裝一個郵件相關的外掛,其他外掛有需要再安裝。
Manage jenkins>Manage Plugins>Avaliable,搜尋框輸入Robot就會顯示出Robot Framework Plugin,勾選後點選install without restart。
安裝介面:
安裝完後顯示Success,然後同樣方法安裝Email Extension Plugin,安裝完成後重啟伺服器並重新整理瀏覽器。
sudo systemtcl restart jenkins
關於忘記密碼如何操作,可以參考這篇文章:
4、全域性安全設定
注意:如果是管理員使用者,需要按下面的圖配置,否則有些選項無法使用。Authorization選擇Matrix-based security 並新增使用者,勾選Administer,讓自己擁有管理員許可權,可以進行任何操作,其他組員按情況給予相應許可權:
其他地方可以預設不改動,儲存後返回主頁。
如果弄錯了,不要緊,可以進入config.xml裡面修改
useSecurity改為false,刪除authorizationStrategy,securityRealm節點後重啟伺服器再重新配置許可權。
5、配置郵件
最下面的選項Test configuration可以測試是否配置成功。
6、建立節點(Slave)---建立一個windows系統的節點(jenkins部署在linux上作為master)
進入系統管理>管理節點>新建節點
選擇OK儲存。
節點詳細配置如上面,完成後儲存
檢視節點資訊,此時有個紅叉表示節點未連線,可安下圖的兩種方法連線,建議第二種,第一種通常有問題。
第二種需要把slave.jar檔案儲存下來拷貝到節點機上面,在cmd下執行上面的一串命令。
我遇到過連線不上的問題:
報這種錯誤:Caused by:java.net.ConnectException:Connection timed out:connect
也就是連線超時了,我看了下IP的埠不是8080,而是另外一個,考慮到有可能master機上沒有開啟該埠,所以在linux上面輸入命令開啟埠:
sudo ufw allow 45334
sudo ufw status
在節點機上面在執行可以連通了: