Linux 環境下搭建 Jenkins(Hudson)平臺

安裝jenkins:
安裝 jenkins 有兩種方式:
安裝方式一:?
[java] view plain copy
  1. sudo?java?-jar?jenkins.war?–httpPort=18080?–ajp13Port=18009??
但是很多時候我們是使用SSH方式到目標機器上的,放我們關閉SSH連接時,這個命令也會被中斷,jenkins服務會被終止,我們不可能一直保持這SSH連接,怎么辦?可以把這行命令寫成 shell 腳本,然后使用 nohup sh jenkins.sh &
命令啟動這個腳本,這樣jenkins就能正常提供服務了。
安裝方式二:安裝 RPM包
為了能夠使用jenkins庫,首先需要導入jenkins庫的 key:
[java] view plain copy
  1. sudo?wget?-O?/etc/yum.repos.d/jenkins.repo?http://pkg.jenkins-ci.org/redhat/jenkins.repo?sudo?rpm?–import?http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key??
安裝軟件(以jenkins-x.x.x.rpm為例):yum install jenkins-x.x.x.rpm
? ?刪除軟件:yum remove jenkins-x.x.x.rpm或者yum erase jenkins-x.x.x.rpm
? ?升級軟件:yum upgrade jenkins或者yum update jenkins
? ?查詢信息:yum info jenkins
開啟服務(關閉,重啟): ?
[java] view plain copy
  1. sudo?service?jenkins?start|stop|restart??
檢查jenkins是否安裝完成: localhost:8080 (默認是8080 端口,如果采用安裝方式一,那么就需要指定的端口)
運行job時遇到的問題:
?mvn:command not found
遇到的問題: 不能使用MVN命令;
排查過程:
①Jenkins 默認創建進程,啟動任務的用戶名是 jenkins,使用root權限查看passwd,可以看到這個用戶默認情況下 ssh 為false,也就是說這個用戶默認情況下是不能使用ssh進行登錄的,除非修改 passwd中相應字段為 bash,然后sourse;
jenkins:x:500:500:mengqc:/home/jenkins:/bin/fasle
passwd文件的格式: ?注冊名:口令:用戶標識號:組標識號:用戶名:用戶主目錄:命令解釋程序
②默認情況下 Jenkins 的安裝目錄是 /var/lib/jenkins/ ,項目根目錄是 /var/lib/jenkins/jobs/workspace

從目錄上看,就知道這個是需要 root 權限才能執行一些命令,但是我們通過界面 執行一些命令使用的是admin用戶,縱使我們在 根目錄下 能適應mvn命令,但是問題也不能解決。

還有一個簡單的測試Maven 是否加入到了環境變量中的方法,在執行mvn命令時,填寫maven安裝的絕對路徑,如果能夠執行,說明不是權限的問題,而是環境變量的問題。


解決方案一:
①安裝 ssh slave 插件;
②啟動slave 服務;
③jenkins-系統管理-節點管理:重新設置 slave機器的 Remote FS root 為 /home/admin/xxx
(主要是添加了workspace的目錄) $ITEM_ROOTDIR
④把master的節點數設為0,這樣默認情況下就會使用 slave節點。
問題:
如果修改 工作目錄(Remote FS root),可能會遇到:
[java] view plain copy
  1. “main”java.lang.NoclassDefFoundError:hudson/maven/agent/Main??
原因:我們修改了slave的工作目錄,但是slave服務沒有重啟導致;
解決方法:使用我們的腳本 對slave進行 重啟操作。
解決方案二:
在 /home/admin/目錄下新建一個工作目錄,然后將 /var/lib/jenkins目錄設置成一個跳轉鏈接 ,鏈接到admin目錄下 [sudo ln -s /home/admin/xxx/ ?/var/lib/jenkins] ,然后將/var/lib/jenkins 目錄下的文件 mv 到/home/admin/xxx/ 目錄下。
mvn和一些基本的命令是可以運行了,但是運行shell腳本時還是沒有權限,因為 新建的這個跳轉連接user=root ,group=root,并且對這個鏈接 使用chown/chgrp 都是沒有效果的,執行一些操作命令是還是沒有權限;

解決方案三:修改默認 jenkins 用戶為 admin
①安裝jenkins?
Java代碼 ?(我們一般使用的是admin權限)
[java] view plain copy
  1. sudo?wget?-O?/etc/yum.repos.d/jenkins.repo?http://pkg.jenkins-ci.org/redhat/jenkins.repo????
  2. sudo?rpm?--import?http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key????
  3. sudo?yum?install?jenkins????
  4. rpm?-ql?jenkins????


②. 配置jenkins?
Java代碼 ?
// edit JENKINS_PORT, JENKINS_USER ?
sudo vi /etc/sysconfig/jenkins ?(把 JENKINS_USER 設置為 admin)
③. 修改jenkins權限(如果修改JENKINS_USER情況下)?
Java代碼 ?
[java] view plain copy
  1. ####??
  2. sudo?chown?-R?admin?/usr/lib/jenkins????
  3. sudo?chgrp?-R?admin?/usr/lib/jenkins???
  4. ####??
  5. sudo?chown?-R?admin?/var/log/jenkins???
  6. sudo?chgrp?-R?admin?/var/log/jenkins????
  7. sudo?chown?-R?admin?/var/lib/jenkins????
  8. sudo?chgrp?-R?admin?/var/lib/jenkins????
  9. sudo?chown?-R?admin?/var/cache/jenkins???
  10. sudo?chgrp?-R?admin?/var/cache/jenkins?(這個如果不改,會出現404)??

④. 啟動jenkins?
Java代碼 ?
sudo /sbin/service jenkins start?
或者 ?sudo service jenkins start

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387386.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387386.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387386.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android APK 打包過程 MD

Markdown版本筆記我的GitHub首頁我的博客我的微信我的郵箱MyAndroidBlogsbaiqiantaobaiqiantaobqt20094baiqiantaosina.comAndroid APK 打包流程 MD 目錄 目錄APK 的打包流程整體流程資源的編譯和打包資源ID資源索引概況具體打包過程aapt階段aidl階段Java Compiler階段dex階段a…

可用于 主成分分析、R型因子分析、簡單相應分析 的R語言函數總結

一、主成分分析 主成分分析是多元統計分析的一種常用的降維方法,它以盡量少的信息損失,最大程度將變量個數減少,且彼此間互不相關。提取出來的新變量成為主成分,主成分是原始變量的線性組合。 1.1 KMO檢驗和Bartlett球形檢驗 在…

[國家集訓隊]墨墨的等式

Description 墨墨突然對等式很感興趣,他正在研究a1x1a2y2…anxnB存在非負整數解的條件,他要求你編寫一個程序,給定N、{an}、以及B的取值范圍,求出有多少B可以使等式存在非負整數解。 Input 輸入的第一行包含3個正整數,…

Storm簡介

Storm是實時流式數據處理框架,支持多種編程語言 應用案例: realtime analytics online machine learning continuous computation distributed RPC ETL 性能:a million tuples per second per node 可擴展、高容錯 結合消息隊列和數據庫…

持續集成之Jenkins安裝部署

安裝JDKJenkins是Java編寫的,所以需要先安裝JDK,這里采用yum安裝,如果對版本有需求,可以直接在Oracle官網下載JDK。 [rootlinux-node1 ~]# yum install -y java-1.8.0 安裝Jekins [rootlinux-node1 ~]# cd /etc/yum.repos.d/ […

2019/2/18 Python今日收獲

Python day15——032,033異常處理:你不可能總是對的 1. Python標準異常總結AssertionError斷言語句(assert)失敗AttributeError嘗試訪問未知的對象屬性EOFError用戶輸入文件末尾標志EOF(Ctrld)FloatingPoin…

Shell01

shell是一個命令解釋器,是操作系統的最外層。 把用戶的輸入解釋給操作系統,將操作系統的輸入結果返回給用戶。 硬件-->kernel-->shell-->外圍應用程序 shell腳本:將命令或語句寫入文件,進行操作系統管理。 shell腳本…

jenkins svn tomcat ant自動部署

Jenkins Jenkins是基于Java開發的一種持續集成工具,用于監控持續重復的工作,功能包括: 1、持續的軟件版本發布/測試項目。 2、監控外部調用執行的工作。 跟其他持續集成相比,它的主要優點有: 開源,即免…

Shell02

局部變量 1、普通字符串變量 變量名value 變量名value #單引號中不進行變量解析,原樣輸出,應用不多 變量名"value" #雙引號會解析變量 例: a1123 a2234 a3"345" echo "a1$a1" echo "a2$a2&quo…

553 mail from must equal authorized user解決方法

在配置發送郵件通知,驗證其正確性時,出現"553 mail from must equal authorized user"提示的錯誤; 原因在于沒有在"系統管理(Manage Jenkins)"的"系統設置(Configure system&…

3.1 讀入一個參數

已知正方形的邊長&#xff0c;求出其面積。 輸入樣例&#xff1a; 1 2 3 4 輸出樣例&#xff1a; 1 4 9 16 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交時&#xff0c;注釋此句i…

[Apple開發者帳戶幫助]八、管理檔案(2)創建臨時配置文件(iOS,tvOS,watchOS)...

創建臨時配置文件以在設備上運行您的應用程序而無需Xcode。在開始之前&#xff0c;您需要一個App ID&#xff0c;一個分發證書和多個注冊設備。 有關完整的臨時配置文件工作流程&#xff0c;請轉到Xcode幫助中的分發到已注冊設備&#xff08;iOS&#xff0c;tvOS&#xff0c;wa…

Ant Build.xml

題記&#xff1a;用 Eclipse 3 &#xff0b;Tomcat 5 做東東&#xff0c;用起來還是比較爽。但是調試時每次手動Deploy到Tomcat中&#xff0c;比較麻煩。今用Ant來完成之。 1。打開Eclipse&#xff0c;在項目的根路徑下建立builds.xml文件。 這個是Ant配置的關鍵。其內容如下&…

3.2 讀入兩個參數

計算兩個整數的差。 輸入樣例&#xff1a; 1 3 5 7 輸出樣例&#xff1a; -2 -2 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交時&#xff0c;注釋此句int num1, num2;while (cin &g…

解決做好一個機器學習項目的3個問題

機器學習是目前人工智能最令人激動的研究方向之一。我們可能更關注機器學習算法的實現細節&#xff0c;沉浸于機器學習所需要的數學功底&#xff0c;但對于機器學習從業者來說&#xff0c;如何更好更快速的實現一個機器學習項目更值得關注。 正如吳恩達在《機器學習》這門課中所…

數據挖掘的相關知識例子

一、貝葉斯 貝葉斯定理由英國數學家貝葉斯 ( Thomas Bayes 1702-1761 ) 發展&#xff0c;用來描述兩個條件概率之間的關系&#xff0c;比如 P(A|B) 和 P(B|A)。按照乘法法則&#xff0c;可以立刻導出&#xff1a;P(A∩B) P(A)*P(B|A)P(B)*P(A|B)。如上公式也可變形為&#xf…

3.3 1!到n!的和

求1! 2! ... n! 的結果。 輸入樣例&#xff1a; 3 6 輸出樣例 9 873 #include<iostream> #include<fstream> using namespace std;int main() {ifstream cin("test.txt");//向OJ提交時&#xff0c;注釋此句int num;while (cin >> num){int…

[幣嚴區塊鏈]以太坊(ETH)Dapp開發入門教程之寵物商店領養游戲

閱讀本文前&#xff0c;你應該對以太坊、智能合約有所了解&#xff0c;如果你還不了解&#xff0c;建議你先看以太坊是什么 除此之外&#xff0c;你最好還了解一些HTML及JavaScript知識。 本文通過實例教大家來開發去中心化應用&#xff0c;應用效果如圖: 項目背景 Pete有一個…

怎么通俗易懂地解釋貝葉斯網絡和它的應用?

作者&#xff1a;小杰鏈接&#xff1a;https://www.zhihu.com/question/28006799/answer/38996563來源&#xff1a;知乎著作權歸作者所有。商業轉載請聯系作者獲得授權&#xff0c;非商業轉載請注明出處。英語原文&#xff1a;http://www.norsys.com/tutorials/netica/secA/tut…

3.4 等比數列

已知q與n&#xff0c;求等比數列之和&#xff1a;1 q q^2 ... q^n 輸入樣例&#xff1a; 6 0.3 5 1.3 輸出樣例&#xff1a; 1.428 12.756 #include<iostream> #include<fstream> #include<cmath> using namespace std;int main() {ifstream cin(…