通過SSH slave插件,我們可以讓Jenkins從服務器運行特定的工作,但在我的理解中,只有SSH足以執行命令,爲什麼Jenkins仍然想運行slave.jar(必須安裝JAVA)?爲什麼Jenkins Slave需要java來運行slave.jar?
回答
SSH是主從機之間的通信機制。
奴隸仍然必須運行一些東西來聽主人和做實際的構建。 Jenkins的奴隸代碼是用Java編寫的,並存儲在slave.jar中。
所以你在從機上需要Java的原因是因爲Jenkins從機軟件是用Java編寫的。主人使用SSH來告訴奴隸做些什麼。
感謝您的回答。但我仍然認爲只有ssh足以執行命令並獲取輸出和退出代碼。爲什麼需要Slave.jar來執行作業。 – zhangyuting
ssh非常適合與奴隸機器通信 - 但它只能告訴遠程機器做什麼。該「做什麼」是運行java並使用slave.jar。 ssh可以報告slave.jar的輸出。但是運行jenkins slave的智能在slave.jar中。你想到的是另一種方式,它可以*已經實現,這是主人可以發送大量的命令到遠程機器使用SSH。但實際上,爲了減少主服務器的工作量,它使用ssh向遠程機器發出單個命令:運行slave.jar完成其餘的操作。 –
謝謝戴夫,這讓感官。 – zhangyuting
- 1. 爲什麼我需要Java 6來運行Pycharm?
- 2. 在slave上運行powershell命令 - Jenkins
- 3. 我需要什麼圖形庫來運行java?
- 4. 爲什麼rails需要JavaScript運行時?
- 5. 使用jenkins docker slave插件時`jenkinsci/slave`做什麼?
- 6. 爲什麼我們需要安裝nodejs來運行打字稿
- 7. 爲什麼我需要「sudo」來運行Moovweb服務器?
- 8. 爲什麼我們需要Redis來運行CKAN?
- 9. 爲什麼LINQPad.exe需要調用LINQPad.exe來運行?
- 10. 爲什麼WebRTC需要ICE協議來運行?
- 11. 爲什麼需要通過getErrorStream()來運行一個進程?
- 12. Jenkins Master&Slave
- 13. Jenkins Master Slave Interaction
- 14. Jenkins需要太長時間來執行
- 15. 我們是否需要安裝RTC Build toolkit來運行jenkins?
- 16. MongoDB - 運行setFeatureCompatibilityVersion需要什麼特權?
- 17. 爲什麼pymongo需要sudo來安裝?
- 18. 爲什麼'testAndroidTestCaseSetupProperly`需要這麼長時間才能運行?
- 19. 這爲什麼需要這麼長時間才能運行?
- 20. 人們需要什麼來運行我的應用程序?
- 21. 我需要做些什麼來獲得$廣播運行?
- 22. 我需要什麼C++包來運行程序?
- 23. 我需要什麼庫來運行這個keygenerator類
- 24. 我需要什麼來在IIS上運行PHP應用程序?
- 25. 爲什麼我需要jdbc與sqlite java?
- 26. 爲什麼Java發送需要Thread.Sleep
- 27. 爲什麼我們需要Java NIO Selector?
- 28. Java:爲什麼需要包裝類?
- 29. 爲什麼JAVA需要構造函數?
- 30. 爲什麼@Override需要在Java或Android?
SSH是Jenkins支持的遠程執行機制的一部分。 Jenkins自己的功能位於slave.jar中。 – Jayan