jenkins pipeline: agent vs node?

134

Apa perbedaan antara agen dan simpul dalam pipa jenkins?

Saya telah menemukan definisi tersebut:

  • simpul : Sebagian besar pekerjaan yang dilakukan Pipeline dilakukan dalam konteks satu atau lebih langkah simpul yang dinyatakan.
  • agen : Arahan agen menentukan di mana seluruh Pipa, atau tahap tertentu, akan dieksekusi di lingkungan Jenkins tergantung di mana arahan agen ditempatkan.

Jadi keduanya digunakan untuk menjalankan langkah-langkah pipa. Tetapi kapan harus menggunakan yang mana?

Matthias M
sumber

Jawaban:

145

Jawaban sederhananya adalah, Agent untuk pipeline declarative dan node adalah untuk pipeline scripted .

Dalam pipa deklaratif arahan agen digunakan untuk menentukan agen / budak pekerjaan / tugas yang akan dieksekusi. Arahan ini hanya memungkinkan Anda untuk menentukan di mana tugas akan dieksekusi, yang agen, budak, label atau gambar buruh pelabuhan.

Di sisi lain, dalam skrip pipeline, langkah node dapat digunakan untuk mengeksekusi skrip / langkah pada agen, label, slave tertentu. Langkah node secara opsional mengambil nama agen atau label dan kemudian penutupan dengan kode yang akan dieksekusi pada node itu.

jalur pipa deklaratif dan skrip (sunting berdasarkan komentar):

  • pipeline deklaratif adalah ekstensi baru dari pipeline DSL (ini pada dasarnya adalah skrip pipeline dengan hanya satu langkah, langkah pipeline dengan argumen (disebut arahan), arahan ini harus mengikuti sintaks tertentu. Maksud format baru ini adalah bahwa itu adalah lebih ketat dan karenanya harus lebih mudah bagi mereka yang baru ke jalur pipa, memungkinkan untuk mengedit grafis dan banyak lagi.
  • pipa scripted adalah fallback untuk persyaratan lanjutan.
Jon S
sumber
5
Ya dan tidak, pipa deklaratif adalah ekstensi baru dari pipeline DSL (ini pada dasarnya adalah skrip pipeline dengan hanya satu langkah, langkah pipeline dengan argumen (disebut arahan), arahan ini harus mengikuti sintaksis spesifik. Maksud format baru ini adalah bahwa itu lebih ketat dan karenanya harus lebih mudah bagi mereka yang baru ke saluran pipa, memungkinkan untuk mengedit grafis dan banyak lagi, lihat daftar fitur pada tautan Anda di atas. Jadi untuk tugas sederhana saya akan mengatakan bahwa itu adalah pendekatan yang disarankan, tetapi untuk lebih maju case, scripted adalah fallback
Jon S
6
Sekarang ada 3 nama dengan node, agent, dan slave!
mkobit
2
@mkobit Ya, nama-nama itu cukup membingungkan, saya membaca di suatu tempat (tidak dapat menemukan referensi sekarang, baik itu di blog Jenkins atau di Jenkins JIRA), bahwa mereka mencoba untuk mengganti nama dan menggunakan agen alih-alih menjadi budak karena itu bukan sebagai kata "negatif". Lalu saya kira pipa deklaratif mengadopsi itu dan menyebutnya agen. Saya pikir, simpul berasal dari jaringan pipa yang di-scripted.
Jon S
1
@DenCowboy Aha, ya, saya akan mengatakan bahwa praktik terbaik ke-4 di sana hanya berlaku untuk pipa skrip karena deklaratif selalu mengalokasikan sebuah simpul, arahan agen hanya membatasi simpul mana yang dialokasikan.
Jon S
1
@DenCowboy Tidak harus menggunakan yang sama, itu hanya menggunakan arahan agen untuk awalnya menentukan agen / budak yang akan digunakan.
Jon S