Diga ao Jenkins para executar um projeto específico em um nó escravo específico


87

Como digo ao Jenkins para executar um projeto específico em um escravo específico?

Eu configurei um nó mestre Jenkins e um nó escravo que quero usar para preparar um aplicativo. Mas não consigo descobrir como configurar o projeto para executar no nó escravo que criei.


Respostas:


84

Defina a caixa de seleção "Restringir onde este trabalho pode ser executado" na configuração do seu trabalho e especifique o nome do seu escravo.

Se você adicionar mais escravos posteriormente, poderá definir rótulos para cada escravo e especificá-los nas configurações de seu trabalho.

Consulte esta documentação de referência:


Obrigado. Eu usei um bom tempo antes de encontrar sua resposta. Deveria ter sido adicionado a esta página wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
Surasin Tancharoen

16

Se você estiver executando um trabalho de Pipeline, primeiro adicione um rótulo (por exemplo, 'escravo') ao nó escravo (ou agente, como parece ser chamado agora).

Em seguida, no script de pipeline, você especifica o rótulo em que o trabalho é executado:

Pipeline declarativo:

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

Pipeline com script:

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

Este trabalho agora será executado em qualquer nó com o rótulo 'escravo'. Se você deseja que o trabalho seja executado apenas neste escravo específico, não reutilize a etiqueta. E é claro que o rótulo não precisa ser "escravo"; pode ser o que você quiser.

Atualizar:

No pipeline com script, se o seu nó se chama "Meu Nó", você também pode fazer isso:

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

Se você deseja apenas que o bloco de código seja executado nesse nó específico, isso é útil. No entanto, o uso de rótulos é mais flexível e pode facilitar a adição de nós para compartilhar a carga de trabalho.


Isso foi tão difícil de encontrar, a documentação para a sintaxe com script está morrendo a favor do declarativo, ainda não posso migrar, então obrigado!
Mitchell Currie

7

Se você deseja usar Nó / Etiqueta como parâmetro, instale o Plug-in de Parâmetro NodeLabel


Observe que, se você escolher o parâmetro "Nó" para um trabalho e quiser chamá-lo no Groovy, precisará criar um parâmetro especial: params += new org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue('testServer', testServerLabel);(em vez do habitual StringParameterValue).
Nux
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.