2014-02-11 25 views
3

我的問題很簡單 - 是否有一個詹金斯ssh插件,我可以用不同的服務器ips完成參數化生成。我已經嘗試過「通過ssh發佈」,但是服務器ips已經在jenkins配置頁面中註冊了,我找不到將它們作爲構建參數添加的方法。詹金斯服務器IP上的SSH通過作爲構建參數

+0

您打算如何獲得正確的參數值?它是來自一個環境變量,還是另一個構建的結果,還是來自構建時的用戶輸入,或者......? –

+0

它是在構建時用戶輸入的。 – ltzvetkov

+1

https://wiki.jenkins-ci.org/download/attachments/53608875/pos-default.png?version=1&modificationDate=1321575097000我想使用參數像$ {TARGET_SERVER_IP}而不是這個組合框與預定義的服務器。 – ltzvetkov

回答

0

幾個選擇這裏:

  1. 你想運行多個版本,每一個不同的IP地址,IP地址不會改變。使用帶用戶定義軸的Matrix build
  2. 你想運行一個版本,但是每次運行它時,都需要手動輸入一個新的IP地址。使用build with parameters插件。
  3. 您想運行一個構建,並且可以從另一個構建中派生使用的IP地址。使用parameterized build trigger插件。

可能還有其他幾個選項,所以如果我沒有把你的方案說得很對,請稍微修改一下你的問題,我會相應地修改這個答案。

2

您必須將所有可能的服務器添加爲SSH服務器,爲每個服務器分配一個標籤(可能是ip)&爲每個服務器設置傳輸設置/執行命令,即使它們全都相同。

將字符串參數添加到您的版本的服務器名稱,即。服務器。

然後,在構建配置中的所有服務器底部的高級部分下打開「參數化發佈」。你給它的參數名稱上面添加(服務器),將舉行一個正則表達式,所有的標籤進行比較。

正則表達式基於Java - 因此。*匹配所有標籤。具有完整IP地址的字符串只會將一個服務器與該IP作爲標籤進行匹配。

這有點笨重,但確實有效。

+0

該變量應該以'$'作爲前綴還是原始的?即'$ SERVERS'或'SERVERS'。我即將嘗試這一點併爲自己找出答案,但這對稍後來這裏的其他人會有幫助。另外,你有鏈接到這個文件? –

+0

我們如何爲每個SSH服務器分配一個標籤?我無法在「全局配置」頁面的「SSH服務器」部分看到它。 –

+0

@JamesSelvakumar:你在構建配置本身,爲你添加到它的每個服務器。應該有一個「標籤」複選框。它位於下面的「高級」部分,您可以在其中選擇服務器的名稱。當您選中「標籤」複選框時,將出現一個文本框,您可以在其中設置標籤。 – reowil