Jenkins'e belirli bir köle düğümünde belirli bir proje yürütmesini söyle.


87

Jenkins'e belirli bir köle üzerinde belirli bir proje yürütmesini nasıl söylerim?

Bir Jenkins master düğümü ve bir uygulama hazırlarken kullanmak istediğim bir slave düğümü kurdum. Ancak projeyi, oluşturduğum köle düğümünde çalışacak şekilde nasıl yapılandıracağımı çözemiyorum.


Yanıtlar:


84

İş yapılandırmanızdaki "Bu işin çalıştırılabileceği yeri kısıtla" onay kutusunu işaretleyin ve kölenizin adını belirtin.

Daha sonra daha fazla slave eklerseniz, her slave için etiketleri ayarlayabilir ve iş yapılandırmalarınızda bunları belirleyebilirsiniz.

Bu referans belgelerine bakın:


Teşekkürler. Cevabınızı bulmadan önce bir süre kullandım. Bu sayfaya wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
Surasin Tancharoen

16

Bir Pipeline işi çalıştırıyorsanız, önce slave düğüme (veya şimdi çağrılmış gibi göründüğü gibi) bir etiket (örneğin 'köle') eklemek istersiniz.

Ardından, pipeline komut dosyasında, işin çalıştığı etiketi belirtirsiniz:

Declarative boru hattı:

pipeline {
    agent {label 'slave'}
    stages {
        ...
    }
}

Scripted boru hattı:

node (label: 'slave') {
    ...
}

Bu iş şimdi 'slave' etiketli bir düğümde çalışacak. İşin yalnızca bu belirli köle çalışmasını istiyorsanız, etiketi yeniden kullanmayın. Ve tabii ki etiketin 'köle' olması gerekmez; ne istersen olabilir.

Güncelleme:

Komut dosyasında, düğümünüz "Düğümüm" olarak adlandırılmışsa, bunu da yapabilirsiniz:

node ('My Node') {
    ...
}

Kod bloğunun yalnızca belirli bir düğümde çalışmasını istiyorsanız, bu yararlıdır. Ancak, etiketleri kullanmak daha esnektir ve iş yükünü paylaşmak için düğüm eklemeyi kolaylaştırabilir.


Bunu bulmak çok zordu, senaryo yazımı için belgeler beyanname lehine ölüyor, henüz taşınamıyorum, çok teşekkür ederim!
Mitchell Currie

7

Parametre olarak Node / Label kullanmak istiyorsanız, NodeLabel Parameter Plugin'i kurun.


Bir iş için "Düğüm" parametresini seçerseniz ve onu Groovy'den çağırmak istiyorsanız, özel bir parametre oluşturmanız gerektiğini unutmayın: params += new org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue('testServer', testServerLabel);(normal yerine StringParameterValue).
Nux
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.