Jenkins奇技淫巧 — 節(jié)點(diǎn)管理篇

\color{blue}{Jenkins系列文章還在更新和完善中,有什么疑問歡迎留言}

\color{blue}{目錄}

Jenkins奇技淫巧 — 安裝篇(mac)
Jenkins奇技淫巧 — 配置篇
Jenkins奇技淫巧 — 安全篇
Jenkins奇技淫巧 — 發(fā)送郵件篇
Jenkins奇技淫巧 — 全局變量篇
Jenkins奇技淫巧 — 新建任務(wù)篇
Jenkins奇技淫巧 — 插件篇
Jenkins奇技淫巧 — 問題篇
Jenkins奇技淫巧 — 命令篇
Jenkins奇技淫巧 — 環(huán)境配置篇(Android自動(dòng)化構(gòu)建)
Jenkins奇技淫巧 — 參數(shù)化構(gòu)建篇(Android自動(dòng)化構(gòu)建)
Jenkins奇技淫巧 — 第一次實(shí)戰(zhàn)篇(Android自動(dòng)化構(gòu)建)
Jenkins奇技淫巧 — Python打包篇(Android自動(dòng)化構(gòu)建)

Jenkins奇技淫巧 — Python發(fā)送郵件和上傳蒲公英(Android自動(dòng)化構(gòu)建)

Jenkins奇技淫巧 — 樂固,多渠道打包篇(Android自動(dòng)化構(gòu)建)
Jenkins奇技淫巧 — 節(jié)點(diǎn)管理篇
Jenkins奇技淫巧 — 優(yōu)秀文章篇


簡介

現(xiàn)在很多公司都會(huì)用Jenkins來實(shí)現(xiàn)自動(dòng)部署+測(cè)試平臺(tái),對(duì)于項(xiàng)目不多,發(fā)布不頻繁的情況下來說,一般不會(huì)用到節(jié)點(diǎn)配置,但是對(duì)于一些大型的企業(yè)來講,需要同時(shí)處理很多的任務(wù),這時(shí)候就需要借助Jenkins多節(jié)點(diǎn)或者我們所說的Jenkins分布式SLAVE來分擔(dān)任務(wù)了。

環(huán)境

  • 阿里云服務(wù)器一臺(tái),作為從節(jié)點(diǎn)
  • mac筆記本一臺(tái),作為主節(jié)點(diǎn)

添加節(jié)點(diǎn)

  • 系統(tǒng)管理 -> 節(jié)點(diǎn)管理 -> 新建節(jié)點(diǎn)


    屏幕快照 2019-05-05 上午10.38.10.png
  • 名稱:
    節(jié)點(diǎn)名稱

  • 遠(yuǎn)程工作目錄:
    在從節(jié)點(diǎn)服務(wù)器上,新建一個(gè)目錄,用于存放從節(jié)點(diǎn)所需要的文件

  • 標(biāo)簽
    標(biāo)簽用來對(duì)多節(jié)點(diǎn)分組,標(biāo)記之間用空格分隔.例如'refression java6'將會(huì)把一個(gè)節(jié)點(diǎn)標(biāo)記上'regression'和'java6'.

    舉例來說,如果你有多個(gè)Windows系統(tǒng)的構(gòu)建節(jié)點(diǎn)并且你的Job也需要在Windows系統(tǒng)上運(yùn)行,那么你可以配置所有的Windows系統(tǒng)節(jié)點(diǎn)都標(biāo)記為'windows', 然后把Job也標(biāo)記為'windows'.這樣的話你的Job就不會(huì)運(yùn)行在除了Windows節(jié)點(diǎn)以外的其它節(jié)點(diǎn)之上了.

  • 啟動(dòng)方式

    1. Launch agent agents via SSH
      通過安全SSH連接發(fā)送命令來啟動(dòng)從節(jié)點(diǎn)。需要從主服務(wù)器訪問從服務(wù)器,并且您必須提供可以在目標(biāo)計(jì)算機(jī)上登錄的帳戶。不需要root權(quán)限。
      • 主機(jī):即從節(jié)點(diǎn)的主機(jī)ip

      • Credentials:憑據(jù),如果沒有添加過任務(wù)憑據(jù),可以點(diǎn)擊添加,憑據(jù)的用戶名和密碼分別是從節(jié)點(diǎn)訪問的用戶名和密碼。

      • Host Key Verification Strategy
        主機(jī)密鑰驗(yàn)證策略,控制Jenkins如何在連接時(shí)驗(yàn)證遠(yuǎn)程主機(jī)提供的SSH密鑰(注意,這里遠(yuǎn)程主機(jī),值的是從節(jié)點(diǎn),因?yàn)楝F(xiàn)在配置的是從節(jié)點(diǎn)的屬性)

        1. known hosts file verification strategy
          已知主機(jī)文件驗(yàn)證策略
        2. manually provided key verification strategy
          手動(dòng)提供密鑰驗(yàn)證策略
        3. manually trusted key verification strategy
          手動(dòng)驗(yàn)證密鑰驗(yàn)證策略
          選擇 Manually Trusted Key Verification Strategy,這會(huì)在完成配置后,第一次連接從節(jié)點(diǎn)時(shí)要求我們手動(dòng)確認(rèn)當(dāng)前連接的從節(jié)點(diǎn)的身份。說明一下,Host Key 驗(yàn)證是用來防止中間人攻擊的
      • 點(diǎn)開高級(jí)

        1. 端口:從節(jié)點(diǎn)訪問的端口號(hào),默認(rèn)22,比如阿里云服務(wù)器默認(rèn)也是22.
        2. JavaPath:[可選]JDK路徑,默認(rèn)和master節(jié)點(diǎn)相同。路徑必須指定到Java程序,如:/path/bin/java,此處java路徑 不能僅僅指定JAVA_HOME,
          還要精確到j(luò)ava指令位置。如果只是到JAVA_HOME,在任務(wù)執(zhí)行日志中就會(huì)出現(xiàn) bash:/usr/java/jdk1.8.0_101: is a directory。
        3. JVM Options:[可選]JVM可選參數(shù)
        4. Remoting Work directory
          和上面的遠(yuǎn)程目錄填一樣就可以,至于有什么區(qū)別,不清楚。

        測(cè)試可以使用Unix命令,會(huì)自動(dòng)拼接在[SSH] Starting slave process:[Prefix Start Slave Command] cd '/path' && /path/bin/java -jar slave.jar [Suffix Start Slave Command]

    • 點(diǎn)擊保存

啟動(dòng)節(jié)點(diǎn)

點(diǎn)擊保存后,會(huì)跳轉(zhuǎn)到啟動(dòng)節(jié)點(diǎn)的界面,點(diǎn)擊啟動(dòng)即可。

啟動(dòng)成功后,在遠(yuǎn)程目錄(也就是從節(jié)點(diǎn)配置時(shí)填寫的目錄)下會(huì)多出這幾個(gè)文件


屏幕快照 2019-05-05 上午11.28.09.png

workspace是第一次執(zhí)行任務(wù)生成的工作目錄

  • 在主節(jié)點(diǎn)上指定需要在從節(jié)點(diǎn)執(zhí)行的任務(wù)
    打開任務(wù)的配置頁面


    屏幕快照 2019-05-05 上午11.31.06.png

這里用到了,配置的標(biāo)簽屬性

看一下Jenkins主界面,發(fā)現(xiàn)左下角出現(xiàn)了兩個(gè)節(jié)點(diǎn),啟動(dòng)限制在從節(jié)點(diǎn)執(zhí)行的任務(wù),然后你在從節(jié)點(diǎn)的歷史列表中能夠看到執(zhí)行中的任務(wù)。

任務(wù)執(zhí)行后,在從節(jié)點(diǎn)的遠(yuǎn)程目錄下,就會(huì)出現(xiàn)workspace目錄,下面有我們的工程文件。

  1. Launch agent via execution of command on the master
    通過讓Jenkins從主服務(wù)器執(zhí)行命令來啟動(dòng)代理。當(dāng)主設(shè)備能夠在另一臺(tái)機(jī)器上遠(yuǎn)程執(zhí)行一個(gè)進(jìn)程時(shí),例如,使用此選項(xiàng)。通過SSH或RSH。

    Jenkins考慮到某些企業(yè)可能有多個(gè)節(jié)點(diǎn)。如果在界面配置,那么升級(jí)版本之類的操作會(huì)很麻煩。所以允許你使用shell腳本去配置管理節(jié)點(diǎn)

當(dāng)某一個(gè)節(jié)點(diǎn)任務(wù)達(dá)到一定數(shù)量,就會(huì)自動(dòng)分別可以運(yùn)行該任務(wù)的節(jié)點(diǎn)機(jī)器上。

注意

配置時(shí),一定先保證主機(jī),端口,憑據(jù)都是正確的,選擇的認(rèn)證方式也是合理的。

無法啟動(dòng)從節(jié)點(diǎn)

  /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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容