tubería de jenkins: agente vs nodo?

134

¿Cuál es la diferencia entre un agente y un nodo en una tubería de jenkins?

He encontrado esas definiciones:

  • nodo : la mayoría del trabajo que realiza una canalización se realiza en el contexto de uno o más pasos de nodo declarados.
  • agente : la directiva del agente especifica dónde se ejecutará toda la canalización, o una etapa específica, en el entorno de Jenkins dependiendo de dónde se coloque la directiva del agente.

Por lo tanto, ambos se utilizan para ejecutar pasos de canalización. ¿Pero cuándo usar cuál?

Matthias M
fuente

Respuestas:

145

La respuesta simple es, el agente es para tuberías declarativas y el nodo es para tuberías con guiones .

En las canalizaciones declarativas, la directiva de agente se utiliza para especificar en qué agente / esclavo se ejecutará el trabajo / tarea. Esta directiva solo le permite especificar dónde se ejecutará la tarea, qué agente, esclavo, etiqueta o imagen acoplable.

Por otro lado, en las tuberías con secuencias de comandos, el paso de nodo se puede utilizar para ejecutar una secuencia de comandos / paso en un agente específico, etiqueta, esclavo. El paso de nodo opcionalmente toma el nombre del agente o la etiqueta y luego un cierre con el código que se ejecutará en ese nodo.

Tuberías declarativas y escritas (edición basada en el comentario):

  • las canalizaciones declarativas son una nueva extensión de la DSL de canalización (es básicamente un script de canalización con un solo paso, un paso de canalización con argumentos (llamados directivas), estas directivas deben seguir una sintaxis específica. El punto de este nuevo formato es que es más estricto y, por lo tanto, debería ser más fácil para aquellos nuevos en las tuberías, permitir la edición gráfica y mucho más.
  • las tuberías con guiones son el respaldo para los requisitos avanzados.
Jon S
fuente
55
Sí y ninguna canalización declarativa es una nueva extensión de la DSL de canalización (es básicamente un script de canalización con un solo paso, un paso de canalización con argumentos (llamados directivas), estas directivas deben seguir una sintaxis específica. El punto de este nuevo formato es que es más estricto y, por lo tanto, debería ser más fácil para los nuevos en las tuberías, permitir la edición gráfica y mucho más, ver la lista de características en su enlace anterior. Entonces, para una tarea simple, diría que es el enfoque recomendado, pero para más avanzado casos, el guión es la alternativa.
Jon S
66
Ahora hay 3 nombres con node, agenty slave!
mkobit
2
@mkobit Sí, los nombres son bastante confusos, leí en alguna parte (no puedo encontrar la referencia en este momento, ya sea en el blog de Jenkins o en Jenkins JIRA), que están tratando de cambiar el nombre y usar agente en lugar de esclavo ya que es no como una palabra "negativa". Entonces supongo que las tuberías declarativas adoptaron eso y lo llamaron agente. Creo que el nodo se origina a partir de tuberías con guiones.
Jon S
1
@DenCowboy Aha, sí, diría que la cuarta mejor práctica allí solo se aplica a la canalización programada, ya que el declarativo siempre asigna un nodo, la directiva del agente solo restringe el nodo asignado.
Jon S
1
@DenCowboy No, debería usar lo mismo, solo usa la directiva de agente para determinar inicialmente qué agente / esclavo usar.
Jon S