Jenkins奇技淫巧 — 安裝篇(mac)
Jenkins奇技淫巧 — 配置篇
Jenkins奇技淫巧 — 安全篇
Jenkins奇技淫巧 — 發(fā)送郵件篇
Jenkins奇技淫巧 — 全局變量篇
Jenkins奇技淫巧 — 新建任務篇
Jenkins奇技淫巧 — 插件篇
Jenkins奇技淫巧 — 問題篇
Jenkins奇技淫巧 — 命令篇
Jenkins奇技淫巧 — 環(huán)境配置篇(Android自動化構建)
Jenkins奇技淫巧 — 參數(shù)化構建篇(Android自動化構建)
Jenkins奇技淫巧 — 第一次實戰(zhàn)篇(Android自動化構建)
Jenkins奇技淫巧 — Python打包篇(Android自動化構建)
Jenkins奇技淫巧 — Python發(fā)送郵件和上傳蒲公英(Android自動化構建)
Jenkins奇技淫巧 — 樂固,多渠道打包篇(Android自動化構建)
Jenkins奇技淫巧 — 節(jié)點管理篇
Jenkins奇技淫巧 — 優(yōu)秀文章篇
簡介
現(xiàn)在很多公司都會用Jenkins來實現(xiàn)自動部署+測試平臺,對于項目不多,發(fā)布不頻繁的情況下來說,一般不會用到節(jié)點配置,但是對于一些大型的企業(yè)來講,需要同時處理很多的任務,這時候就需要借助Jenkins多節(jié)點或者我們所說的Jenkins分布式SLAVE來分擔任務了。
環(huán)境
- 阿里云服務器一臺,作為從節(jié)點
- mac筆記本一臺,作為主節(jié)點
添加節(jié)點
-
系統(tǒng)管理 -> 節(jié)點管理 -> 新建節(jié)點
屏幕快照 2019-05-05 上午10.38.10.png 名稱:
節(jié)點名稱遠程工作目錄:
在從節(jié)點服務器上,新建一個目錄,用于存放從節(jié)點所需要的文件-
標簽
標簽用來對多節(jié)點分組,標記之間用空格分隔.例如'refression java6'將會把一個節(jié)點標記上'regression'和'java6'.舉例來說,如果你有多個Windows系統(tǒng)的構建節(jié)點并且你的Job也需要在Windows系統(tǒng)上運行,那么你可以配置所有的Windows系統(tǒng)節(jié)點都標記為'windows', 然后把Job也標記為'windows'.這樣的話你的Job就不會運行在除了Windows節(jié)點以外的其它節(jié)點之上了.
-
啟動方式
- Launch agent agents via SSH
通過安全SSH連接發(fā)送命令來啟動從節(jié)點。需要從主服務器訪問從服務器,并且您必須提供可以在目標計算機上登錄的帳戶。不需要root權限。主機:即從節(jié)點的主機ip
Credentials:憑據(jù),如果沒有添加過任務憑據(jù),可以點擊添加,憑據(jù)的用戶名和密碼分別是從節(jié)點訪問的用戶名和密碼。
-
Host Key Verification Strategy
主機密鑰驗證策略,控制Jenkins如何在連接時驗證遠程主機提供的SSH密鑰(注意,這里遠程主機,值的是從節(jié)點,因為現(xiàn)在配置的是從節(jié)點的屬性)- known hosts file verification strategy
已知主機文件驗證策略 - manually provided key verification strategy
手動提供密鑰驗證策略 - manually trusted key verification strategy
手動驗證密鑰驗證策略
選擇 Manually Trusted Key Verification Strategy,這會在完成配置后,第一次連接從節(jié)點時要求我們手動確認當前連接的從節(jié)點的身份。說明一下,Host Key 驗證是用來防止中間人攻擊的
- known hosts file verification strategy
-
點開高級
- 端口:從節(jié)點訪問的端口號,默認22,比如阿里云服務器默認也是22.
- JavaPath:[可選]JDK路徑,默認和master節(jié)點相同。路徑必須指定到Java程序,如:/path/bin/java,此處java路徑 不能僅僅指定JAVA_HOME,
還要精確到java指令位置。如果只是到JAVA_HOME,在任務執(zhí)行日志中就會出現(xiàn) bash:/usr/java/jdk1.8.0_101: is a directory。 - JVM Options:[可選]JVM可選參數(shù)
- Remoting Work directory
和上面的遠程目錄填一樣就可以,至于有什么區(qū)別,不清楚。
測試可以使用Unix命令,會自動拼接在[SSH] Starting slave process:[Prefix Start Slave Command] cd '/path' && /path/bin/java -jar slave.jar [Suffix Start Slave Command]
- 點擊保存
- Launch agent agents via SSH
啟動節(jié)點
點擊保存后,會跳轉到啟動節(jié)點的界面,點擊啟動即可。
啟動成功后,在遠程目錄(也就是從節(jié)點配置時填寫的目錄)下會多出這幾個文件
workspace是第一次執(zhí)行任務生成的工作目錄
-
在主節(jié)點上指定需要在從節(jié)點執(zhí)行的任務
打開任務的配置頁面
屏幕快照 2019-05-05 上午11.31.06.png
這里用到了,配置的標簽屬性
看一下Jenkins主界面,發(fā)現(xiàn)左下角出現(xiàn)了兩個節(jié)點,啟動限制在從節(jié)點執(zhí)行的任務,然后你在從節(jié)點的歷史列表中能夠看到執(zhí)行中的任務。
任務執(zhí)行后,在從節(jié)點的遠程目錄下,就會出現(xiàn)workspace目錄,下面有我們的工程文件。
-
Launch agent via execution of command on the master
通過讓Jenkins從主服務器執(zhí)行命令來啟動代理。當主設備能夠在另一臺機器上遠程執(zhí)行一個進程時,例如,使用此選項。通過SSH或RSH。Jenkins考慮到某些企業(yè)可能有多個節(jié)點。如果在界面配置,那么升級版本之類的操作會很麻煩。所以允許你使用shell腳本去配置管理節(jié)點
當某一個節(jié)點任務達到一定數(shù)量,就會自動分別可以運行該任務的節(jié)點機器上。
注意
配置時,一定先保證主機,端口,憑據(jù)都是正確的,選擇的認證方式也是合理的。
無法啟動從節(jié)點
/Users/pengdaosong/.ssh/known_hosts [SSH] No Known Hosts file was found at /Users/pengdaosong/.ssh/known_hosts.
Please ensure one is createdat this path and that Jenkins can read it.
- 生成SSH密鑰
ssh-keygen
cd .ssh
cat id_rsa.pub > authorized_keys
chmod 700 authorized_keys - Host Key Verification Strategy
選擇manually trusted key verification strategy