星期一, 2月 16, 2015

PSCP + freeSSHd

為了彌補 Jenkins 的 Publish Over SSH plugin 只能將檔案由 Jenkins 往 SSH Server 送,不能反過來從 SSH Server 抓檔案的困擾,可以在 Jenkins 上安裝 PuTTY 的兄弟:PSCP.exe。要注意的幾點:
  • 在 Jenkins 設定一個 Execute Windows batch command 並執行之前,依這篇文章的做法,讓對方伺服器成為我「認識的主機」,要特別注意 Jenkins 服務的帳戶是哪個,如果是「本機系統帳戶」的話,機碼應該在 HKEY_USERS\.DEFAULT\Software\SimonTatham\PuTTY\SshHostKeys 這個位置。
  • 連線用戶身分的私鑰,可以由 PassPhrase 保護,或不加保護。如果是受保護的私鑰,在 PSCP 的命令參數除了 -i 指定私鑰檔之外,還要另加一個 -pw PassPhrase。至於私鑰檔的格式,與 PuTTY 相同,匯出工具可參考這篇

星期四, 2月 12, 2015

PuTTY 很棒,但 PuTTYgen 需要替代品

就「產生金鑰對」這功能,PuTTYgen 當然是可以勝任的,但有時我們會需要把結果匯出到不同的檔案格式,以便對其他程式交換金鑰,就會覺得還是 Bitvise SSH Client 比較好。在產生金鑰對之後,它可以選擇兩種公鑰匯出格式(OpenSSH、StandardSSH2)與三種私鑰匯出格式(Bitvise、OpenSSH、PuTTY)。

Jenkins + SSH plugin

為了讓 Jenkins 能成為 SSH client,從遠端下命令,考慮使用「SSH plugin」這個插件,但它表現不太理想(搭配某些免費的 SSH Server 會有問題),換成「Publish Over SSH」會比較好,雖然名字看起來功能是不同的,但它除了主要做 SCP 之外,也能下命令到遠端哦!

星期三, 2月 11, 2015

freeSSHd

這是一個安裝在 Windows 上的簡易 SSH Server,有幾點要注意:
  1. 在它本身的控制面板上如果顯示 "SSH server is not running",請看工作管理員,是否執行了多個程序,或有其他程式已佔用了預設的 port 22。
  2. 以「系統管理員」身分執行,否則自訂帳號可能無法儲存,控制面板一關就失效了(即使程序還在)。
  3. 預設防火牆是禁止外界連入 port 22 的,要開啟或換埠。
  4. 似乎過一段時間(幾小時?)沒有使用的話,即使服務仍處於啟動狀態,工作管理員的程序也在,但外面就是連不進來,要重啟服務來解決。
至於另一個比較知名的 OpenSSH 也有 Windows 版本,但它基於 Cygwin,又太舊了,所以安裝步驟要加很多補丁(可參考這篇說明),不推薦。

星期二, 2月 03, 2015

Jenkins + remote JMeter

  1. Install Java, JMeter in same version on Jenkins and remote JMeter server (ex: 10.1.2.3).
  2. [remote JMeter server]
    1. Edit jmeter.properties: "server.rmi.port=1099", "server.rmi.localport=4000".
    2. Allow firewall inbound port: 1099, 4000.
    3. Run "jmeter-server".
  3. [Jenkins (JMeter controller)]
    1. Edit jmeter.properties: "#server_port=1099" (default), "client-rmi-localport=1098", "jmeter.save.saveservice.output_format=xml".
    2. Allow firewall inbound port: 1098.
  4. Install Performance plugin on Jenkins.
  5. Source Code Management: checkout your script (my.jmx) to workspace.
  6. Execute Windows batch command: jmeter.bat -n -t my.jmx -l output.jtl [-j jmeter.log] -R10.1.2.3
  7. Publish Performance test result report: output.jtl