Bagaimana Cara Membuat Pipa Jenkins Pertama Anda?

Panduan langkah demi langkah untuk membuat pipa Jenkins


Mengapa Jenkins Pipeline?

Pengiriman Berkelanjutan (CD) adalah bagian penting dari Siklus Hidup DevOps.

Itu memastikan bahwa pengembang perangkat lunak / aplikasi menciptakan selalu siap produksi. Agar hal ini terjadi, setiap kali kode diperbarui, perlu dibangun, diuji, dan digunakan secara terus menerus. Di sinilah Jenkins Pipeline masuk ke dalam gambar.

Dalam DevOps, Integrasi Berkelanjutan dan Pengiriman Berkelanjutan (CI / CD) dicapai melalui Jenkins Pipeline. Menggunakan Jenkins Pipeline untuk CD membantu mengirimkan perangkat lunak dengan rilis yang lebih cepat dan sering. Ini membantu untuk memasukkan umpan balik dalam setiap rilis berikutnya.

Apa itu Jenkins Pipeline?

Jenkins Pipeline adalah kombinasi pekerjaan untuk mengirimkan perangkat lunak secara berkelanjutan menggunakan Jenkins.

Saya berasumsi Anda tahu apa itu Jenkins. Jika tidak maka periksa ini Udemy tentu saja menguasai Jenkins.

Sebuah pipa Jenkins terdiri dari beberapa negara atau tahapan, dan mereka dieksekusi secara berurutan satu demi satu. JenkinsFile adalah file teks sederhana yang digunakan untuk membuat pipa sebagai kode dalam Jenkins. Ini berisi kode dalam Groovy Domain Specific Language (DSL), yang mudah ditulis dan dibaca manusia.

Anda dapat menjalankan JenkinsFile secara terpisah, atau Anda dapat menjalankan kode pipa dari Jenkins Web UI juga. Ada dua cara Anda bisa membuat pipa menggunakan Jenkins.

  • Deklaratif – cara baru menciptakan Jenkins Pipeline. Di sini Anda menulis kode asyik yang berisi blok “pipa”, yang diperiksa ke dalam SCM (Manajemen Kode Sumber)
  • Scripted – cara penulisan kode asyik di mana kode tersebut didefinisikan di dalam blok “node”.

Sebelum kita masuk ke demo, jika Anda belum menginstal Jenkins, silakan instal dulu. Pastikan Anda memiliki Jenkins dan menjalankan sistem Anda.

Buat Pipa Jenkins

Beginilah alur pipa Jenkins, yang terdiri dari beberapa tahap antara pengembang yang membuat perangkat lunak (pengkodean) dan perangkat lunak yang dikirim saat produksi.

Pipa Jenkins

Mari kita buat pipa deklaratif.

Pada dasbor Jenkins, klik pada Item Baru. Kemudian masukkan nama item, misalnya, ‘Pipa Pertama’ dan pilih proyek ‘Pipa’. Kemudian klik, OK.

Item Baru - Jenkins Pipeline

Klik pada tab Pipeline seperti yang ditunjukkan pada gambar di bawah ini, dan masukkan kode JenkinsFile Anda (Groovy Code) di sini.

Kode JenkinsFile

pipa {
agen apa saja
tahapan {
stage (‘Build’) {
Langkah {
echo ‘Hai, GeekFlare. Mulai membangun Aplikasi. ‘
}
}
stage (‘Test’) {
Langkah {
input (‘Apakah Anda ingin melanjutkan?’)
}
}
stage (‘Deploy’) {
sejajar {
stage (‘Menyebarkan mulai’) {
Langkah {
gema "Mulai penyebaran .."
}
}
stage (‘Menyebarkan sekarang’) {
agen {
buruh pelabuhan {
reuseNode benar
gambar ‘nginx’
}
}

Langkah {
gema "Docker Dibuat"
}
}
}
}
stage (‘Prod’) {
Langkah {
gema "Aplikasi adalah Prod Ready"
}

}
}
}

Biarkan saya jelaskan blok di atas.

  • Itu pipa blok terdiri dari semua instruksi untuk membangun, menguji, dan mengirimkan perangkat lunak. Ini adalah komponen utama dari Jenkins Pipeline.
  • Sebuah agen ditugaskan untuk mengeksekusi pipeline pada sebuah node dan mengalokasikan workspace untuk pipeline.
  • SEBUAH tahap adalah blok yang memiliki langkah-langkah untuk membangun, menguji, dan menggunakan aplikasi. Tahapan digunakan untuk memvisualisasikan proses Pipa Jenkins.
  • SEBUAH langkah adalah tugas tunggal yang harus dilakukan, misalnya membuat direktori, menjalankan gambar buruh pelabuhan, menghapus file, dll.

Kode Groovy di atas, saya gunakan untuk JenkinsFile. Setiap agen yang tersedia sedang ditugaskan ke pipa. Lalu saya mendefinisikan tahap Build dan melakukan langkah gema sederhana. Lalu saya mendefinisikan tahap Uji di mana langkah bertanya apakah Anda ingin melanjutkan atau tidak. Setelah itu, saya telah membuat tahap Deploy, yang memiliki dua tahap lagi di dalamnya berjalan secara paralel. Menyebarkan tahap awal memiliki langkah dengan perintah gema, dan Menyebarkan sekarang memiliki langkah yang menarik gambar buruh pelabuhan Nginx pada node. Akhirnya, ada tahap Prod dengan langkah gema sederhana.

Pipa yang dijelaskan di atas memiliki tahapan yang memiliki langkah-langkah sederhana bagi Anda untuk memahami cara kerjanya. Setelah Anda belajar cara membuat Pipeline, Anda dapat menambahkan lebih banyak kerumitan dan membuat pipa yang kompleks juga.

Setelah Anda memiliki kode di tab Pipeline, klik Terapkan dan Simpan. Terakhir, klik Build Now untuk mulai membangun Pipa Jenkins yang baru saja Anda buat.

Bangun Sekarang

Beginilah tampilan antarmuka pengguna saat pipa berjalan. Jika Anda telah mengikuti semua langkah dengan benar, build Anda akan berhasil, dan itu menunjukkan warna biru untuk build (# 27). Jika ada kesalahan dalam build, itu akan memberi warna merah pada build (# 27).

Jenkins Build 27

Sekarang klik pada # 27 build dan kemudian klik pada Konsol Output untuk memeriksa apa yang sebenarnya terjadi di back-end ketika dijalankan.

Jenkins Build

Beginilah hasilnya akan terlihat seperti berakhir dengan pesan SUKSES.

Output Konsol Keberhasilan

Dimulai oleh pengguna geekflare
Berjalan di tingkat Daya Tahan: MAX_SURVIVABILITY
[Pipeline] Mulai dari Pipeline
Node [Pipeline]
Berjalan di Jenkins di / var / lib / jenkins / workspace / First Pipeline
[Pipa] {
Tahap [Pipeline]
[Pipa] {(Bangun)
[Pipa] bergema
Hai, GeekFlare. Mulai membangun Aplikasi.
[Pipa]}
[Pipa] // panggung
Tahap [Pipeline]
[Pipa] {(Uji)
Input [Pipa]
Apakah Anda ingin melanjutkan?
Lanjutkan atau Batalkan
Disetujui oleh geekflare
[Pipa]}
[Pipa] // panggung
Tahap [Pipeline]
[Pipa] {(Menyebarkan)
[Pipa] paralel
[Pipa] {(Cabang: Menyebarkan mulai)
[Pipeline] {(Cabang: Menyebarkan sekarang)
Tahap [Pipeline]
[Pipeline] {(Mulai penyebaran)
Tahap [Pipeline]
[Pipeline] {(Menyebarkan sekarang)
[Pipeline] getContext
[Pipeline] isUnix
[Pipa] sh
[Pipa] bergema
Mulai penyebaran ..
[Pipa]}
+ buruh pelabuhan memeriksa -f. nginx
[Pipa] // panggung
[Pipa]}

Kesalahan: Tidak ada objek seperti itu: nginx
[Pipeline] isUnix
[Pipa] sh
+ buruh pelabuhan menarik nginx
Menggunakan tag default: terbaru
terbaru: Menarik dari perpustakaan / nginx
8d691f585fa8: Menarik lapisan fs
5b07f4e08ad0: Menarik lapisan fs
abc291867bca: Menarik lapisan fs
abc291867bca: Memverifikasi Checksum
abc291867bca: Unduhan selesai
5b07f4e08ad0: Memverifikasi Checksum
5b07f4e08ad0: Unduhan selesai
8d691f585fa8: Memverifikasi Checksum
8d691f585fa8: Pengunduhan selesai
8d691f585fa8: Tarik selesai
5b07f4e08ad0: Tarik selesai
abc291867bca: Tarik selesai
Intisari: sha256: 922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4
Status: Unduh gambar yang lebih baru untuk nginx: terbaru
[Pipeline] withDockerContainer
Jenkins tampaknya tidak berlari di dalam sebuah wadah
$ buruh pelabuhan menjalankan -t -d -u 125: 131 -w "/ var / lib / jenkins / workspace / Pipeline Pertama" -v "/ var / lib / jenkins / workspace / Pipeline Pertama: / var / lib / jenkins / workspace / Pipeline Pertama: rw, z" -v "/ var / lib / jenkins / workspace / Pertama [dilindungi email]: / var / lib / jenkins / workspace / Pertama [dilindungi email]: rw, z" -e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** nginx cat
$ buruh pelabuhan teratas 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943 -eo pid, comm
[Pipa] {
[Pipa] bergema
Docker Dibuat
[Pipa]}
$ buruh pelabuhan berhenti – waktu = 1 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
$ docker rm -f 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
[Pipeline] // withDockerContainer
[Pipa]}
[Pipa] // panggung
[Pipa]}
[Pipa] // paralel
[Pipa]}
[Pipa] // panggung
Tahap [Pipeline]
[Pipa] {(Prod)
[Pipa] bergema
Aplikasi adalah Prod Ready
[Pipa]}
[Pipa] // panggung
[Pipa]}
[Pipeline] // node
[Pipa] Ujung Pipa
Selesai: SUKSES

Jenkins Pipeline di atas telah membuat gambar buruh pelabuhan Nginx. Anda dapat memverifikasi itu dengan menjalankan perintah di bawah ini. Anda dapat melihat gambar docker Nginx juga terdaftar.

[dilindungi email]: ~ $ docker image ls
ID GAMBAR TAG PENGGANTIAN UKURAN YANG DICIPTAKAN
nginx 540a289bab6c terbaru 2 minggu lalu 126MB
httpd 7d85cc3b2d80 terbaru 2 bulan lalu 154MB
redis f7302e4ab3a8 terbaru 2 bulan lalu 98.2MB
geekflare_mongodb 095d17727ca0 terbaru 3 bulan lalu 325MB

Kesimpulan

Saya harap ini memberi Anda ide Pipa Jenkins manfaat dan bagaimana Anda bisa membuatnya. Di atas adalah demonstrasi sederhana, dan cara terbaik untuk belajar adalah dengan mencoba membangun jaringan pipa yang kompleks.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map