2014-12-22 21 views
0

我不能暫時排除特定作業在標籤組中的節點上運行。簡單的方法來暫時排除作業在標籤組中的節點上運行

jobA,jobB,jobC綁定在標籤上運行 nodeA,nodeB,nodeC上都有標籤一般。

假設jobA開始在nodeA上始終失敗。

我今天看到的唯一解決方案是將nodeA離線用於所有作業或重新配置很多耗時的作業或節點。我們使用JOB-DSL來配置作業,以便在作業配置中更改需要簽入。

我們理想的情況是有節點上的配置:
排除與名工作:職吧

有一些簡單的方法來配置職吧網應暫時只對NodeB和節點C和運行jobB/C仍應該在標籤中的所有節點上運行?

回答

1

創建一個參數化作業來運行一些作業dsl配置。將其中一個參數設置爲「選擇」,列出您可能想要更改的作業名稱。

另一個參數將選擇一個標籤,用於定義要運行作業的節點。 (節點上可以有多個標籤)。

job-dsl腳本然後更新作業標籤。
這Groovy腳本將使/文件夾中的禁用所有作業:

// "State" job parameter (choice, DISABLED|ENABLED) 
def targetState = ('DISABLED'.equalsIgnoreCase(State)) 

// "Folder" job parameter (choice or free-text) 
def targetFolderPath = Folder.trim() 

def folder = findFolder(jenkins, targetFolderPath) 
println "Setting all jobs in '${folder.name}' to '${targetState}'" 
for (job in folder.getAllJobs()) { 
    job.disabled = targetState 
    println "updated job: ${job.name}" 
} 
0

要停止使用具有給定標籤的節點,一種策略是簡單地更改標籤。例如。假設標籤是

BUILDER

改變標籤

-BUILDER

將保留管理員,但使用BUILDER作爲標籤不會選擇節點的任何工作信息。

爲了讓作業到節點上運行,你可以洗牌周圍的標籤時,該節點選擇更改爲

BUILDER||-BUILDER

一個有用的範例。

注意作業仍然可以使用先前的標籤選擇一段時間。

相關問題