持續集成高級篇之基於win32-openssh搭建jenkins混合集羣(一)

系列目錄html

前面的demo咱們使用的都是隻有一個windows主節點的的jenkins,實際生產環境中,一個節點每每是不能知足需求的.好比,.net項目要使用windows節點構建,java項目若是部署在linux服務器上每每也須要目標類型的linux節點作爲構建節點,開發中使用的jdk版本不一樣也可能須要不一樣的構建主機.構建docker鏡像每每也須要linux主機(強烈不建議使用docker for windows 進行linux環境的docker構建).本節咱們講解如何搭建一個主節點爲windows server主機,從節點同時包含windows server和centos的jenkins集羣java

須要注意的是,因爲windows不支持ssh(至少目前絕大多數線上的windows server主機是這樣的),所以windows從節點每每是經過JNLP的方式搭建的.而linux則相對較爲簡單,只須要配置ssh便可.linux

使用JNLP配置從節點雖然也不十分複雜,可是缺點也比較明顯.那就是須要在目標主機上啓動一個控制檯程序,一方面這個程序容易被誤關,另外一方面若是windows server重啓則須要手動把它啓動起來,這樣極大增長了工做量.若是運維的工做負荷很是高,極可能在一次大規模主機重啓後忘記重啓一些軟件,這樣不少錯誤可能在已經影響使用的狀況下才會發現.所以,這裏咱們探索一種新的方式,即便用微軟公司開發的win32-openssh(現已集成到windows 10和windows server 2019),配置也很是方式.有了win32-openssh,咱們就能夠像linux主機同樣使用ssh方式配置windows從節點.雖然咱們提倡使用win32-openssh,可是仍然會介紹如何使用JNLP來配置windows從節點git

通過筆者測試,win32-openssh支持windows server 2008及以上版本,目前恐怕沒有更老的服務器版本了吧,你們不用擔憂生產環境沒法使用的問題.固然,win32-openssh的用途毫不僅限於搭建jenkins混合集羣,還能夠用它完成更多的基於windows的自動化管理工做.筆者基於win32-openssh作了一套windows服務的自動化管理工具(支持windows服務的關閉,更新,啓動,重啓,中止,擴容等功能),目前部署在大約30臺線上服務器上.github

安裝win32-openssh

前面咱們說到要基於win32-openssh來基於ssh配置Jenkins的windows從節點,這節咱們就先介紹如何安裝win32-openssh,而後緊接着開始使用ssh配置jenkins windows從節點.docker

linux從節點ssh配置也是同樣,所以再也不單獨介紹linux從節點的ssh配置shell

咱們進入openssh-win32github頁面進行下載,根據本身系統位數選擇32位或者64位的.windows

下載完成之後進行解壓,把解壓後的文件夾放到C盤(也能夠是其它盤),而後進入文件夾裏面,內容相似以下:centos

img

在當前目錄下打開powershell(或者從其它位置打開,cd到當前目錄),在powershell命令窗口輸入.\install-sshd.ps1,執行安裝命令.安全

若是在執行過程當中powershell報錯,提示權限不足,則進行如下設置Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process,不少網上的教程沒有指定scope,則很容易形成安全問題,在我的電腦上無所謂,在服務器上必定要重視太高的權限.

完了之後再執行FixHostFilePermissions.ps1FixUserFilePermissions.ps1這兩個文件.(在powershell命令窗口輸入.\文件名).

啓動ssh服務.

安裝完成之後,ssh相關服務默認是不啓動的,咱們打開服務管理界面,手動啓動它們並把啓動類型設置爲自動,這樣服務器重啓開機時ssh相關的服務就會自動啓動.

img

windows10開啓ssh

windows較新的版本已集成了openssh,可是須要手動開啓它.

  • 進入個人電腦,而後點擊上面的計算機標籤,而後選擇卸載或更新應用

img

  • 在出現的界面裏選擇管理額外功能

img

  • 點擊添加功能,而後在出現的列表裏找到ssh相關的功能,都添加上

img

把openssh所在文件夾添加到path

咱們把win32-openssh所在文件夾路徑添加到環境變量path裏,這樣咱們就能夠在控制檯輸入ssh命令來鏈接遠程主機,而不須要相似xshell,putty這樣的終端工具.

生成ssh key

添加完環境變量後,咱們打開cmd或者powershell命令窗口,輸入ssh-keygen命令,生成ssh key,輸入命令後一路回車.最終生成的key存放在C:/Users/當前用戶名/.ssh/目錄下.

img

其中id_rsa爲私鑰,id_rsa.pub爲公鑰,authorized_keys爲受權訪問本機的遠程電腦的公鑰,known_hosts爲,初次訪問遠程主機時存儲的信息.晚些時候咱們會用到這些文件.

安裝完ssh之後若是忘記了它的安裝位置,打開命令窗口,輸入where ssh就能夠看到ssh.exe所在的目錄.

相關文章
相關標籤/搜索